From 1ffdd87a0a34c9428ba1fe6acf56811f791f6f27 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期三, 30 十月 2024 11:16:07 +0800
Subject: [PATCH] 2024-10-30 农户问题上报添加接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml |  181 ++++++++++++++++++++++++++++++---------------
 1 files changed, 120 insertions(+), 61 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 003c4b4..0172422 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -306,62 +306,13 @@
     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>
-    </where>
-
-  </select>
-
-
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
-  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
-    SELECT
-        CAST(cli.countyId AS char) AS countyId,
-        dis_con.name AS countryName,
-        CAST(cli.townId AS char) AS townId,
-        dis_town.name AS townName,
-        CAST(cli.villageId AS char) AS villageId,
-        dis_village.name AS villageName,
-        CAST(cli.blockId AS char) AS blockId,
-        blo.name AS blockName,
-        CAST(cli.divideId AS char) AS divideId,
-        divi.name AS divideName,
-        CAST(cli.typeId AS char) AS typeId,
-        wat.typeName AS waterTypeName,
-        CAST(cli.id AS char) 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 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
@@ -390,6 +341,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
+        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 " >
@@ -401,7 +424,7 @@
 
   <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�-->
   <select id="getAreaCodeByNum" resultType="java.lang.Long">
-    SELECT districtNum FROM se_client WHERE clientNum = ${clientNum} LIMIT 0,1
+    SELECT districtNum FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
   </select>
 
   <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤-->
@@ -411,7 +434,7 @@
 
   <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID-->
   <select id="getClientIdByNum" resultType="java.lang.Long">
-    SELECT id FROM se_client WHERE clientNum = ${clientNum} LIMIT 0,1
+    SELECT id FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
   </select>
 
   <!--鏍规嵁鐢佃瘽鍙风爜鑾峰彇鍐滄埛ID-->
@@ -424,14 +447,14 @@
     update se_client set deleted = 1
     <where>
       <if test = "id != null and id > 0">
-        AND id = ${id}
+        AND id = #{id}
       </if>
     </where>
   </update>
 
   <!--鏍规嵁涓婚敭鑾峰彇鏉慖D-->
   <select id="getVillageIdById" parameterType="java.lang.Long" resultType="java.lang.Long">
-    SELECT villageId FROM se_client WHERE id = ${id}
+    SELECT villageId FROM se_client WHERE id = #{id}
   </select>
 
   <!--鑾峰彇铏氭嫙鍗″彿鏈�澶у��-->
@@ -465,5 +488,41 @@
     </where>
     LIMIT 0,1
   </select>
-
+  <!--鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+  <select id="getClientUsagesCount" resultType="java.lang.Long">
+    SELECT
+      count(*)
+    FROM se_client cli
+    <where>
+      <if test="clientName != null and clientName != ''">
+        AND cli.name like CONCAT('%', #{clientName}, '%')
+      </if>
+      <if test="clientNum != null and clientNum != ''">
+        AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+      </if>
+    </where>
+    </select>
+  <!--鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+  <select id="getClientUsages" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
+    SELECT
+      cli.name AS clientName,
+      (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.clientId = cli.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
+      (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.client_id = cli.id AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
+      (SELECT ROUND(SUM(card.money),2) FROM se_client_card card WHERE card.clientId = cli.id) AS balance
+    FROM se_client cli
+    <where>
+      <if test="clientName != null and clientName != ''">
+        AND cli.name like CONCAT('%', #{clientName}, '%')
+      </if>
+      <if test="clientNum != null and clientNum != ''">
+        AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+      </if>
+    </where>
+    ORDER BY totalConsumption DESC, totalRecharge DESC
+    <trim prefix="limit ">
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0