From 71d1b0ff5c8b1ec091da60bc22a6c5477f062337 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期三, 07 八月 2024 11:22:36 +0800
Subject: [PATCH] 指定时间段内消费金额超过指定值的取水口; 指定时间段内用水时长超过指定值的取水口;

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                    |   78 +++++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java |   43 ++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java  |   76 +++++++++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java           |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java     |   28 +++++++
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                      |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeOpenCount.java                  |    6 
 7 files changed, 232 insertions(+), 5 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
index 4e5e88c..8d71f88 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
@@ -207,4 +207,32 @@
      * @return
      */
     List<VoIntakeAccumulateAmount> getUseWaterGtValueIntakes(Map<String, Object> params);
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙g殑鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getExpenseGtValueIntakesCount(Map<String, Object> params);
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoIntakeAccumulateAmount> getExpenseGtValueIntakes(Map<String, Object> params);
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�
+     * @param params
+     * @return
+     */
+    Long getUseWaterDurationGtValueIntakesCount(Map<String, Object> params);
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoIntakeOpenCount> getUseWaterDurationGtValueIntakes(Map<String, Object> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java
index cb89d48..839fe4c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java
@@ -6,7 +6,9 @@
  * @author :WuZeYu
  * @Date :2024/8/5  10:45
  * @LastEditTime :2024/8/5  10:45
- * @Description 鍙栨按鍙g疮绉祦閲� 澶т簬 鎸囧畾鍊�
+ * @Description 鍙栨按鍙� 绱Н娴侀噺 澶т簬 鎸囧畾鍊�  瑙嗗浘
+ *                    鐢ㄦ按閲� 澶т簬 鎸囧畾鍊�
+ *                    娑堣垂閲戦 澶т簬 鎸囧畾鍊�
  */
 @Data
 public class VoIntakeAccumulateAmount extends VoIntake{
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeOpenCount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeOpenCount.java
index 421b9b2..c813a62 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeOpenCount.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeOpenCount.java
@@ -1,14 +1,14 @@
 package com.dy.pipIrrGlobal.voSt;
 
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+
 import lombok.Data;
 
 /**
  * @author :WuZeYu
  * @Date :2024/8/5  10:45
  * @LastEditTime :2024/8/5  10:45
- * @Description 鍙栨按鍙e紑闃� 鎸囧畾鍊� 娆℃暟
+ * @Description 鍙栨按鍙e紑闃� >  鎸囧畾鍊� 锛堟鏁�)
+ *                鐢ㄦ按鏃堕暱 > 鎸囧畾鍊�  (鍒嗛挓)
  */
 @Data
 public class VoIntakeOpenCount extends VoIntake{
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index 6d2c24c..1c09121 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@
 
 pipIrr:
     global:
-        dev: true   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
+        dev: flase   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
     mw:
         webPort: 8070
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 8c8e47a..f933ee8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -917,4 +917,82 @@
             </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
+        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
+        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}
+        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>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
index d137d90..f2ea363 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -501,4 +501,80 @@
         rsVo.obj = rmOpenCloseValveHistoryMapper.getUseWaterGtValueIntakes(params);
         return rsVo ;
     }
+
+
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoIntakeAccumulateAmount>> getExpenseGtValueIntakes(IntakeAmountValueQO qo) {
+        String timeStart = qo.getTimeStart();
+        String timeStop = qo.getTimeStop();
+        if(timeStart != null && timeStart != "") {
+            timeStart = timeStart + " 00:00:00";
+        } else {
+            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
+        }
+        qo.setTimeStart(timeStart);
+
+        if(timeStop != null && timeStop != "") {
+            timeStop = timeStop + " 23:59:59";
+        }else {
+            timeStop = LocalDate.now() + " 23:59:59";
+        }
+        qo.setTimeStop(timeStop);
+
+        if (qo.getValue() == null){
+            qo.setValue(0.0);
+        }
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+        Long itemTotal = rmOpenCloseValveHistoryMapper.getExpenseGtValueIntakesCount(params);
+
+        QueryResultVo<List<VoIntakeAccumulateAmount>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOpenCloseValveHistoryMapper.getExpenseGtValueIntakes(params);
+        return rsVo ;
+    }
+
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoIntakeOpenCount>> getUseWaterDurationGtValueIntakes(IntakeCountValueQO qo) {
+        String timeStart = qo.getTimeStart();
+        String timeStop = qo.getTimeStop();
+        if(timeStart != null && timeStart != "") {
+            timeStart = timeStart + " 00:00:00";
+        } else {
+            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
+        }
+        qo.setTimeStart(timeStart);
+
+        if(timeStop != null && timeStop != "") {
+            timeStop = timeStop + " 23:59:59";
+        }else {
+            timeStop = LocalDate.now() + " 23:59:59";
+        }
+        qo.setTimeStop(timeStop);
+
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+        Long itemTotal = rmOpenCloseValveHistoryMapper.getUseWaterDurationGtValueIntakesCount(params);
+
+        QueryResultVo<List<VoIntakeOpenCount>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOpenCloseValveHistoryMapper.getUseWaterDurationGtValueIntakes(params);
+        return rsVo ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
index f0fba29..bb01eeb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -279,4 +279,47 @@
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
     }
+
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param
+     * @return
+     */
+    @GetMapping(path = "/getExpenseGtValueIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoIntakeAccumulateAmount>>> getExpenseGtValueIntakes(IntakeAmountValueQO qo) {
+        try {
+            QueryResultVo<List<VoIntakeAccumulateAmount>> res = intakeSv.getExpenseGtValueIntakes(qo);
+            if(res.itemTotal == 0) {
+                return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage());
+            }
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param
+     * @return
+     */
+    @GetMapping(path = "/getUseWaterDurationGtValueIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getUseWaterDurationGtValueIntakes(IntakeCountValueQO qo) {
+        try {
+            QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getUseWaterDurationGtValueIntakes(qo);
+            if(res.itemTotal == 0) {
+                return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage());
+            }
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
 }

--
Gitblit v1.8.0