From 6fa8408c8133e8c9aee2bbcdec37bf95c20951c0 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 07 二月 2025 15:39:16 +0800
Subject: [PATCH] 涉嫌偷水功能增加查询条件用水时长,修改sql语句

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml |  145 ++++++++++++++++++++++++++++++------------------
 1 files changed, 91 insertions(+), 54 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
index e1d1b20..91c9588 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -302,60 +302,24 @@
   </select>
 
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�-->
-  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
-    SELECT
-        COUNT(*) AS recordCount
-    FROM se_client cli
-    , (SELECT @i:=0) AS itable
-    <where>
-      AND cli.disabled = 0
-      AND cli.deleted = 0
-      <if test = "name != null and name !=''">
-        AND cli.name like CONCAT('%',#{name},'%')
-      </if>
-
-      <if test = "clientNum != null and clientNum !=''">
-        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
-      </if>
-
-      <if test = "phone != null and phone !=''">
-        AND cli.phone like CONCAT('%',#{phone},'%')
-      </if>
-
-      <if test = "address != null and address !=''">
-        AND cli.address like CONCAT('%',#{address},'%')
-      </if>
-
-      <if test = "villageId != null and villageId !=''">
-        AND cli.villageId =  #{villageId}
-      </if>
-      <if test = "blockId != null and blockId !=''">
-        AND cli.blockId =  #{blockId}
-      </if>
-      <if test = "divideId != null and divideId !=''">
-        AND cli.divideId =  #{divideId}
-      </if>
-    </where>
-
-  </select>
-
-
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
-  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
-    SELECT
-        CAST(cli.countyId AS char) AS countyId,
+<!--  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">-->
+  <select id="getRecordCount" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
+<!--    SELECT-->
+<!--        COUNT(*) AS recordCount-->
+    SELECT DISTINCT
+        cli.countyId,
         dis_con.name AS countryName,
-        CAST(cli.townId AS char) AS townId,
+        cli.townId,
         dis_town.name AS townName,
-        CAST(cli.villageId AS char) AS villageId,
+        cli.villageId,
         dis_village.name AS villageName,
-        CAST(cli.blockId AS char) AS blockId,
+        cli.blockId,
         blo.name AS blockName,
-        CAST(cli.divideId AS char) AS divideId,
+        cli.divideId,
         divi.name AS divideName,
-        CAST(cli.typeId AS char) AS typeId,
+        cli.typeId,
         wat.typeName AS waterTypeName,
-        CAST(cli.id AS char) AS clientId,
+        cli.id AS clientId,
         cli.name,
         cli.clientNum,
         cli.phone,
@@ -366,12 +330,13 @@
         cli.remarks,
         cli.operateDt
     FROM se_client cli
-    LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
-    LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
-    LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
-    LEFT JOIN ba_block blo ON cli.blockId = blo.id
-    LEFT JOIN pr_divide divi ON cli.divideId = divi.id
-    LEFT JOIN se_water_type wat ON cli.typeId = wat.id
+        LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
+        LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
+        LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
+        LEFT JOIN ba_block blo ON cli.blockId = blo.id
+        LEFT JOIN pr_divide divi ON cli.divideId = divi.id
+        LEFT JOIN se_water_type wat ON cli.typeId = wat.id
+        LEFT JOIN se_client_card card ON card.clientId = cli.id
     <where>
       AND cli.disabled = 0
       AND cli.deleted = 0
@@ -400,6 +365,78 @@
       <if test = "divideId != null and divideId !=''">
         AND cli.divideId =  #{divideId}
       </if>
+      <if test = "cardNum != null">
+        AND card.cardNum =  #{cardNum}
+      </if>
+    </where>
+
+  </select>
+
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
+  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
+    SELECT DISTINCT
+        cli.countyId,
+        dis_con.name AS countryName,
+        cli.townId,
+        dis_town.name AS townName,
+        cli.villageId,
+        dis_village.name AS villageName,
+        cli.blockId,
+        blo.name AS blockName,
+        cli.divideId,
+        divi.name AS divideName,
+        cli.typeId,
+        wat.typeName AS waterTypeName,
+        cli.id AS clientId,
+        cli.name,
+        cli.clientNum,
+        cli.phone,
+        cli.idCard,
+        cli.area,
+        (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
+        cli.address,
+        cli.remarks,
+        cli.operateDt
+    FROM se_client cli
+        LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
+        LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
+        LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
+        LEFT JOIN ba_block blo ON cli.blockId = blo.id
+        LEFT JOIN pr_divide divi ON cli.divideId = divi.id
+        LEFT JOIN se_water_type wat ON cli.typeId = wat.id
+        LEFT JOIN se_client_card card ON card.clientId = cli.id
+    <where>
+      AND cli.disabled = 0
+      AND cli.deleted = 0
+      <if test = "name != null and name !=''">
+        AND cli.name like CONCAT('%',#{name},'%')
+      </if>
+
+      <if test = "clientNum != null and clientNum !=''">
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+      </if>
+
+      <if test = "phone != null and phone !=''">
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+
+      <if test = "address != null and address !=''">
+        AND cli.address like CONCAT('%',#{address},'%')
+      </if>
+
+      <if test = "villageId != null and villageId !=''">
+        AND cli.villageId =  #{villageId}
+      </if>
+      <if test = "blockId != null and blockId !=''">
+        AND cli.blockId =  #{blockId}
+      </if>
+      <if test = "divideId != null and divideId !=''">
+        AND cli.divideId =  #{divideId}
+      </if>
+      <if test = "cardNum != null">
+        AND card.cardNum =  #{cardNum}
+      </if>
     </where>
     ORDER BY cli.operateDt DESC
     <trim prefix="limit " >

--
Gitblit v1.8.0