From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 15:18:51 +0800
Subject: [PATCH] 整理版本

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml |  276 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 130 insertions(+), 146 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 a9c9b6d..3c10897 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -507,7 +507,7 @@
                oh.op_ic_card_no        AS openIcNum,
                oh.op_ic_card_addr      AS openIcAddr,
                oh.open_dt              AS openTime,
-               oh.op_type              AS openType_,
+               oh.op_type              AS opType,
                oh.op_order_no          AS openOrderNo,
                oh.op_total_amount      AS openTotalAmount,
                oh.op_remain_money      AS openRemainMoney,
@@ -516,7 +516,7 @@
                oh.cl_ic_card_no        AS closeIcNum,
                oh.cl_ic_card_addr      AS closeIcAddr,
                oh.close_dt             AS closeTime,
-               oh.cl_type              AS closeType_,
+               oh.cl_type              AS clType,
                oh.cl_this_amount       AS closeThisAmount,
                oh.cl_this_time         AS thisTime,
                oh.cl_price             AS closePrice,
@@ -553,30 +553,50 @@
             </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}
@@ -591,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
@@ -604,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(*)
@@ -628,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
@@ -641,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}
@@ -1037,84 +1066,7 @@
             </if>
         </trim>
     </select>
-    <!--鎸囧畾鏃堕棿娈电敤姘撮噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
-    <select id="getUseWaterGtValueIntakesCount" 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_amount),0) AS value
-        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_amount),0) &gt; #{value}) c
-    </select>
-    <!--鎸囧畾鏃堕棿娈电敤姘撮噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
-    <select id="getUseWaterGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount">
-        SELECT
-            inta.id AS intakeId,
-            inta.NAME AS intakeNum,
-            blo.NAME AS blockName ,
-        IFNULL(SUM(rocvh.cl_this_amount),0) AS value
-        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_amount),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>
-    <!--鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙g殑鏁伴噺-->
-    <select id="getExpenseGtValueIntakesCount" 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_money),0) AS value
-        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_money),0) &gt; #{value}) c
-    </select>
-    <!--鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
-    <select id="getExpenseGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount">
-        SELECT
-        inta.id AS intakeId,
-        inta.NAME AS intakeNum,
-        blo.NAME AS blockName ,
-        IFNULL(SUM(rocvh.cl_this_money),0) AS value
-        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_money),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>
+
     <!--鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
     <select id="getUseWaterDurationGtValueIntakesCount" resultType="java.lang.Long">
         select
@@ -1142,8 +1094,8 @@
         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
+        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}
@@ -1157,31 +1109,32 @@
     <!--鎸囧畾鏃堕棿娈� 鏈夊紑闃� 鏃犲叧闃�鐨勫彇姘村彛鏁伴噺-->
     <select id="getHaveOpenNoCloseIntakesCount" resultType="java.lang.Long">
         select count(*) from
-            (
-        SELECT
-        inta.id AS intakeId,
-        inta.NAME AS intakeNum,
-        blo.NAME AS blockName
-        FROM
-        pr_intake inta
-        INNER 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 BETWEEN #{timeStart} AND  #{timeStop} AND rocvh.cl_dt IS NULL AND inta.deleted = 0
-        GROUP BY inta.id) c
+        (
+            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
-                INNER 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 BETWEEN #{timeStart} AND  #{timeStop} AND rocvh.cl_dt IS NULL AND inta.deleted = 0
+            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
+        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}
@@ -1192,30 +1145,31 @@
     <select id="getNoOpenHaveCloseIntakesCount" resultType="java.lang.Long">
         select count(*) from
         (
-        SELECT
-        inta.id AS intakeId,
-        inta.NAME AS intakeNum,
-        blo.NAME AS blockName
-        FROM
-        pr_intake inta
-        INNER 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.cl_dt BETWEEN #{timeStart} AND  #{timeStop} AND rocvh.op_dt IS NULL AND inta.deleted = 0
-        GROUP BY inta.id) c
+            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
-        INNER 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.cl_dt BETWEEN #{timeStart} AND  #{timeStop} AND rocvh.op_dt IS NULL AND inta.deleted = 0
+        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
+        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}
@@ -1367,4 +1321,34 @@
             </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