From 1cf88d43994ec7ec403319032a9d118b39fe3571 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 25 四月 2025 14:35:35 +0800
Subject: [PATCH] 登录代码优化

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml |  863 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 671 insertions(+), 192 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index 6c188cc..3c10897 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -29,6 +29,7 @@
         <result column="cl_this_amount" jdbcType="DOUBLE" property="clThisAmount"/>
         <result column="cl_this_money" jdbcType="DOUBLE" property="clThisMoney"/>
         <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime"/>
+        <result column="cl_price" jdbcType="DOUBLE" property="clPrice"/>
         <result column="cl_open_dt" jdbcType="TIMESTAMP" property="clOpenDt"/>
         <result column="close_dt" jdbcType="TIMESTAMP" property="closeDt"/>
         <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo"/>
@@ -63,6 +64,7 @@
         cl_this_amount,
         cl_this_money,
         cl_this_time,
+        cl_price,
         cl_open_dt,
         close_dt,
         cl_order_no,
@@ -93,7 +95,7 @@
                                                  op_ele_total_amount, op_water_remain_user, cl_dt,
                                                  cl_type, cl_total_amount, cl_ic_card_no,
                                                  cl_ic_card_addr, cl_remain_money, cl_this_amount,
-                                                 cl_this_money, cl_this_time, cl_open_dt,
+                                                 cl_this_money, cl_this_time, cl_price, cl_open_dt,
                                                  close_dt, cl_order_no, cl_ele_total_amount,
                                                  cl_water_remain_user, cl_this_ele)
         values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{clientName,jdbcType=VARCHAR},
@@ -104,9 +106,9 @@
                 #{opEleTotalAmount,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{clDt,jdbcType=TIMESTAMP},
                 #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE}, #{clIcCardNo,jdbcType=VARCHAR},
                 #{clIcCardAddr,jdbcType=VARCHAR}, #{clRemainMoney,jdbcType=DOUBLE}, #{clThisAmount,jdbcType=DOUBLE},
-                #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, #{clOpenDt,jdbcType=TIMESTAMP},
-                #{closeDt,jdbcType=TIMESTAMP}, #{clOrderNo,jdbcType=VARCHAR}, #{clEleTotalAmount,jdbcType=FLOAT},
-                #{clWaterRemainUser,jdbcType=FLOAT}, #{clThisEle,jdbcType=FLOAT})
+                #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, #{clPrice,jdbcType=INTEGER},
+                #{clOpenDt,jdbcType=TIMESTAMP}, #{closeDt,jdbcType=TIMESTAMP}, #{clOrderNo,jdbcType=VARCHAR},
+                #{clEleTotalAmount,jdbcType=FLOAT},#{clWaterRemainUser,jdbcType=FLOAT}, #{clThisEle,jdbcType=FLOAT})
     </insert>
     <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
         <!--@mbg.generated-->
@@ -183,6 +185,9 @@
             </if>
             <if test="clThisMoney != null">
                 cl_this_money,
+            </if>
+           <if test="clPrice != null">
+                cl_price,
             </if>
             <if test="clThisTime != null">
                 cl_this_time,
@@ -282,6 +287,9 @@
             <if test="clThisTime != null">
                 #{clThisTime,jdbcType=INTEGER},
             </if>
+           <if test="clPrice != null">
+                #{clPrice,jdbcType=DOUBLE},
+            </if>
             <if test="clOpenDt != null">
                 #{clOpenDt,jdbcType=TIMESTAMP},
             </if>
@@ -378,6 +386,9 @@
             <if test="clThisTime != null">
                 cl_this_time = #{clThisTime,jdbcType=INTEGER},
             </if>
+            <if test="clPrice != null">
+                cl_price = #{clPrice,jdbcType=INTEGER},
+            </if>
             <if test="clOpenDt != null">
                 cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
             </if>
@@ -426,6 +437,7 @@
             cl_this_amount       = #{clThisAmount,jdbcType=DOUBLE},
             cl_this_money        = #{clThisMoney,jdbcType=DOUBLE},
             cl_this_time         = #{clThisTime,jdbcType=INTEGER},
+            cl_price             = #{clPrice,jdbcType=DOUBLE},
             cl_open_dt           = #{clOpenDt,jdbcType=TIMESTAMP},
             close_dt             = #{closeDt,jdbcType=TIMESTAMP},
             cl_order_no          = #{clOrderNo,jdbcType=VARCHAR},
@@ -447,6 +459,9 @@
             <if test="intakeNum != null and intakeNum != ''">
                 AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
             </if>
+            <if test="clientName != null and clientName != ''">
+                AND oh.client_name LIKE CONCAT('%', #{clientName}, '%')
+            </if>
             <if test="rtuAddr != null and rtuAddr != ''">
                 AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
             </if>
@@ -454,154 +469,72 @@
                 AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
             </if>
             <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
-                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
-            </if>
-        </where>
-    </select>
-    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍏抽榾鎶ュ巻鍙茶褰曟暟閲�-->
-    <select id="getOpenCloseValveReportsCount_history" resultType="java.lang.Long">
-        SELECT COUNT(*) AS recordCount
-        FROM rm_open_close_valve_history oh
-                 INNER JOIN pr_intake inta ON inta.id = oh.intake_id
-        <where>
-            <if test="intakeId != null and intakeId > 0">
-                AND oh.intake_id = #{intakeId}
-            </if>
-            <if test="intakeNum != null and intakeNum != ''">
-                AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
-            </if>
-            <if test="rtuAddr != null and rtuAddr != ''">
-                AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
-            </if>
-            <if test="timeStart_open != null and timeStop_open != null">
-                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
-            </if>
-            <if test="timeStart_close != null and timeStop_close != null">
                 AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
             </if>
         </where>
     </select>
 
-    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍏抽榾鎶ュ巻鍙茶褰�-->
-    <select id="getOpenCloseValveReports_history" resultType="com.dy.pipIrrGlobal.voRm.VoOpenCloseValve">
-        SELECT oh.intake_id            AS intakeId,
-               inta.name               AS intakenum,
-               oh.rtu_addr             AS rtuAddr,
-               oh.client_name          AS clientName,
-               oh.op_ic_card_no        AS openIcNum,
-               oh.op_ic_card_addr      AS openIcAddr,
-               oh.op_dt                AS openTime,
-               CASE
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍏抽榾鎶ュ巻鍙茶褰�
+    CASE
                    WHEN oh.op_type = 1 THEN '鍒峰崱寮�闃�'
                    WHEN oh.op_type = 3 THEN '涓績绔欏紑闃�'
-                   WHEN oh.op_type = 5 THEN '娆犺垂鍏抽榾'
+                   WHEN oh.op_type = 5 THEN '浣欓涓嶈冻鍏抽榾'
                    WHEN oh.op_type = 8 THEN '鐢ㄦ埛杩滅▼寮�闃�'
-                   WHEN oh.op_type = 11 THEN '寮�鍏抽榾鍗″紑闃�'
+                   WHEN oh.op_type = 11 THEN '宸℃鍗″紑闃�'
                    ELSE '鏈煡'
                    END                 AS openType,
-               oh.op_order_no          AS openOrderNo,
-               oh.op_total_amount      AS openTotalAmount,
-               oh.op_remain_money      AS openRemainMoney,
-               oh.op_water_remain_user AS openWaterRemain,
-               oh.op_ele_total_amount  AS openEleTotalAmount,
-               oh.cl_ic_card_no        AS closeIcNum,
-               oh.cl_ic_card_addr      AS closeIcAddr,
-               oh.cl_dt                AS closeTime,
-               CASE
+
+    CASE
                    WHEN oh.cl_type = 2 THEN '鍒峰崱鍏抽榾'
                    WHEN oh.cl_type = 4 THEN '涓績绔欏叧闃�'
-                   WHEN oh.cl_type = 5 THEN '娆犺垂鍏抽榾'
-                   WHEN oh.cl_type = 6 THEN '娴侀噺璁℃晠闅滃叧闃�'
-                   WHEN oh.cl_type = 7 THEN '绱ф�ュ叧闃�'
-                   WHEN oh.cl_type = 9 THEN '鐢ㄦ埛杩滅▼鍏抽榾'
-                   WHEN oh.cl_type = 10 THEN '寮�鍏抽榾鍗″叧闃�'
-                   WHEN oh.cl_type = 12 THEN '榛戝悕鍗曞懡浠ゅ叧闃�'
-                   WHEN oh.cl_type = 13 THEN '杩滅▼瀹氭椂鍏抽榾'
-                   WHEN oh.cl_type = 14 THEN '杩滅▼瀹氶噺鍏抽榾'
-                   ELSE '鏈煡'
-                   END                 AS closeType,
-               oh.cl_this_amount       AS closeThisAmount,
-               oh.cl_this_time         AS thisTime,
-               oh.cl_this_money        AS thisMoney,
-               oh.cl_remain_money      AS closeRemainMoney,
-               oh.cl_total_amount      AS closeTotalAmount
-        FROM rm_open_close_valve_history oh
-                 INNER JOIN pr_intake inta ON inta.id = oh.intake_id
-        <where>
-            <if test="intakeId != null and intakeId > 0">
-                AND oh.intake_id = #{intakeId}
-            </if>
-            <if test="intakeNum != null and intakeNum != ''">
-                AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
-            </if>
-            <if test="rtuAddr != null and rtuAddr != ''">
-                AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
-            </if>
-            <if test="timeStart_open != null and timeStop_open != null">
-                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
-            </if>
-            <if test="timeStart_close != null and timeStop_close != null">
-                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
-            </if>
-        </where>
-        ORDER BY oh.op_dt DESC
-        <trim prefix="limit ">
-            <if test="start != null and count != null">
-                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
-            </if>
-        </trim>
-    </select>
-    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍏抽榾鎶ュ巻鍙茶褰�-->
-    <select id="getOpenCloseValveReports_history" resultType="com.dy.pipIrrGlobal.voRm.VoOpenCloseValve">
-        SELECT oh.intake_id            AS intakeId,
-               inta.name               AS intakenum,
-               oh.rtu_addr             AS rtuAddr,
-               oh.client_name          AS clientName,
-               oh.op_ic_card_no        AS openIcNum,
-               oh.op_ic_card_addr      AS openIcAddr,
-               oh.op_dt                AS openTime,
-               CASE
-                   WHEN oh.op_type = 1 THEN '鍒峰崱寮�闃�'
-                   WHEN oh.op_type = 3 THEN '涓績绔欏紑闃�'
-                   WHEN oh.op_type = 5 THEN '娆犺垂鍏抽榾'
-                   WHEN oh.op_type = 8 THEN '鐢ㄦ埛杩滅▼寮�闃�'
-                   WHEN oh.op_type = 11 THEN '寮�鍏抽榾鍗″紑闃�'
-                   ELSE '鏈煡'
-                   END                 AS openType,
-               oh.op_order_no          AS openOrderNo,
-               oh.op_total_amount      AS openTotalAmount,
-               oh.op_remain_money      AS openRemainMoney,
-               oh.op_water_remain_user AS openWaterRemain,
-               oh.op_ele_total_amount  AS openEleTotalAmount,
-               oh.cl_ic_card_no        AS closeIcNum,
-               oh.cl_ic_card_addr      AS closeIcAddr,
-               oh.cl_dt                AS closeTime,
-               CASE
-                   WHEN oh.cl_type = 2 THEN '鍒峰崱鍏抽榾'
-                   WHEN oh.cl_type = 4 THEN '涓績绔欏叧闃�'
-                   WHEN oh.cl_type = 5 THEN '娆犺垂鍏抽榾'
+                   WHEN oh.cl_type = 5 THEN '浣欓涓嶈冻鍏抽榾'
                    WHEN oh.cl_type = 6 THEN '娴侀噺璁℃晠闅滃叧闃�'
                    WHEN oh.cl_type = 7 THEN '绱ф�ュ叧闂�'
                    WHEN oh.cl_type = 9 THEN '鐢ㄦ埛杩滅▼鍏抽榾'
-                   WHEN oh.cl_type = 10 THEN '寮�鍏抽榾鍗″叧闃�'
+                   WHEN oh.cl_type = 10 THEN '宸℃鍗″叧闃�'
                    WHEN oh.cl_type = 12 THEN '榛戝悕鍗曞懡浠ゅ叧闃�'
                    WHEN oh.cl_type = 13 THEN '鐢ㄦ埛杩滅▼瀹氭椂鍏抽榾'
                    WHEN oh.cl_type = 14 THEN '鐢ㄦ埛杩滅▼瀹氶噺鍏抽榾'
                    ELSE '鏈煡'
                    END                 AS closeType,
+    -->
+    <select id="getOpenCloseValveReports_history" resultType="com.dy.pipIrrGlobal.voRm.VoOpenCloseValve">
+        SELECT oh.intake_id            AS intakeId,
+               inta.name               AS intakenum,
+               oh.rtu_addr             AS rtuAddr,
+               cl.name                 AS clientName,
+               cl.address              AS clientAddr,
+               oh.op_ic_card_no        AS openIcNum,
+               oh.op_ic_card_addr      AS openIcAddr,
+               oh.open_dt              AS openTime,
+               oh.op_type              AS opType,
+               oh.op_order_no          AS openOrderNo,
+               oh.op_total_amount      AS openTotalAmount,
+               oh.op_remain_money      AS openRemainMoney,
+               oh.op_water_remain_user AS openWaterRemain,
+               oh.op_ele_total_amount  AS openEleTotalAmount,
+               oh.cl_ic_card_no        AS closeIcNum,
+               oh.cl_ic_card_addr      AS closeIcAddr,
+               oh.close_dt             AS closeTime,
+               oh.cl_type              AS clType,
                oh.cl_this_amount       AS closeThisAmount,
                oh.cl_this_time         AS thisTime,
+               oh.cl_price             AS closePrice,
                oh.cl_this_money        AS thisMoney,
                oh.cl_remain_money      AS closeRemainMoney,
                oh.cl_total_amount      AS closeTotalAmount
         FROM rm_open_close_valve_history oh
-                 INNER JOIN pr_intake inta ON inta.id = oh.intake_id
+        LEFT JOIN pr_intake inta ON inta.id = oh.intake_id
+        LEFT JOIN se_client cl ON cl.id = oh.client_id
         <where>
             <if test="intakeId != null and intakeId > 0">
                 AND oh.intake_id = #{intakeId}
             </if>
             <if test="intakeNum != null and intakeNum != ''">
                 AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
+            </if>
+            <if test="clientName != null and clientName != ''">
+                AND oh.client_name LIKE CONCAT('%', #{clientName}, '%')
             </if>
             <if test="rtuAddr != null and rtuAddr != ''">
                 AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
@@ -613,37 +546,57 @@
                 AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
             </if>
         </where>
-        ORDER BY oh.op_dt DESC
+        ORDER BY oh.id DESC
         <trim prefix="limit ">
             <if test="start != null and count != null">
                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
             </if>
         </trim>
     </select>
+
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴浠庢湭寮�杩囬榾鐨勫彇姘村彛鏁伴噺-->
     <select id="getNeverOpenValveIntakesCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM pr_intake inta
-                 INNER JOIN ba_block blo ON blo.id = inta.blockId
-        WHERE inta.deleted = 0
-          AND NOT EXISTS(SELECT *
-                         FROM rm_open_close_valve_history
-                         WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}
-                           AND intake_id = inta.id)
+        LEFT JOIN
+        (SELECT intake_id FROM rm_open_close_valve_history
+        <where>
+            <if test = "idStart != null">
+                id <![CDATA[>=]]> #{idStart}
+            </if>
+            <if test = "idEnd != null">
+                AND id <![CDATA[<=]]> #{idEnd}
+            </if>
+        </where>) his
+        ON his.intake_id = inta.id
+        LEFT JOIN ba_block blo ON blo.id = inta.blockId
+        LEFT JOIN pr_controller pct ON inta.id = pct.intakeId
+        WHERE his.intake_id IS NULL AND inta.deleted = 0
     </select>
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴浠庢湭寮�杩囬榾鐨勫彇姘村彛-->
-    <select id="getNeverOpenValveIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake">
-        SELECT inta.id   AS intakeId,
-               inta.name AS intakeNum,
-               blo.name  AS blockName
+    <select id="getNeverOpenValveIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeUnOpenValve">
+        SELECT inta.id      AS intakeId,
+               inta.name    AS intakeNum,
+               inta.lng     AS lng,
+               inta.lat     AS lat,
+               blo.name     AS blockName,
+               pct.rtuAddr  AS rtuAddr
         FROM pr_intake inta
-                 INNER JOIN ba_block blo ON blo.id = inta.blockId
-        WHERE inta.deleted = 0
-          AND NOT EXISTS(SELECT *
-                         FROM rm_open_close_valve_history
-                         WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}
-                           AND intake_id = inta.id)
-        ORDER BY inta.id
+        LEFT JOIN
+        (SELECT intake_id FROM rm_open_close_valve_history
+        <where>
+            <if test = "idStart != null">
+                id <![CDATA[>=]]> #{idStart}
+            </if>
+            <if test = "idEnd != null">
+                AND id <![CDATA[<=]]> #{idEnd}
+            </if>
+        </where>) his
+        ON his.intake_id = inta.id
+        LEFT JOIN ba_block blo ON blo.id = inta.blockId
+        LEFT JOIN pr_controller pct ON inta.id = pct.intakeId
+        WHERE his.intake_id IS NULL AND inta.deleted = 0
+        ORDER BY inta.id DESC
         <trim prefix="limit ">
             <if test="start != null and count != null">
                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
@@ -658,10 +611,11 @@
                      inta.name AS intakeNum,
                      blo.name  AS blockName
               FROM pr_intake inta
-                       LEFT JOIN (SELECT *
-                                  FROM rm_open_close_valve_history
-                                  WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id
-                       INNER JOIN ba_block blo ON blo.id = inta.blockId
+              INNER JOIN (SELECT intake_id
+                          FROM rm_open_close_valve_history
+                          WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
+              ) his ON his.intake_id = inta.id
+              INNER JOIN ba_block blo ON blo.id = inta.blockId
               WHERE inta.deleted = 0
               GROUP BY intakeId, intakeNum, blockName
               HAVING recordCount &gt; #{value}) a
@@ -671,22 +625,26 @@
         SELECT COUNT(*)  AS recordCount,
                inta.id   AS intakeId,
                inta.name AS intakeNum,
+               inta.lng  AS lng,
+               inta.lat  AS lat,
                blo.name  AS blockName
         FROM pr_intake inta
-                 LEFT JOIN (SELECT *
-                            FROM rm_open_close_valve_history
-                            WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id
-                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        INNER JOIN(SELECT intake_id
+                   FROM rm_open_close_valve_history
+                   WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
+        ) his ON his.intake_id = inta.id
+        INNER JOIN ba_block blo ON blo.id = inta.blockId
         WHERE inta.deleted = 0
         GROUP BY intakeId, intakeNum, blockName
         HAVING recordCount &gt; #{value}
-        <!--        ORDER BY inta.id-->
+        ORDER BY intakeId DESC
         <trim prefix="limit ">
             <if test="start != null and count != null">
                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
             </if>
         </trim>
     </select>
+
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
     <select id="getOpenValveLtIntakesCount" resultType="java.lang.Long">
         select count(*)
@@ -695,10 +653,11 @@
                      inta.name AS intakeNum,
                      blo.name  AS blockName
               FROM pr_intake inta
-                       LEFT JOIN (SELECT *
-                                  FROM rm_open_close_valve_history
-                                  WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id
-                       INNER JOIN ba_block blo ON blo.id = inta.blockId
+              INNER JOIN (SELECT intake_id
+                          FROM rm_open_close_valve_history
+                          WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
+              ) his ON his.intake_id = inta.id
+              INNER JOIN ba_block blo ON blo.id = inta.blockId
               WHERE inta.deleted = 0
               GROUP BY intakeId, intakeNum, blockName
               HAVING recordCount &lt; #{value}) a
@@ -708,16 +667,19 @@
         SELECT COUNT(*)  AS recordCount,
                inta.id   AS intakeId,
                inta.name AS intakeNum,
+               inta.lng  AS lng,
+               inta.lat  AS lat,
                blo.name  AS blockName
         FROM pr_intake inta
-                 LEFT JOIN (SELECT *
-                            FROM rm_open_close_valve_history
-                            WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id
-                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        INNER JOIN(SELECT intake_id
+                   FROM rm_open_close_valve_history
+                   WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
+        ) his ON his.intake_id = inta.id
+        INNER JOIN ba_block blo ON blo.id = inta.blockId
         WHERE inta.deleted = 0
         GROUP BY intakeId, intakeNum, blockName
         HAVING recordCount &lt; #{value}
-        <!--        ORDER BY inta.id-->
+        ORDER BY intakeId DESC
         <trim prefix="limit ">
             <if test="start != null and count != null">
                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
@@ -729,10 +691,14 @@
     <select id="getLargeOpenCountClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-        WHERE (SELECT COUNT(*)
-               FROM rm_open_close_valve_history his
-               WHERE his.client_id = cli.id
-                 AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{openCount}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
+                (SELECT COUNT(*)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{openCount}
+            </if>
+        </where>
     </select>
 
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
@@ -742,12 +708,24 @@
                cli.clientNum,
                CONCAT(cli.districtTitle, cli.address) AS address,
                cli.phone,
-               cli.idCard
+               cli.idCard,
+                (SELECT COUNT(*)
+                FROM rm_open_close_valve_history his
+                <where>
+                    his.client_id = cli.id
+                    <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+                    </if>
+                </where>) AS openCount
         FROM se_client cli
-        WHERE (SELECT COUNT(*)
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
+               (SELECT COUNT(*)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                  AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{openCount}
+            </if>
+        </where>
         ORDER BY cli.id
         <trim prefix="limit ">
             <if test="start != null and count != null">
@@ -760,10 +738,14 @@
     <select id="getSmallOpenCountClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-        WHERE (SELECT COUNT(*)
-               FROM rm_open_close_valve_history his
-               WHERE his.client_id = cli.id
-                 AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{openCount}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
+                (SELECT COUNT(*)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{openCount}
+            </if>
+        </where>
     </select>
 
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛-->
@@ -773,12 +755,24 @@
                cli.clientNum,
                CONCAT(cli.districtTitle, cli.address) AS address,
                cli.phone,
-               cli.idCard
+               cli.idCard,
+                (SELECT COUNT(*)
+                FROM rm_open_close_valve_history his
+                <where>
+                    his.client_id = cli.id
+                    <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+                    </if>
+                </where>) AS openCount
         FROM se_client cli
-        WHERE (SELECT COUNT(*)
-               FROM rm_open_close_valve_history his
-               WHERE his.client_id = cli.id
-                 AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{openCount}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
+                (SELECT COUNT(*)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{openCount}
+            </if>
+        </where>
         ORDER BY cli.id
         <trim prefix="limit ">
             <if test="start != null and count != null">
@@ -791,9 +785,14 @@
     <select id="getLargeWaterConsumptionClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-                 INNER JOIN rm_open_close_valve_history his ON his.client_id = cli.id
-        WHERE his.op_dt BETWEEN #{timeStart} AND #{timeStop}
-          AND his.cl_this_amount > #{waterConsumption}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterConsumption != null">
+                (SELECT SUM(his.cl_this_amount)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{waterConsumption}
+            </if>
+        </where>
     </select>
 
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍐滄埛-->
@@ -803,11 +802,73 @@
                cli.clientNum,
                CONCAT(cli.districtTitle, cli.address) AS address,
                cli.phone,
-               cli.idCard
+               cli.idCard,
+                IFNULL((SELECT SUM(his.cl_this_amount)
+                FROM rm_open_close_valve_history his
+                <where>
+                    his.client_id = cli.id
+                    <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                        AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+                    </if>
+                </where>
+                ),0) AS waterConsumption
         FROM se_client cli
-                 INNER JOIN rm_open_close_valve_history his ON his.client_id = cli.id
-        WHERE his.op_dt BETWEEN #{timeStart} AND #{timeStop}
-          AND his.cl_this_amount > #{waterConsumption}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterConsumption != null">
+                (SELECT SUM(his.cl_this_amount)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{waterConsumption}
+            </if>
+        </where>
+        ORDER BY cli.id
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忎綆浜庢寚瀹氬�肩殑鍐滄埛鏁伴噺-->
+    <select id="getSmallWaterConsumptionClientsCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM se_client cli
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterConsumption != null">
+                (SELECT SUM(his.cl_this_amount)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{waterConsumption}
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忎綆浜庢寚瀹氬�肩殑鍐滄埛-->
+    <select id="getSmallWaterConsumptionClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+        SELECT cli.id                                 AS clientId,
+        cli.name                               AS clientName,
+        cli.clientNum,
+        CONCAT(cli.districtTitle, cli.address) AS address,
+        cli.phone,
+        cli.idCard,
+        IFNULL((SELECT SUM(his.cl_this_amount)
+        FROM rm_open_close_valve_history his
+        <where>
+            his.client_id = cli.id
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+        ),0) AS waterConsumption
+        FROM se_client cli
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterConsumption != null">
+                (SELECT SUM(his.cl_this_amount)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{waterConsumption}
+            </if>
+        </where>
         ORDER BY cli.id
         <trim prefix="limit ">
             <if test="start != null and count != null">
@@ -820,9 +881,14 @@
     <select id="getLargeAmountSpentClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-                 INNER JOIN rm_open_close_valve_history his ON his.client_id = cli.id
-        WHERE his.op_dt BETWEEN #{timeStart} AND #{timeStop}
-          AND his.cl_this_money > #{amountSpent}
+        <where>
+        <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and amountSpent != null">
+               (SELECT SUM(his.cl_this_money)
+               FROM rm_open_close_valve_history his
+               WHERE his.client_id = cli.id
+                 AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{amountSpent}
+        </if>
+        </where>
     </select>
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
     <select id="getLargeAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
@@ -831,11 +897,72 @@
                cli.clientNum,
                CONCAT(cli.districtTitle, cli.address) AS address,
                cli.phone,
-               cli.idCard
+               cli.idCard,
+                IFNULL((SELECT SUM(his.cl_this_money)
+                FROM rm_open_close_valve_history his
+                <where>
+                    his.client_id = cli.id
+                    <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                        AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+                    </if>
+                </where>
+                ),0) AS amountSpent
         FROM se_client cli
-                 INNER JOIN rm_open_close_valve_history his ON his.client_id = cli.id
-        WHERE his.op_dt BETWEEN #{timeStart} AND #{timeStop}
-          AND his.cl_this_money > #{amountSpent}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and amountSpent != null">
+                (SELECT SUM(his.cl_this_money)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{amountSpent}
+            </if>
+        </where>
+        ORDER BY cli.id
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
+    <select id="getSmallAmountSpentClientsCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM se_client cli
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and amountSpent != null">
+                (SELECT SUM(his.cl_this_money)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{amountSpent}
+            </if>
+        </where>
+    </select>
+    <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦浣庝簬鎸囧畾鍊肩殑鍐滄埛-->
+    <select id="getSmallAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+        SELECT cli.id                                 AS clientId,
+        cli.name                               AS clientName,
+        cli.clientNum,
+        CONCAT(cli.districtTitle, cli.address) AS address,
+        cli.phone,
+        cli.idCard,
+        IFNULL((SELECT SUM(his.cl_this_money)
+        FROM rm_open_close_valve_history his
+        <where>
+            his.client_id = cli.id
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+        ),0) AS amountSpent
+        FROM se_client cli
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and amountSpent != null">
+                (SELECT SUM(his.cl_this_money)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{amountSpent}
+            </if>
+        </where>
         ORDER BY cli.id
         <trim prefix="limit ">
             <if test="start != null and count != null">
@@ -848,9 +975,14 @@
     <select id="getLargeWaterDurationClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-                 INNER JOIN rm_open_close_valve_history his ON his.client_id = cli.id
-        WHERE his.op_dt BETWEEN #{timeStart} AND #{timeStop}
-          AND his.cl_this_time > #{waterDuration}
+        <where>
+        <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterDuration != null">
+               (SELECT SUM(his.cl_this_time)
+               FROM rm_open_close_valve_history his
+               WHERE his.client_id = cli.id
+                 AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{waterDuration}
+        </if>
+        </where>
     </select>
 
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
@@ -860,11 +992,25 @@
                cli.clientNum,
                CONCAT(cli.districtTitle, cli.address) AS address,
                cli.phone,
-               cli.idCard
+               cli.idCard,
+                IFNULL((SELECT SUM(his.cl_this_time)
+                FROM rm_open_close_valve_history his
+                <where>
+                    his.client_id = cli.id
+                    <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                        AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+                    </if>
+                </where>
+                ),0) AS waterDuration
         FROM se_client cli
-                 INNER JOIN rm_open_close_valve_history his ON his.client_id = cli.id
-        WHERE his.op_dt BETWEEN #{timeStart} AND #{timeStop}
-          AND his.cl_this_time > #{waterDuration}
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterDuration != null">
+                (SELECT SUM(his.cl_this_time)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{waterDuration}
+            </if>
+        </where>
         ORDER BY cli.id
         <trim prefix="limit ">
             <if test="start != null and count != null">
@@ -872,4 +1018,337 @@
             </if>
         </trim>
     </select>
+
+    <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
+    <select id="getSmallWaterDurationClientsCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM se_client cli
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterDuration != null">
+                (SELECT SUM(his.cl_this_time)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{waterDuration}
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱浣庝簬鎸囧畾鍊肩殑鍐滄埛-->
+    <select id="getSmallWaterDurationClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+        SELECT cli.id                                 AS clientId,
+        cli.name                               AS clientName,
+        cli.clientNum,
+        CONCAT(cli.districtTitle, cli.address) AS address,
+        cli.phone,
+        cli.idCard,
+        IFNULL((SELECT SUM(his.cl_this_time)
+        FROM rm_open_close_valve_history his
+        <where>
+            his.client_id = cli.id
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+        ),0) AS waterDuration
+        FROM se_client cli
+        <where>
+            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterDuration != null">
+                (SELECT SUM(his.cl_this_time)
+                FROM rm_open_close_valve_history his
+                WHERE his.client_id = cli.id
+                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{waterDuration}
+            </if>
+        </where>
+        ORDER BY cli.id
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
+    <select id="getUseWaterDurationGtValueIntakesCount" resultType="java.lang.Long">
+        select
+        count(*)
+        from
+        (        SELECT
+        inta.id AS intakeId,
+        inta.NAME AS intakeNum,
+        blo.NAME AS blockName ,
+        IFNULL(SUM(rocvh.cl_this_time),0) AS recordCount
+        FROM
+        pr_intake inta
+        INNER JOIN ba_block blo ON blo.id = inta.blockId
+        LEFT JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+        WHERE rocvh.op_dt &gt;= #{timeStart} AND rocvh.cl_dt &lt;= #{timeStop} AND inta.deleted = 0
+        GROUP BY inta.id
+        HAVING IFNULL(SUM(rocvh.cl_this_time),0) &gt; #{value}) c
+    </select>
+    <!--鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
+    <select id="getUseWaterDurationGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeOpenCount">
+        SELECT
+        inta.id AS intakeId,
+        inta.NAME AS intakeNum,
+        blo.NAME AS blockName ,
+        IFNULL(SUM(rocvh.cl_this_time),0) AS recordCount
+        FROM
+        pr_intake inta
+        LEFT JOIN ba_block blo ON blo.id = inta.blockId
+        INNER JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+        WHERE rocvh.op_dt &gt;= #{timeStart} AND rocvh.cl_dt &lt;= #{timeStop} AND inta.deleted = 0
+        GROUP BY inta.id
+        HAVING IFNULL(SUM(rocvh.cl_this_time),0) &gt; #{value}
+        ORDER BY inta.id
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+    <!--鎸囧畾鏃堕棿娈� 鏈夊紑闃� 鏃犲叧闃�鐨勫彇姘村彛鏁伴噺-->
+    <select id="getHaveOpenNoCloseIntakesCount" resultType="java.lang.Long">
+        select count(*) from
+        (
+            SELECT
+            inta.id AS intakeId
+            FROM
+            pr_intake inta
+            LEFT JOIN ba_block blo ON blo.id = inta.blockId
+            INNER JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+            WHERE inta.deleted = 0 AND rocvh.id <![CDATA[>=]]> #{idStart} AND  rocvh.id <![CDATA[<=]]> #{idEnd} AND rocvh.cl_dt IS NULL
+            GROUP BY inta.id
+        ) c
+    </select>
+    <!--鎸囧畾鏃堕棿娈� 鏈夊紑闃� 鏃犲叧闃�鐨勫彇姘村彛-->
+    <select id="getHaveOpenNoCloseIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake">
+        SELECT
+            inta.id AS intakeId,
+            inta.NAME AS intakeNum,
+            inta.lng AS lng,
+            inta.lat AS lat,
+            blo.NAME AS blockName
+        FROM
+            pr_intake inta
+            LEFT JOIN ba_block blo ON blo.id = inta.blockId
+            INNER JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+        WHERE inta.deleted = 0 AND rocvh.id <![CDATA[>=]]> #{idStart} AND  rocvh.id <![CDATA[<=]]> #{idEnd} AND rocvh.cl_dt IS NULL
+        GROUP BY inta.id
+        ORDER BY inta.id DESC
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+    <!--鎸囧畾鏃堕棿娈� 鏃犲紑闃� 鏈夊叧闃�鐨勫彇姘村彛鏁伴噺-->
+    <select id="getNoOpenHaveCloseIntakesCount" resultType="java.lang.Long">
+        select count(*) from
+        (
+            SELECT
+            inta.id AS intakeId
+            FROM
+            pr_intake inta
+            LEFT JOIN ba_block blo ON blo.id = inta.blockId
+            INNER JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+            WHERE inta.deleted = 0 AND rocvh.id <![CDATA[>=]]> #{idStart} AND  rocvh.id <![CDATA[<=]]> #{idEnd} AND rocvh.op_dt IS NULL
+            GROUP BY inta.id
+        ) c
+    </select>
+    <!--鎸囧畾鏃堕棿娈� 鏃犲紑闃� 鏈夊叧闃�鐨勫彇姘村彛-->
+    <select id="getNoOpenHaveCloseIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake">
+        SELECT
+        inta.id AS intakeId,
+        inta.NAME AS intakeNum,
+        inta.lng AS lng,
+        inta.lat AS lat,
+        blo.NAME AS blockName
+        FROM
+        pr_intake inta
+        LEFT JOIN ba_block blo ON blo.id = inta.blockId
+        INNER JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+        WHERE inta.deleted = 0 AND rocvh.id <![CDATA[>=]]> #{idStart} AND  rocvh.id <![CDATA[<=]]> #{idEnd} AND rocvh.op_dt IS NULL
+        GROUP BY inta.id
+        ORDER BY inta.id DESC
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鑾峰彇姘村崱娑堣垂璁板綍鏁伴噺锛岀鐞嗗钩鍙颁娇鐢�-->
+    <select id="getExpendsCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM rm_open_close_valve_history och
+            INNER JOIN se_client cli ON cli.id = och.client_id
+            INNER JOIN pr_intake inta ON inta.id = och.intake_id
+        <where>
+            AND och.cl_ic_card_no IS NOT NULL AND och.client_id IS NOT NULL
+            AND och.cl_this_money> 0
+            <if test = "clientName != null and clientName !=''">
+                AND cli.name like CONCAT('%',#{clientName},'%')
+            </if>
+
+            <if test = "clientNum != null and clientNum > 0">
+                AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+            </if>
+
+            <if test = "cardNum != null and cardNum !=''">
+                AND och.cl_ic_card_no like CONCAT('%',#{cardNum},'%')
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢�-->
+    <select id="getExpends" resultType="com.dy.pipIrrGlobal.voRm.VoExpend">
+        SELECT
+            cli.name AS clientName,
+            cli.clientNum,
+            och.cl_ic_card_no AS cardNum,
+            inta.name AS intakeName,
+            och.rtu_addr AS rtuAddr,
+            och.cl_this_money AS moneyAmount,
+            och.cl_this_amount AS waterAmount,
+            och.cl_this_time AS duration,
+            och.cl_dt AS operateTime
+        FROM rm_open_close_valve_history och
+            INNER JOIN se_client cli ON cli.id = och.client_id
+            INNER JOIN pr_intake inta ON inta.id = och.intake_id
+        <where>
+            AND och.cl_ic_card_no IS NOT NULL AND och.client_id IS NOT NULL
+            AND och.cl_this_money> 0
+            <if test = "clientName != null and clientName !=''">
+                AND cli.name like CONCAT('%',#{clientName},'%')
+            </if>
+
+            <if test = "clientNum != null and clientNum > 0">
+                AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+            </if>
+
+            <if test = "cardNum != null and cardNum !=''">
+                AND och.cl_ic_card_no like CONCAT('%',#{cardNum},'%')
+            </if>
+        </where>
+        ORDER BY och.cl_dt DESC
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鑾峰彇鐗╃悊鍗″紑鍏抽榾璁板綍鏁伴噺锛屽井淇″皬绋嬪簭浣跨敤-->
+    <select id="getCardOpenCloseCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM rm_open_close_valve_history his
+                 LEFT JOIN pr_intake inta ON inta.id = his.intake_id
+        <where>
+            AND op_type  = 1
+            <if test = "clientId != null">
+                AND his.client_id = #{clientId}
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇鐗╃悊鍗″紑鍏抽榾璁板綍锛屽井淇″皬绋嬪簭浣跨敤-->
+    <select id="getCardOpenClose" resultType="com.dy.pipIrrGlobal.voRm.VoOpenClostWechat">
+        SELECT
+            cl_this_money AS expense,
+            op_ic_card_no AS cardNum,
+            inta.name AS intakeNum,
+            open_dt AS openTime,
+            close_dt AS closeTime,
+            cl_this_time AS duration,
+            cl_this_amount AS amount,
+            '鍒峰崱寮�闃�' AS openType
+        FROM rm_open_close_valve_history his
+                 LEFT JOIN pr_intake inta ON inta.id = his.intake_id
+        <where>
+            AND op_type  = 1
+            <if test = "clientId != null">
+                AND his.client_id = #{clientId}
+            </if>
+        </where>
+        ORDER BY open_dt DESC
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鑾峰彇铏氭嫙鍗″紑鍏抽榾璁板綍鏁伴噺锛屽井淇″皬绋嬪簭浣跨敤-->
+    <select id="getVcCardOpenCloseCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM rm_open_close_valve_history his
+                 LEFT JOIN pr_intake inta ON inta.id = his.intake_id
+        <where>
+            AND op_type  = 8
+            <if test = "clientId != null">
+                AND his.client_id = #{clientId}
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇铏氭嫙鍗″紑鍏抽榾璁板綍锛屽井淇″皬绋嬪簭浣跨敤-->
+    <select id="getVcCardOpenClose" resultType="com.dy.pipIrrGlobal.voRm.VoOpenClostWechat">
+        SELECT
+            cl_this_money AS expense,
+            op_ic_card_no AS cardNum,
+            inta.name AS intakeNum,
+            open_dt AS openTime,
+            close_dt AS closeTime,
+            cl_this_time AS duration,
+            cl_this_amount AS amount,
+            CASE
+                WHEN cl_type = 13 THEN '瀹氭椂鍏抽榾寮忓紑闃�'
+                WHEN cl_type = 14 THEN '瀹氶噺鍏抽榾寮忓紑闃�'
+                ELSE '杩滅▼寮�闃�'
+                END AS openType
+        FROM rm_open_close_valve_history his
+                 LEFT JOIN pr_intake inta ON inta.id = his.intake_id
+        <where>
+            AND op_type  = 8
+            <if test = "clientId != null">
+                AND his.client_id = #{clientId}
+            </if>
+        </where>
+        ORDER BY open_dt DESC
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+
+
+    <!-- /////////////////////////////////// -->
+    <!-- 缁熻鐩稿叧                              -->
+    <!-- /////////////////////////////////// -->
+    <select id="statisticsByIc" resultType="com.dy.pipIrrGlobal.voSt.VoIcConsumeStatistics">
+        select ocvh.client_id as clientId,
+        cc.id as cardId,
+        sum(ocvh.cl_this_amount) as water,
+        sum(ocvh.cl_this_money) as amount,
+        sum(ocvh.cl_this_time) as duration,
+        count(ocvh.id) as times
+        from rm_open_close_valve_history ocvh
+        inner join se_client_card cc on CAST(cc.cardNum AS CHAR) = ocvh.cl_ic_card_no
+        where ocvh.cl_dt <![CDATA[>=]]> #{startDt, jdbcType=TIMESTAMP }
+        and ocvh.cl_dt <![CDATA[<=]]> #{endDt, jdbcType=TIMESTAMP}
+        group by ocvh.client_id, cc.id
+    </select>
+    <select id="statisticsByClient" resultType="com.dy.pipIrrGlobal.voSt.VoClientConsumeStatistics">
+        select client_id as clientId,
+        sum(cl_this_amount) as water,
+        sum(cl_this_money) as amount,
+        sum(cl_this_time) as duration,
+        count(id) as times
+        from rm_open_close_valve_history
+        where cl_dt <![CDATA[>=]]> #{startDt, jdbcType=TIMESTAMP}
+        and cl_dt <![CDATA[<=]]> #{endDt, jdbcType=TIMESTAMP}
+        group by client_id
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0