From 191ef9d695c421e8a1347cdfae312b6b633dfdc8 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期二, 06 八月 2024 15:26:28 +0800
Subject: [PATCH] 查询指定时间段内用水量超过指定值的取水口

---
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java |  172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 169 insertions(+), 3 deletions(-)

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 caa045a..b4f38d1 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
@@ -4,6 +4,10 @@
 import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper;
 import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
 import com.dy.pipIrrGlobal.daoRm.RmOnHourReportLastMapper;
+import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveLastMapper;
+import com.dy.pipIrrGlobal.voRm.VoOpenCloseValve;
+import com.dy.pipIrrGlobal.voSt.*;
+import com.dy.pipIrrStatistics.intake.qo.*;
 import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
 import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
 import com.dy.pipIrrGlobal.voSt.VoIntake;
@@ -12,7 +16,7 @@
 import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
 import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
 import com.dy.pipIrrStatistics.intake.qo.IntakeQO;
-import com.dy.pipIrrStatistics.intake.qo.IntakeValueQO;
+import com.dy.pipIrrStatistics.intake.qo.IntakeCountValueQO;
 import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -22,6 +26,7 @@
 
 import java.text.DecimalFormat;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -42,6 +47,9 @@
     private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
     @Autowired
     private RmOnHourReportLastMapper rmOnHourReportLastMapper;
+
+    @Autowired
+    private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper;
 
     @Value("${rtu.batteryVolt}")
     private Double batteryVolt;
@@ -225,7 +233,7 @@
      * @param qo
      * @return
      */
-    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveGtIntakes(IntakeValueQO qo) {
+    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveGtIntakes(IntakeCountValueQO qo) {
 
         String timeStart = qo.getTimeStart();
         String timeStop = qo.getTimeStop();
@@ -263,7 +271,7 @@
      * @param qo
      * @return
      */
-    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveLtIntakes(IntakeValueQO qo) {
+    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveLtIntakes(IntakeCountValueQO qo) {
 
         String timeStart = qo.getTimeStart();
         String timeStop = qo.getTimeStop();
@@ -296,4 +304,162 @@
         return rsVo ;
     }
 
+    /**
+     * 鏍规嵁寮�闃�绫诲瀷鑾峰彇鎿嶄綔娆℃暟
+     * @param qo
+     * @return
+     */
+    public VoCountOfOpenType getCountByOpenType(OpenTypeQO qo) {
+        /**
+         * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡
+         */
+        String timeStart = qo.getTimeStart();
+        String timeStop = qo.getTimeStop();
+        if(timeStart != null) {
+            timeStart = timeStart + " 00:00:00";
+        }else {
+            timeStart = LocalDate.now() + " 00:00:00";
+        }
+        if(timeStop != null) {
+            timeStop = timeStop + " 23:59:59";
+        }
+        qo.setTimeStart(timeStart);
+        qo.setTimeStop(timeStop);
+
+        Integer openType = qo.getOpenType();
+        String openTypeName = "";
+        switch (openType) {
+            case 1:
+                openTypeName = "鍒峰崱寮�闃�";
+                break;
+            case 3:
+                openTypeName = "涓績绔欏紑闃�";
+                break;
+            case 8:
+                openTypeName = "鐢ㄦ埛杩滅▼寮�闃�";
+                break;
+            case 11:
+                openTypeName = "寮�鍏抽榾鍗″紑闃�";
+                break;
+            case 13:
+                openTypeName = "寮�鍏抽榾鍗″紑闃�";
+                break;
+        }
+
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        Integer openTypeCount = Optional.ofNullable(rmOpenCloseValveLastMapper.getCountByOpenType(params)).orElse(0);
+
+        VoCountOfOpenType vo = new VoCountOfOpenType();
+        vo.setOpenTypeName(openTypeName);
+        vo.setOpenTypeCount(openTypeCount);
+        return vo;
+    }
+
+    /**
+     * 鏍规嵁鍏抽榾绫诲瀷鑾峰彇鎿嶄綔娆℃暟
+     * @param qo
+     * @return
+     */
+    public VoCountOfCloseType getCountByCloseType(CloseTypeQo qo) {
+        /**
+         * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡
+         */
+        String timeStart = qo.getTimeStart();
+        String timeStop = qo.getTimeStop();
+        if(timeStart != null) {
+            timeStart = timeStart + " 00:00:00";
+        }else {
+            timeStart = LocalDate.now() + " 00:00:00";
+        }
+        if(timeStop != null) {
+            timeStop = timeStop + " 23:59:59";
+        }
+        qo.setTimeStart(timeStart);
+        qo.setTimeStop(timeStop);
+
+        Integer closeType = qo.getCloseType();
+        String closeTypeName = "";
+        switch (closeType) {
+            case 2:
+                closeTypeName = "鍒峰崱鍏抽榾";
+                break;
+            case 4:
+                closeTypeName = "涓績绔欏叧闃�";
+                break;
+            case 5:
+                closeTypeName = "娆犺垂鍏抽榾";
+                break;
+            case 6:
+                closeTypeName = "娴侀噺璁℃晠闅滃叧闃�";
+                break;
+            case 7:
+                closeTypeName = "绱ф�ュ叧闃�";
+                break;
+            case 9:
+                closeTypeName = "鐢ㄦ埛杩滅▼鍏抽榾";
+                break;
+            case 10:
+                closeTypeName = "寮�鍏抽榾鍗″叧闃�";
+                break;
+            case 12:
+                closeTypeName = "榛戝悕鍗曞懡浠ゅ叧闃�";
+                break;
+            case 13:
+                closeTypeName = "杩滅▼瀹氭椂鍏抽榾";
+                break;
+            case 14:
+                closeTypeName = "杩滅▼瀹氶噺鍏抽榾";
+                break;
+        }
+
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+        Integer closeTypeCount = Optional.ofNullable(rmOpenCloseValveLastMapper.getCountByCloseType(params)).orElse(0);
+
+        VoCountOfCloseType vo = new VoCountOfCloseType();
+        vo.setCloseTypeName(closeTypeName);
+        vo.setCloseTypeCount(closeTypeCount);
+        return vo;
+    }
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoIntakeAccumulateAmount>> getUseWaterGtValueIntakes(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 = rmOnHourReportHistoryMapper.getUseWaterGtValueIntakesCount(params);
+
+        QueryResultVo<List<VoIntakeAccumulateAmount>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportHistoryMapper.getUseWaterGtValueIntakes(params);
+        return rsVo ;
+    }
 }

--
Gitblit v1.8.0