From 2cad0284bd59efd17be1da8b122a983d9cbdbac5 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 28 六月 2024 17:04:06 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml |   55 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index d9edbe5..a663b66 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -168,20 +168,28 @@
     SELECT
         COUNT(*) AS recordCount
     FROM pr_controller con
-        INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
-        INNER JOIN pr_intake inta ON con.intakeId = inta.id
+    LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id
+    INNER JOIN pr_intake inta ON con.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'
+        )
+    ) rtus ON con.rtuAddr = rtus.rtuAddr
     <where>
-      AND ic.operateType = 1
       AND con.deleted = 0
 
       <if test = "id != null and id > 0">
         AND con.id = ${id}
       </if>
-
       <if test = "rtuAddr != null and rtuAddr !=''">
         AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
       </if>
-
+      <if test="isOnLine != null and isOnLine !='' ">
+        AND rtus.isOnLine = #{isOnLine}
+      </if>
       <if test = "bindNumber != null and bindNumber > 0">
         AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
       </if>
@@ -194,24 +202,34 @@
         CAST(con.id AS char) AS id,
         con.rtuAddr AS rtuAddr,
         inta.name AS intakeName,
-        "鍦ㄧ嚎" AS onlineState,
+        con.protocol,
+        inta.remarks,
+        rtus.isOnLine,
         (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
         con.findDt AS findDt
     FROM pr_controller con
-        INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
+        LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id
         INNER JOIN pr_intake inta ON con.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'
+             )
+        ) rtus ON con.rtuAddr = rtus.rtuAddr
     <where>
-      AND ic.operateType = 1
       AND con.deleted = 0
 
       <if test = "id != null and id > 0">
         AND con.id = ${id}
       </if>
-
       <if test = "rtuAddr != null and rtuAddr !=''">
         AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
       </if>
-
+      <if test="isOnLine != null and isOnLine !='' ">
+        AND rtus.isOnLine = #{isOnLine}
+      </if>
       <if test = "bindNumber != null and bindNumber > 0">
         AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
       </if>
@@ -247,8 +265,23 @@
     SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId}
   </select>
 
-  <!--鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栧凡缁戝畾璁板綍鏁�-->
+  <!--鏍规嵁娴佹氮鎺у埗鍣ㄧ紪鍙疯幏鍙栧凡缁戝畾璁板綍鏁�-->
   <select id="getBindedCount" resultType="java.lang.Integer">
     SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL
   </select>
+
+  <!--鏍规嵁鍙栨按鍙D鎴栭榾鎺у櫒鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄-->
+  <select id="getRtu" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
+    SELECT * FROM pr_controller
+    <where>
+      AND deleted = 0
+      <if test = "intakeId != null">
+        AND intakeId = #{intakeId}
+      </if>
+      <if test = "rtuAddr != null">
+        AND rtuAddr = #{rtuAddr}
+      </if>
+    </where>
+    LIMIT 0,1
+  </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0