From a27ef29ee2116befc9043fb34db5d3a7fecb4094 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期一, 02 九月 2024 16:02:26 +0800
Subject: [PATCH] 优化代码 指定时间段用水量超过指定值的农户         指定时间段用水时长超过指定值的农户         指定时间段消费金额超过指定值的农户

---
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/AmountSpentQO.java      |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterConsumptionQO.java |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                                |   60 +++++++++++++++++++++---------
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterDurationQO.java    |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java              |   30 ++++-----------
 5 files changed, 53 insertions(+), 43 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 20555a2..12007b5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -715,10 +715,14 @@
     <select id="getLargeWaterConsumptionClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-        WHERE (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}
+        <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>
 
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍐滄埛-->
@@ -730,10 +734,14 @@
                cli.phone,
                cli.idCard
         FROM se_client cli
-        WHERE (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}
+        <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">
@@ -746,10 +754,14 @@
     <select id="getLargeAmountSpentClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-        WHERE (SELECT SUM(his.cl_this_money)
+        <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">
@@ -760,10 +772,14 @@
                cli.phone,
                cli.idCard
         FROM se_client cli
-        WHERE (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}
+        <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">
@@ -776,10 +792,14 @@
     <select id="getLargeWaterDurationClientsCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM se_client cli
-        WHERE (SELECT SUM(his.cl_this_time)
+        <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>
 
     <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
@@ -791,10 +811,14 @@
                cli.phone,
                cli.idCard
         FROM se_client cli
-        WHERE (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}
+        <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">
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
index e023155..999d976 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -53,13 +53,9 @@
         String timeStop = qo.getTimeStop();
         if(timeStart != null && timeStart != "") {
             timeStart = timeStart + " 00:00:00";
-        } else {
-            timeStart = LocalDate.now() + " 00:00:00";
         }
         if(timeStop != null && timeStop != "") {
             timeStop = timeStop + " 23:59:59";
-        }else {
-            timeStop = LocalDate.now() + " 23:59:59";
         }
         qo.setTimeStart(timeStart);
         qo.setTimeStop(timeStop);
@@ -87,19 +83,15 @@
      */
     public QueryResultVo<List<VoClient>> getSmallOpenCountClients(OpenCountQO qo) {
         /**
-         * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡
+         * 琛ラ綈璧锋鏃堕棿
          */
         String timeStart = qo.getTimeStart();
         String timeStop = qo.getTimeStop();
         if(timeStart != null && timeStart != "") {
             timeStart = timeStart + " 00:00:00";
-        } else {
-            timeStart = LocalDate.now() + " 00:00:00";
         }
         if(timeStop != null && timeStop != "") {
             timeStop = timeStop + " 23:59:59";
-        }else {
-            timeStop = LocalDate.now() + " 23:59:59";
         }
         qo.setTimeStart(timeStart);
         qo.setTimeStop(timeStop);
@@ -127,16 +119,14 @@
      */
     public QueryResultVo<List<VoClient>> getLargeWaterConsumptionClients(WaterConsumptionQO qo) {
         /**
-         * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡
+         * 琛ラ綈璧锋鏃堕棿
          */
         String timeStart = qo.getTimeStart();
         String timeStop = qo.getTimeStop();
-        if(timeStart != null) {
+        if(timeStart != null && timeStart != "") {
             timeStart = timeStart + " 00:00:00";
-        }else {
-            timeStart = LocalDate.now() + " 00:00:00";
         }
-        if(timeStop != null) {
+        if(timeStop != null && timeStop != "") {
             timeStop = timeStop + " 23:59:59";
         }
         qo.setTimeStart(timeStart);
@@ -169,12 +159,10 @@
          */
         String timeStart = qo.getTimeStart();
         String timeStop = qo.getTimeStop();
-        if(timeStart != null) {
+        if(timeStart != null && timeStart != "") {
             timeStart = timeStart + " 00:00:00";
-        }else {
-            timeStart = LocalDate.now() + " 00:00:00";
         }
-        if(timeStop != null) {
+        if(timeStop != null && timeStop != "") {
             timeStop = timeStop + " 23:59:59";
         }
         qo.setTimeStart(timeStart);
@@ -207,12 +195,10 @@
          */
         String timeStart = qo.getTimeStart();
         String timeStop = qo.getTimeStop();
-        if(timeStart != null) {
+        if(timeStart != null && timeStart != "") {
             timeStart = timeStart + " 00:00:00";
-        }else {
-            timeStart = LocalDate.now() + " 00:00:00";
         }
-        if(timeStop != null) {
+        if(timeStop != null && timeStop != "") {
             timeStop = timeStop + " 23:59:59";
         }
         qo.setTimeStart(timeStart);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/AmountSpentQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/AmountSpentQO.java
index 83ccde4..50e425a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/AmountSpentQO.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/AmountSpentQO.java
@@ -18,6 +18,6 @@
     /**
      * 娑堣垂閲戦
      */
-    @NotNull(message = "娑堣垂閲戦涓嶈兘涓虹┖")
+//    @NotNull(message = "娑堣垂閲戦涓嶈兘涓虹┖")
     private Double amountSpent;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterConsumptionQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterConsumptionQO.java
index 53c1a6b..135fcb5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterConsumptionQO.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterConsumptionQO.java
@@ -18,6 +18,6 @@
     /**
      * 鎸囧畾鐨勭敤姘撮噺
      */
-    @NotNull(message = "鐢ㄦ按閲忎笉鑳戒负绌�")
+//    @NotNull(message = "鐢ㄦ按閲忎笉鑳戒负绌�")
     private Double waterConsumption;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterDurationQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterDurationQO.java
index 0afdcf6..64f5fc8 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterDurationQO.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/WaterDurationQO.java
@@ -18,6 +18,6 @@
     /**
      * 鐢ㄦ按鏃堕暱
      */
-    @NotNull(message = "鐢ㄦ按鏃堕暱涓嶈兘涓虹┖")
+//    @NotNull(message = "鐢ㄦ按鏃堕暱涓嶈兘涓虹┖")
     private Integer waterDuration;
 }

--
Gitblit v1.8.0