From beca4894acec49f29f7283f3c76c8da5e1c9bfe8 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 01 八月 2024 08:48:35 +0800
Subject: [PATCH] 获取全部取水口(在线不在线)接口增加查询条件是否绑定控制器,分页查询默认返回10条

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml |   99 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 70 insertions(+), 29 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 af30365..afcd2da 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -365,39 +365,12 @@
     FROM pr_controller con
         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>
-      <if test="isOnLine != null">
-        rtus.isOnLine = #{isOnLine}
-      </if>
-      <if test="intakeNum != null and intakeNum != ''">
-        AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
-      </if>
-    </where>
-  </select>
-
-  <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
-  <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
-    SELECT
-      con.intakeId,
-      con.rtuAddr,
-      inta.name AS intakeNum,
-      rtus.isOnLine
-    FROM pr_controller con
-        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'
-	        )
+                isOnLine BOOLEAN PATH '$.isOnLine'
+            )
         ) rtus ON con.rtuAddr = rtus.rtuAddr
     <where>
       <if test="isOnLine != null">
@@ -406,6 +379,49 @@
       <if test="intakeNum != null and intakeNum != ''">
         AND inta.name = #{intakeNum}
       </if>
+      <if test="isBinded == 0">
+        AND inta.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
+      </if>
+      <if test="isBinded == 1">
+        AND inta.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
+      </if>
+    </where>
+  </select>
+
+  <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
+  <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+    SELECT
+    inta.id AS intakeId,
+    con.rtuAddr,
+    inta.name AS intakeNum,
+    (CASE
+    WHEN con.rtuAddr IS  NULL  THEN "false"
+    WHEN con.rtuAddr IS NOT NULL THEN "true"
+    END) AS isBinded,
+    rtus.isOnLine
+    FROM pr_intake inta
+    LEFT JOIN pr_controller con 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>
+      <if test="isOnLine != null">
+        rtus.isOnLine = #{isOnLine}
+      </if>
+      <if test="intakeNum != null and intakeNum != ''">
+        AND inta.name = #{intakeNum}
+      </if>
+      <if test="isBinded == false ">
+        AND con.rtuAddr IS  NULL
+      </if>
+      <if test="isBinded == true ">
+        AND con.rtuAddr IS NOT NULL
+      </if>
     </where>
     order by con.id ASC
     <if test="pageCurr != null and pageSize != null">
@@ -413,6 +429,31 @@
     </if>
   </select>
 
+  <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
+  <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+    SELECT
+      con.intakeId,
+      con.rtuAddr,
+      inta.name AS intakeNum,
+      rtus.isOnLine
+    FROM pr_controller con
+      INNER JOIN pr_intake inta ON con.intakeId = inta.id
+      left JOIN JSON_TABLE(
+        #{onLineMap},
+        '$[*]' COLUMNS(
+        rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+        isOnLine BOOLEAN PATH '$.isOnLine'
+        )
+      ) rtus ON con.rtuAddr = rtus.rtuAddr
+    <where>
+      <if test="intakeNum != null and intakeNum != ''">
+        AND LOWER(inta.name) = #{intakeNum}
+      </if>
+    </where>
+    LIMIT 0,1
+
+  </select>
+
   <!--鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛-->
   <select id="getUsedIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
     SELECT

--
Gitblit v1.8.0