From f34dc97df6dc9f4480e7903016f104388ec1a7ab Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 23 五月 2024 11:34:47 +0800
Subject: [PATCH] 田间灌溉项目管理 轮灌组 修改查一个、分页查、轮灌组绑定灌溉单元变物理删除

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml |   78 +++++++++++++++++++++++++++++---------
 1 files changed, 59 insertions(+), 19 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 9530df5..5a25cea 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -214,12 +214,12 @@
   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT COUNT(*) AS recordCount
     FROM pr_intake ge
-    INNER JOIN ba_divide divi ON ge.divideId = divi.id
+    INNER JOIN pr_divide divi ON ge.divideId = divi.id
     INNER JOIN ba_block blo ON divi.blockId = blo.id
-    INNER JOIN ba_district country ON ge.countyId = country.id
-    INNER JOIN ba_district town ON ge.townId = town.id
-    INNER JOIN ba_district village ON ge.villageId = village.id
-    , (SELECT @i:=0) AS itable
+    LEFT JOIN ba_district country ON ge.countyId = country.id
+    LEFT JOIN ba_district town ON ge.townId = town.id
+    LEFT JOIN ba_district village ON ge.villageId = village.id
+    LEFT JOIN pr_controller cont ON ge.id = cont.intakeId
     <where>
       ge.deleted = 0
       AND divi.deleted = 0
@@ -228,31 +228,57 @@
         AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
       </if>
 
-      <if test="divideName != null and divideName != ''">
-        AND divi.name LIKE CONCAT('%', #{divideName}, '%')
+      <if test = "divideId != null and divideId !=''">
+        AND divi.id = #{divideId}
       </if>
 
-      <if test="blockName != null and blockName != ''">
-        AND blo.name = #{blockName}
+      <if test = "blockId != null and blockId !=''">
+        AND blo.id = #{blockId}
+      </if>
+
+      <if test="isBinded == 0">
+        AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
+      </if>
+      <if test="isBinded == 1">
+        AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
+      </if>
+      <if test="isBinded == null">
+
+      </if>
+      <if test="address != null and address != ''">
+        AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
       </if>
     </where>
   </select>
 
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�-->
   <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake">
-    SELECT (@i:=@i+1)                                          AS id,
+    SELECT
+    CAST(ge.id AS char)                                 AS intakeId,
     ge.`name`                                           AS intakeName,
+    CAST(divi.id AS char)                               AS divideId,
     divi.`name`                                         AS divideName,
+    CAST(blo.id AS char)                                AS blockId,
     blo.`name`                                          AS blockName,
+    CAST(cont.id AS char)                               AS controllerId,
+    cont.rtuAddr                                        AS rtuAddr,
+    ge.lng,
+    ge.lat,
+    ge.remarks,
+    ge.operator,
     ge.operateDt                                        As operateDt,
+    (CASE
+    WHEN ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)  THEN "鏈粦瀹�"
+    WHEN ge.id IN(SELECT intakeId FROM pr_controller  where deleted = 0)  THEN "宸茬粦瀹�"
+    END) AS isBind,
     CONCAT(country.`name`, town.`name`, village.`name`) AS address
     FROM pr_intake ge
     INNER JOIN pr_divide divi ON ge.divideId = divi.id
     INNER JOIN ba_block blo ON divi.blockId = blo.id
-    INNER JOIN ba_district country ON ge.countyId = country.id
-    INNER JOIN ba_district town ON ge.townId = town.id
-    INNER JOIN ba_district village ON ge.villageId = village.id
-    , (SELECT @i:=0) AS itable
+    LEFT JOIN ba_district country ON ge.countyId = country.id
+    LEFT JOIN ba_district town ON ge.townId = town.id
+    LEFT JOIN ba_district village ON ge.villageId = village.id
+    LEFT JOIN pr_controller cont ON ge.id = cont.intakeId
     <where>
       ge.deleted = 0
       AND divi.deleted = 0
@@ -260,17 +286,31 @@
       <if test="intakeName != null and intakeName != ''">
         AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
       </if>
-      <if test="divideName != null and divideName != ''">
-        AND divi.name LIKE CONCAT('%', #{divideName}, '%')
+
+      <if test = "divideId != null and divideId !=''">
+        AND divi.id = #{divideId}
       </if>
 
-      <if test="blockName != null and blockName != ''">
-        AND blo.name = #{blockName}
+      <if test = "blockId != null and blockId !=''">
+        AND blo.id = #{blockId}
+      </if>
+
+      <if test="isBinded == 0">
+        AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
+      </if>
+      <if test="isBinded == 1">
+        AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
+      </if>
+      <if test="isBinded == null">
+
+      </if>
+      <if test="address != null and address != ''">
+        AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
       </if>
     </where>
     ORDER BY ge.operateDt DESC
     <if test="pageCurr != null and pageSize != null">
-      LIMIT ${pageCurr}, ${pageSize}
+      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
     </if>
   </select>
 

--
Gitblit v1.8.0