From 62d986383bd6ce6ac5ed382dce683e70e1a8d8ed Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期三, 27 三月 2024 19:11:13 +0800
Subject: [PATCH] 2024-03-27 朱宝民 优化Application下的获取交易统计记录

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml |  100 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 78 insertions(+), 22 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 485f1b5..8470ae2 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,11 @@
   <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
     <where>
       ge.deleted = 0
       AND divi.deleted = 0
@@ -233,26 +232,42 @@
       </if>
 
       <if test="blockName != null and blockName != ''">
-        AND blo.name = #{blockName}
+        AND blo.name LIKE CONCAT('%', #{blockName}, '%')
+      </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 id,
     ge.`name`                                           AS intakeName,
     divi.`name`                                         AS divideName,
     blo.`name`                                          AS blockName,
     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
     <where>
       ge.deleted = 0
       AND divi.deleted = 0
@@ -260,29 +275,35 @@
       <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>
 
       <if test="blockName != null and blockName != ''">
-        AND blo.name = #{blockName}
+        AND blo.name LIKE CONCAT('%', #{blockName}, '%')
+      </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>
 
-  <select id="getSupperByvillageId" parameterType="_long" resultType="java.lang.Long">
-    select dis_tow.*
-    from ba_district dis_vil
-    inner join
-    ba_district dis_tow
-    on dis_vil.supperId = dis_tow.id
-    where dis_vil.id = #{vaId,jdbcType=BIGINT}
-  </select>
-
+  <!--鏍规嵁涓嬬骇鑾峰彇涓婁竴绾у湴鍧�-->
   <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long">
     select dis_tow.*
     from ba_district dis_vil
@@ -291,4 +312,39 @@
     on dis_vil.supperId = dis_tow.id
     where dis_vil.id = #{vaId,jdbcType=BIGINT}
   </select>
+
+  <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺-->
+  <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
+    SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId}
+  </select>
+
+  <!--鏍规嵁鏉慖D鑾峰彇鍏ㄩ儴鍦板潃-->
+  <select id="getAddressByVillageId" parameterType="_long" resultType="java.lang.String">
+    select
+    CONCAT(dis_province.`name`, dis_city.`name`, dis_county.`name`, dis_town.`name`, dis_village.`name`) AS address
+    from ba_district dis_village
+    inner join ba_district dis_town    on dis_village.supperId = dis_town.id
+    inner join ba_district dis_county    on dis_town.supperId = dis_county.id
+    inner join ba_district dis_city    on dis_county.supperId = dis_city.id
+    inner join ba_district dis_province    on dis_city.supperId = dis_province.id
+    where dis_village.id = #{villageId,jdbcType=BIGINT}
+  </select>
+
+  <!--鏍规嵁鍖哄煙Id鑾峰彇鍖哄煙绛夌骇-->
+  <select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer">
+    select
+    region.level
+    from ba_district region
+    where region.id = #{regionId,jdbcType=BIGINT}
+  </select>
+
+  <!--鑾峰彇鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙e垪琛�-->
+  <select id="getNoBindingIntakes" resultType="java.util.HashMap">
+    SELECT
+        CAST(inta.id AS char)AS intakeId,
+        name AS intakeName
+    FROM pr_intake inta
+    WHERE id NOT IN(SELECT intakeId FROM pr_controller) AND deleted = 0
+  </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0