From 0ee340a21c1061cb68eb124ab26b482552634dba Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期三, 23 十月 2024 20:23:22 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml |  131 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 111 insertions(+), 20 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 5180618..8709694 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -421,27 +421,27 @@
             LEFT JOIN pr_controller con ON con.intakeId = inta.id
             LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
             LEFT JOIN(
-            SELECT intake_id AS intakeId,
-                   CONCAT(
-                           IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''),
-                              IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
-                           IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''),
-                              IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
-                           IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''),
-                              IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
-                           IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
-                       )     AS alarm
-            FROM rm_alarm_state_last
-            WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
-              AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
-        ) alarm ON alarm.intakeId = inta.id
+                SELECT intake_id AS intakeId,
+                       CONCAT(
+                               IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''),
+                                  IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
+                               IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''),
+                                  IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
+                               IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''),
+                                  IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
+                               IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
+                           )     AS alarm
+                FROM rm_alarm_state_last
+                WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
+                  AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
+            ) alarm ON alarm.intakeId = inta.id
             LEFT JOIN JSON_TABLE(
-        <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
-        #{onLineMap},
-        '$[*]' COLUMNS (
-            rtuAddr VARCHAR(20) PATH '$.rtuAddr',
-            isOnLine BOOLEAN PATH '$.isOnLine'
-            )
+                <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+                #{onLineMap},
+                '$[*]' COLUMNS (
+                    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+                    isOnLine BOOLEAN PATH '$.isOnLine'
+                    )
             ) rtus ON con.rtuAddr = rtus.rtuAddr
         <where>
             <if test="isOnLine != null">
@@ -521,6 +521,97 @@
         </trim>
     </select>
 
+
+
+
+
+
+
+    <!--鑾峰彇鍙栨按鍙f暟閲忥紙鍦ㄧ嚎鎴栫绾挎垨涓嶈鐘舵�侊級-->
+    <select id="selectIntakesCountForOnLine" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+        INNER JOIN pr_controller con ON con.intakeId = inta.id
+        <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+            LEFT JOIN JSON_TABLE(
+                <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+                #{onLineMap},
+                '$[*]' COLUMNS (
+                    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+                    isOnLine BOOLEAN PATH '$.isOnLine'
+                )
+            ) rtus ON con.rtuAddr = rtus.rtuAddr
+        </if>
+        WHERE con.intakeId is not null
+        <if test="isOnLine != null">
+            AND rtus.isOnLine = #{isOnLine}
+        </if>
+        <if test="intakeNum != null and intakeNum != ''">
+            AND inta.name = #{intakeNum}
+        </if>
+    </select>
+
+
+    <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鎴栫绾挎垨涓嶈鐘舵�侊級-->
+    <select id="selectIntakesForOnLine" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+        SELECT
+        inta.id                     AS intakeId,
+        con.rtuAddr,
+        inta.name                   AS intakeNum,
+        inta.lng,
+        inta.lat,
+        IFNULL(hou.total_amount, 0) AS totalAmount,
+        alarm.alarm
+        FROM pr_intake inta
+        INNER JOIN pr_controller con ON con.intakeId = inta.id
+        LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+        LEFT JOIN(
+            SELECT intake_id AS intakeId,
+            CONCAT(
+                IF(alarm_loss = 1, '婕忔崯鎶ヨ锛�', ''),
+                IF(alarm_battery_volt = 1, '鐢垫睜鐢靛帇鎶ヨ锛�', ''),
+                IF(alarm_valve = 1, '闃�闂ㄦ姤璀︼紝', ''),
+                IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅滄姤璀︼紝', '')
+            ) AS alarm
+            FROM rm_alarm_state_last
+            WHERE (alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1 OR alarm_water_meter_fault = 1)
+            AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
+        ) alarm ON alarm.intakeId = inta.id
+        <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+            LEFT JOIN JSON_TABLE(
+                <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+                #{onLineMap},
+                '$[*]' COLUMNS (
+                    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+                    isOnLine BOOLEAN PATH '$.isOnLine'
+                )
+            ) rtus ON con.rtuAddr = rtus.rtuAddr
+        </if>
+        WHERE con.intakeId is not null
+        <if test="isOnLine != null">
+            AND rtus.isOnLine = #{isOnLine}
+        </if>
+        <if test="intakeNum != null and intakeNum != ''">
+            AND inta.name = #{intakeNum}
+        </if>
+        order by inta.id ASC
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+
+
+
+
+
+
+
+
+
+
     <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
     <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
         SELECT con.intakeId,

--
Gitblit v1.8.0