From bd448b121e9b7636daa4ec1d1629c3c2615fb2b9 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期六, 03 八月 2024 11:36:03 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/QueryVo.java                                   |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java                                                      |   25 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayCtrl.java              |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml                                                      |   12 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java                                                     |   21 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackReplyMapper.xml                                                           |   48 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/result/StatisticlResultCode.java                      |   20 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java                                 |  115 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml                                                           |   12 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateQueryVo.java |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml                                                      |   16 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeQO.java                               |   30 +
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayQueryVo.java           |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java                              |    9 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml                                                           |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java                                                         |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayCtrl.java              |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoIntakeAmountDay.java                                                  |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml                                                        |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml                                                      |   31 +
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayQueryVo.java           |   17 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java                                          |   44 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java                                                          |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml                                                          |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebFilterConfiguration.java                    |   51 ++
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                                      |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java                                       |   15 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/qo/QoCommand.java                                      |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/CumulativeFlowQO.java                       |   20 
 pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackCtrl.java                              |   97 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeFeedbackReply.java                                                 |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebListenerConfiguration.java                  |   56 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml                                                          |   16 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java                                  |  148 ++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/BatteryVoltQO.java                          |   20 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntake.java                                                           |   34 +
 pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackSv.java                                |   52 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml                                                         |   91 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java                                                    |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java                                                  |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateCtrl.java    |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/PipIrrOperationApplication.java                         |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCumulativeFlow.java                                                   |   28 +
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayCtrl.java                              |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayQueryVo.java                           |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoBatteryVolt.java                                                      |   28 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackMapper.xml                                                                |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                                                   |   81 ++
 /dev/null                                                                                                                                    |   10 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml                                                                  |   16 
 pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/ReplyQueryVo.java                              |   43 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeFeedbackReplyMapper.java                                            |   14 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml                                                              |   18 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VofeedbackReply.java                                                    |   40 +
 54 files changed, 1,268 insertions(+), 116 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java
index 62a857a..7bfbf5e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java
@@ -15,13 +15,34 @@
      */
     @Schema(description = "褰撳墠椤�", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotNull(message = "褰撳墠椤典笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
-    public Integer pageCurr ;
+    public Integer pageCurr;
 
     /**
      * 姣忛〉鏁版嵁鏉℃暟
      */
     @Schema(description = "姣忛〉璁板綍鏁�", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotNull(message = "姣忛〉璁板綍鏁颁笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
-    public Integer pageSize ;
+    public Integer pageSize;
 
+    /**
+     * 璁剧疆褰撳墠榛樿绗竴椤�
+     * @return
+     */
+    public Integer getPageCurr() {
+        if (pageCurr == null){
+            return 1;
+        }
+        return pageCurr;
+    }
+
+    /**
+     * 璁剧疆褰撳墠榛樿涓�椤靛崄鏉�
+     * @return
+     */
+    public Integer getPageSize() {
+        if (pageSize == null){
+            return 10;
+        }
+        return pageSize;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java
index 16d5841..ac64d89 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java
@@ -69,7 +69,7 @@
              * 鏈紶鍏ュ垎椤靛弬鏁版椂锛屽彇鍏ㄩ儴璁板綍
              */
             //this.pageSize = 1 ;//渚涗笅闈綔涓洪櫎鏁�
-            this.pageSize = 10000 ;//渚涗笅闈綔涓洪櫎鏁�
+            this.pageSize = 10 ;//渚涗笅闈綔涓洪櫎鏁�
         }
 
         pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize);
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeFeedbackReplyMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeFeedbackReplyMapper.java
index 66776cb..56fc68d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeFeedbackReplyMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeFeedbackReplyMapper.java
@@ -2,7 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeFeedbackReply;
-import com.dy.pipIrrGlobal.voOp.Vofeedback;
+import com.dy.pipIrrGlobal.voOp.VofeedbackReply;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -28,7 +28,17 @@
 
     int updateByPrimaryKey(OpeFeedbackReply record);
 
+    /**
+     * 鑾峰彇鍙嶉鍥炲鏁伴噺
+     * @param params
+     * @return
+     */
     Long getRecordCount(Map<String, Object> params);
 
-    List<Vofeedback> getFeedbackReplys(Map<String, Object> params);
+    /**
+     * 鑾峰彇鍙嶉鍥炲
+     * @param params
+     * @return
+     */
+    List<VofeedbackReply> getFeedbackReply(Map<String, Object> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
index 3ab97a6..f67fb00 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
@@ -162,4 +162,5 @@
      * @return
      */
     List<Long> getIntakeIdByNameExcludeId(@Param("id")Long id, @Param("intakeName")String intakeName);
+
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
index e510968..ac3353d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory;
 import com.dy.pipIrrGlobal.voRm.VoOnHour;
+import com.dy.pipIrrGlobal.voSt.VoIntake;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -71,4 +72,18 @@
      */
     List<VoOnHour> getOnHourReports_history(Map<?, ?> params);
 
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾垮彇姘村彛鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getNotOnlineIntakesCount(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoIntake> getNotOnlineIntakes(Map<?, ?> params);
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
index 63ccf0a..5a09bb7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast;
 import com.dy.pipIrrGlobal.voRm.VoOnHour;
+import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
+import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -79,4 +81,46 @@
      * @return
      */
     List<VoOnHour> getOnHourReports_last(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�
+     * @param params
+     * @return
+     */
+    Long getLargeFlowIntakesCount(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoCumulativeFlow> getLargeFlowIntakes(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙f暟閲�
+     * @param params
+     * @return
+     */
+    Long getSmallFlowIntakesCount(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoCumulativeFlow> getSmallFlowIntakes(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇娆犲帇鍙栨按鍙f暟閲�
+     * @param params
+     * @return
+     */
+    Long getUnderVoltIntakesCount(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇娆犲帇鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoBatteryVolt> getUnderVoltIntakes(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeFeedbackReply.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeFeedbackReply.java
index 375dc02..e970e7b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeFeedbackReply.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeFeedbackReply.java
@@ -9,6 +9,7 @@
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 
 import java.util.Date;
 
@@ -45,7 +46,7 @@
     /**
     * 鍥炲鍐呭
     */
-    @NotNull
+    @NotBlank
     private String replyContent;
 
     /**
@@ -57,6 +58,7 @@
     * 鍥炲浜篒D
     */
     @NotNull
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     private Long replierId;
 
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VofeedbackReply.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VofeedbackReply.java
new file mode 100644
index 0000000..bc10947
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VofeedbackReply.java
@@ -0,0 +1,40 @@
+package com.dy.pipIrrGlobal.voOp;
+
+import com.dy.common.po.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/8/1  20:07
+ * @LastEditTime :2024/8/1  20:07
+ * @Description
+ */
+@Data
+public class VofeedbackReply implements BaseEntity {
+    private static final long serialVersionUID = 202408012009001L;
+    /**
+     * 涓婚敭id
+     */
+    private String id;
+    /**
+     * 鍙嶉缂栧彿
+     */
+    private String feedbackId;
+
+    /**
+     * 鍥炲鍐呭
+     */
+    private String replyContent;
+
+    /**
+     * 鍥炲鏃堕棿
+     */
+    private Date replyTime;
+
+    /**
+     * 鍥炲浜篒D
+     */
+    private String replierId;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
index 01f6c46..88d93e0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
@@ -30,7 +30,28 @@
     private String intakeNum;
 
     /**
+     * 鍙栨按鍙g粡搴�
+     */
+    private Double lng;
+
+    /**
+     * 鍙栨按鍙g含搴�
+     */
+    private Double lat;
+
+    /**
      * 鏄惁鍦ㄧ嚎
      */
     private Boolean isOnLine;
+
+    /**
+     * 鏄惁缁戝畾
+     */
+    private Boolean isBinded;
+
+
+    /**
+     * 鎶ヨ淇℃伅Json鏁扮粍
+     */
+    private String alarm;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java
index d105f1c..ee3d3c5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java
@@ -30,7 +30,9 @@
     private Double money;
 
     @Schema(description = "缁熻鏃ユ湡(yyyy-mm-dd)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    private java.sql.Date dt;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private java.util.Date dt;
 
     @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″紑闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoIntakeAmountDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoIntakeAmountDay.java
index 9d1b4ea..bd74f94 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoIntakeAmountDay.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoIntakeAmountDay.java
@@ -6,6 +6,8 @@
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.Date;
+
 /**
  * @author :WuZeYu
  * @Date :2024/7/24  10:27
@@ -29,7 +31,9 @@
     private Double amount;
 
     @Schema(description = "缁熻鏃ユ湡(yyyy-mm-dd)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    private java.sql.Date dt;
+//    private java.sql.Date dt;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date dt;
 
     @Schema(description = "鏈�鍚庤姘撮噺涓婃姤鏁版嵁鎺ユ敹鏃堕棿(yyyy-mm-dd hh:mm:ss)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java
index 7849c78..d8a03ec 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java
@@ -31,6 +31,8 @@
     private String rtuAddr;
 
     @Schema(description = "缁熻鏃ユ湡(yyyy-mm-dd)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private java.sql.Date dt;
 
     @Schema(description = "鎺у埗鍣ㄦ渶鍚庝笂鎶ユ暟鎹棩鏈熸椂闂�(yyyy-mm-dd hh:mm:ss)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoBatteryVolt.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoBatteryVolt.java
new file mode 100644
index 0000000..f5c7b81
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoBatteryVolt.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-03 10:10
+ * @LastEditTime 2024-08-03 10:10
+ * @Description 鐢垫睜鐢靛帇瑙嗗浘
+ */
+
+@Data
+public class VoBatteryVolt extends VoIntake {
+
+    /**
+     * 鐢垫睜鐢靛帇
+     */
+    private Double batteryVolt;
+
+    /**
+     * 鏁版嵁鑾峰彇鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date getDate;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCumulativeFlow.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCumulativeFlow.java
new file mode 100644
index 0000000..74cfe54
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCumulativeFlow.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 16:12
+ * @LastEditTime 2024-08-01 16:12
+ * @Description 绱娴侀噺瑙嗗浘
+ */
+
+@Data
+public class VoCumulativeFlow extends VoIntake {
+
+    /**
+     * 绱娴侀噺
+     */
+    private Double cumulativeFlow;
+
+    /**
+     * 鏁版嵁鑾峰彇鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date getDate;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntake.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntake.java
new file mode 100644
index 0000000..dcc8f06
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntake.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 14:03
+ * @LastEditTime 2024-08-01 14:03
+ * @Description 鍙栨按鍙g粺璁$粨鏋滆鍥惧璞�
+ */
+
+@Data
+public class VoIntake {
+    private static final long serialVersionUID = 202408311404001L;
+
+    /**
+     * 鍙栨按鍙D
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long intakeId;
+
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
+    private String intakeNum;
+
+    /**
+     * 鍙栨按鍙f墍灞炵墖鍖�
+     */
+    private String blockName;
+
+}
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 3fd34ef..1e01f5b 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: false   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
     mw:
         webPort: 8070
@@ -175,4 +175,8 @@
         access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
         secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
     at-all: true
-    mobile: 18602657034
\ No newline at end of file
+    mobile: 18602657034
+
+#闃�鎺у櫒鍙傛暟
+rtu:
+    batteryVolt: 17
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackMapper.xml
index f660158..60bfee9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackMapper.xml
@@ -212,10 +212,10 @@
     from ope_feedback ofb
     left join se_client sc on ofb.feedbacker_id = sc.id
     <where>
-      <if test="feedbackerId != null">
+      <if test="feedbackerId != null and feedbackerId != '' ">
         and ofb.feedbacker_id = #{feedbackerId,jdbcType=BIGINT}
       </if>
-      <if test="feedbackerName != null">
+      <if test="feedbackerName != null and feedbackerName != '' ">
         and sc.name = #{feedbackerName,jdbcType=VARCHAR}
       </if>
       <if test="timeStart != null">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackReplyMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackReplyMapper.xml
index 1b5bbf5..9200aaf 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackReplyMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeFeedbackReplyMapper.xml
@@ -99,4 +99,52 @@
       replier_id = #{replierId,jdbcType=BIGINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <select id="getRecordCount" resultType="java.lang.Long">
+    select count(*) from ope_feedback_reply ofbr
+    inner join ope_feedback ofb on ofbr.feedback_id = ofb.id
+    <where>
+      <if test="feedbackId != null and feedbackId != '' ">
+        and ofbr.feedback_id = #{feedbackId,jdbcType=BIGINT}
+      </if>
+      <if test="replierId != null and replierId != '' ">
+        and ofbr.replier_id = #{replierId,jdbcType=BIGINT}
+      </if>
+      <if test="replyTimeStart != null">
+        and ofbr.reply_time &gt;= #{replyTimeStart}
+      </if>
+      <if test="replyTimeStop != null">
+        and ofbr.reply_time &lt;= #{replyTimeStop}
+      </if>
+    </where>
+    </select>
+
+  <select id="getFeedbackReply" resultType="com.dy.pipIrrGlobal.voOp.VofeedbackReply">
+    select
+    CAST(ofbr.id as char) AS id,
+    CAST(ofbr.feedback_id as char) AS feedbackId,
+    ofbr.reply_content as replyContent,
+    ofbr.reply_time as replyTime,
+    CAST(ofbr.replier_id as char) AS replierId
+    from ope_feedback_reply ofbr
+    inner join ope_feedback ofb on ofbr.feedback_id = ofb.id
+    <where>
+      <if test="feedbackId != null and feedbackId != '' ">
+        and ofbr.feedback_id = #{feedbackId,jdbcType=BIGINT}
+      </if>
+      <if test="replierId != null and replierId != '' ">
+        and ofbr.replier_id = #{replierId,jdbcType=BIGINT}
+      </if>
+      <if test="replyTimeStart != null">
+        and ofbr.reply_time &gt;= #{replyTimeStart}
+      </if>
+      <if test="replyTimeStop != null">
+        and ofbr.reply_time &lt;= #{replyTimeStop}
+      </if>
+    </where>
+    order by ofbr.id desc
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+    </if>
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 54809d4..8cc3a20 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -362,10 +362,23 @@
   <select id="getOnLineIntakesCount" resultType="java.lang.Long">
     SELECT
         COUNT(*) AS recordCount
-    FROM pr_controller con
-        INNER JOIN pr_intake inta ON con.intakeId = inta.id
-        left JOIN JSON_TABLE(
-            <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+    FROM pr_intake inta
+        LEFT JOIN pr_controller con ON con.intakeId = inta.id
+        LEFT JOIN(
+            SELECT
+                intake_id AS intakeId,
+                CONCAT(
+                    IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''), IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
+                    IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''), IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
+                    IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''), IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
+                    IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
+                ) AS alarm
+            FROM rm_alarm_state_last
+            WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
+            AND dt >= DATE_SUB(NOW(),INTERVAL 12 HOUR)
+        ) alarm ON alarm.intakeId = inta.id
+        LEFT JOIN JSON_TABLE(
+             <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
             #{onLineMap},
             '$[*]' COLUMNS(
                 rtuAddr VARCHAR(20) PATH '$.rtuAddr',
@@ -379,26 +392,52 @@
       <if test="intakeNum != null and intakeNum != ''">
         AND inta.name = #{intakeNum}
       </if>
+      <if test="isBinded == false ">
+        AND con.rtuAddr IS  NULL
+      </if>
+      <if test="isBinded == true ">
+        AND con.rtuAddr IS NOT NULL
+      </if>
     </where>
   </select>
 
   <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
   <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
     SELECT
-      con.intakeId,
-      con.rtuAddr,
-      inta.name AS intakeNum,
-      rtus.isOnLine
-    FROM pr_controller con
-        INNER JOIN pr_intake inta ON con.intakeId = inta.id
-        left JOIN JSON_TABLE(
-            <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
-            #{onLineMap},
-            '$[*]' COLUMNS(
-                rtuAddr VARCHAR(20) PATH '$.rtuAddr',
-		        isOnLine BOOLEAN PATH '$.isOnLine'
-	        )
-        ) rtus ON con.rtuAddr = rtus.rtuAddr
+        inta.id AS intakeId,
+        con.rtuAddr,
+        inta.name AS intakeNum,
+        inta.lng,
+        inta.lat,
+        (CASE
+            WHEN con.rtuAddr IS  NULL  THEN "false"
+            WHEN con.rtuAddr IS NOT NULL THEN "true"
+        END) AS isBinded,
+        rtus.isOnLine,
+        alarm.alarm
+    FROM pr_intake inta
+        LEFT JOIN pr_controller con ON con.intakeId = inta.id
+        LEFT JOIN(
+            SELECT
+                intake_id AS intakeId,
+                CONCAT(
+                    IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''), IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
+                    IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''), IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
+                    IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''), IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
+                    IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
+                ) AS alarm
+            FROM rm_alarm_state_last
+            WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
+            AND dt >= DATE_SUB(NOW(),INTERVAL 12 HOUR)
+        ) alarm ON alarm.intakeId = inta.id
+    LEFT JOIN JSON_TABLE(
+    <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+    #{onLineMap},
+    '$[*]' COLUMNS(
+    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+    isOnLine BOOLEAN PATH '$.isOnLine'
+    )
+    ) rtus ON con.rtuAddr = rtus.rtuAddr
     <where>
       <if test="isOnLine != null">
         rtus.isOnLine = #{isOnLine}
@@ -406,6 +445,12 @@
       <if test="intakeNum != null and intakeNum != ''">
         AND inta.name = #{intakeNum}
       </if>
+      <if test="isBinded == false ">
+        AND con.rtuAddr IS  NULL
+      </if>
+      <if test="isBinded == true ">
+        AND con.rtuAddr IS NOT NULL
+      </if>
     </where>
     order by con.id ASC
     <if test="pageCurr != null and pageSize != null">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
index d0fa274..5fc59a3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -396,10 +396,10 @@
         <if test="valveState != null">
             and rash.valve_state = #{valveState,jdbcType=TINYINT}
         </if>
-        <if test="intakeId != null">
+        <if test="intakeId != null and intakeId != '' ">
             and rash.intake_id = #{intakeId}
         </if>
-        <if test="intakeName != null">
+        <if test="intakeName != null and intakeName != '' ">
             and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
         </if>
         <if test="startDt != null">
@@ -480,10 +480,10 @@
             <if test="valveState != null">
                 and rash.valve_state = #{valveState,jdbcType=TINYINT}
             </if>
-            <if test="intakeId != null">
+            <if test="intakeId != null and intakeId != '' ">
                 and rash.intake_id = #{intakeId}
             </if>
-            <if test="intakeName != null">
+            <if test="intakeName != null and intakeName != '' ">
                 and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
             </if>
             <if test="startDt != null">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
index 884118b..53147f1 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -390,10 +390,10 @@
       <if test="valveState != null">
         and rasl.valve_state = #{valveState,jdbcType=TINYINT}
       </if>
-      <if test="intakeId != null">
-        and rasl.intake_id = #{intakeId}
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeName != null">
+      <if test="intakeName != null and intakeName != '' ">
         and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
@@ -474,10 +474,10 @@
       <if test="valveState != null">
         and rasl.valve_state = #{valveState,jdbcType=TINYINT}
       </if>
-      <if test="intakeId != null">
-        and rasl.intake_id = #{intakeId}
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeName != null">
+      <if test="intakeName != null and intakeName != '' ">
         and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
index 997fdf5..2e25990 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
@@ -194,11 +194,11 @@
     from rm_client_amount_day_last rcadl
     Left join se_client sc on sc.id = rcadl.client_id
     <where>
-      <if test="clientName != null">
+      <if test="clientName != null and clientName != '' ">
         and sc.name like CONCAT('%',#{clientName,jdbcType=VARCHAR},'%')
       </if>
-      <if test="clientId != null">
-        and rcadl.client_id = #{clientId}
+      <if test="clientId != null and clientId != ''">
+        and rcad.client_id = #{clientId}
       </if>
       <if test="startDt != null">
         and rcadl.dt &gt;= #{startDt,jdbcType=DATE}
@@ -225,11 +225,11 @@
     from rm_client_amount_day_last rcadl
     Left join se_client sc on sc.id = rcadl.client_id
     <where>
-      <if test="clientName != null">
+      <if test="clientName != null and clientName != '' ">
         and sc.name like CONCAT('%',#{clientName,jdbcType=VARCHAR},'%')
       </if>
-      <if test="clientId != null">
-        and rcadl.client_id = #{clientId}
+      <if test="clientId != null and clientId != ''">
+        and rcad.client_id = #{clientId}
       </if>
       <if test="startDt != null">
         and rcadl.dt &gt;= #{startDt,jdbcType=DATE}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
index 7275f77..0c43003 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
@@ -184,10 +184,10 @@
     from rm_client_amount_day rcad
            Left join se_client sc on sc.id = rcad.client_id
     <where>
-      <if test="clientName != null">
+      <if test="clientName != null and clientName != '' ">
         and sc.name like CONCAT('%',#{clientName,jdbcType=VARCHAR},'%')
       </if>
-      <if test="clientId != null">
+      <if test="clientId != null and clientId != ''">
         and rcad.client_id = #{clientId}
       </if>
       <if test="startDt != null">
@@ -215,10 +215,10 @@
     from rm_client_amount_day rcad
     Left join se_client sc on sc.id = rcad.client_id
     <where>
-      <if test="clientName != null">
+      <if test="clientName != null and clientName != '' ">
         and sc.name like CONCAT('%',#{clientName,jdbcType=VARCHAR},'%')
       </if>
-      <if test="clientId != null">
+      <if test="clientId != null and clientId != ''">
         and rcad.client_id = #{clientId}
       </if>
       <if test="startDt != null">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
index be493a4..0f4282c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -255,6 +255,9 @@
       LEFT JOIN se_client cli ON cli.id = his.operator
       LEFT JOIN ba_user  user ON user.id = his.operator
     <where>
+      <if test="intakeId != null">
+        AND his.intake_id = #{intakeId}
+      </if>
       <if test = "commandName != null and commandName !=''">
         AND his.command_name LIKE CONCAT('%',#{commandName},'%')
       </if>
@@ -288,6 +291,9 @@
         LEFT JOIN se_client cli ON cli.id = his.operator
         LEFT JOIN ba_user  user ON user.id = his.operator
     <where>
+      <if test="intakeId != null">
+        AND his.intake_id = #{intakeId}
+      </if>
       <if test = "commandName != null and commandName !=''">
         AND his.command_name LIKE CONCAT('%',#{commandName},'%')
       </if>
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml
index 0c1693a..915a04f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml
@@ -173,11 +173,11 @@
     from rm_intake_amount_day_last riadl
     Left join pr_intake pint on pint.id = riadl.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and riadl.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and riadl.dt &gt;= #{startDt,jdbcType=DATE}
@@ -202,11 +202,11 @@
     from rm_intake_amount_day_last riadl
     Left join pr_intake pint on pint.id = riadl.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and riadl.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and riadl.dt &gt;= #{startDt,jdbcType=DATE}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
index 4def2f1..96ecc72 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -161,11 +161,11 @@
     from rm_intake_amount_day riad
     Left join pr_intake pint on pint.id = riad.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and riad.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and riad.dt &gt;= #{startDt,jdbcType=DATE}
@@ -190,11 +190,11 @@
     from rm_intake_amount_day riad
     Left join pr_intake pint on pint.id = riad.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and riad.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and riad.dt &gt;= #{startDt,jdbcType=DATE}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml
index f3dfb90..fab983b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml
@@ -165,11 +165,11 @@
     from rm_loss_day_last rldl
     Left join pr_intake pint on pint.id = rldl.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and rldl.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and rldl.dt &gt;= #{startDt,jdbcType=DATE}
@@ -193,11 +193,11 @@
     from rm_loss_day_last rldl
     Left join pr_intake pint on pint.id = rldl.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and rldl.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and rldl.dt &gt;= #{startDt,jdbcType=DATE}
@@ -206,7 +206,7 @@
         and rldl.dt &lt;= #{endDt,jdbcType=DATE}
       </if>
     </where>
-    ORDER BY rld.dt DESC , rld.loss_amount DESC
+    ORDER BY rldl.dt DESC , rldl.loss_amount DESC
     <if test="pageCurr != null and pageSize != null">
       LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
     </if>
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml
index bdf5d9a..f1dcebb 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml
@@ -155,11 +155,11 @@
     from rm_loss_day rld
     Left join pr_intake pint on pint.id = rld.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and rld.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and rld.dt &gt;= #{startDt,jdbcType=DATE}
@@ -183,11 +183,11 @@
     from rm_loss_day rld
     Left join pr_intake pint on pint.id = rld.intake_id
     <where>
-      <if test="intakeName != null">
-        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      <if test="intakeId != null and intakeId != '' ">
+        and rash.intake_id = #{intakeId}
       </if>
-      <if test="intakeId != null">
-        and rld.intake_id = #{intakeId}
+      <if test="intakeName != null and intakeName != '' ">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
       </if>
       <if test="startDt != null">
         and rld.dt &gt;= #{startDt,jdbcType=DATE}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
index 8a7c937..461c263 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
@@ -255,4 +255,35 @@
     </trim>
   </select>
 
+  <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾垮彇姘村彛鏁伴噺-->
+  <select id="getNotOnlineIntakesCount" resultType="java.lang.Long">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM pr_intake inta
+        LEFT JOIN (SELECT * FROM rm_on_hour_report_history WHERE dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id
+        INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE his.intake_id IS NULL AND inta.deleted = 0
+
+  </select>
+
+  <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�-->
+  <select id="getNotOnlineIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake">
+    SELECT
+      inta.id AS intakeId,
+      inta.name AS intakeNum,
+      blo.name AS blockName
+    FROM pr_intake inta
+           LEFT JOIN (SELECT * FROM rm_on_hour_report_history WHERE dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id
+           INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE his.intake_id IS NULL AND inta.deleted = 0
+    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-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
index 2d91d54..8ce03ba 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
@@ -262,4 +262,95 @@
       </if>
     </trim>
   </select>
+
+  <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
+  <select id="getLargeFlowIntakesCount" resultType="java.lang.Long">
+    SELECT
+    COUNT(*) AS recordCount
+    FROM pr_intake inta
+    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+    INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount}
+  </select>
+
+  <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
+  <select id="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
+    SELECT
+    inta.id AS intakeId,
+    inta.name AS intakeNum,
+    blo.name AS blockName,
+    CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
+    hou.dt AS getDate
+    FROM pr_intake inta
+    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+    INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount}
+    ORDER BY hou.dt
+    <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="getSmallFlowIntakesCount" resultType="java.lang.Long">
+    SELECT
+    COUNT(*) AS recordCount
+    FROM pr_intake inta
+    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+    INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE inta.deleted = 0 AND hou.total_amount &lt; #{totalAmount}
+  </select>
+
+  <!--鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙�-->
+  <select id="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
+    SELECT
+    inta.id AS intakeId,
+    inta.name AS intakeNum,
+    blo.name AS blockName,
+    <!--    FORMAT(hou.total_amount,2) AS cumulativeFlow,-->
+    CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
+    hou.dt AS getDate
+    FROM pr_intake inta
+    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+    INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE inta.deleted = 0 AND hou.total_amount &lt; #{totalAmount}
+    ORDER BY hou.dt
+    <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="getUnderVoltIntakesCount" resultType="java.lang.Long">
+    SELECT
+    COUNT(*) AS recordCount
+    FROM pr_intake inta
+    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+    INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE inta.deleted = 0 AND hou.battery_volt &lt; #{batteryVolt}
+  </select>
+
+  <!--鑾峰彇娆犲帇鍙栨按鍙�-->
+  <select id="getUnderVoltIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoBatteryVolt">
+    SELECT
+    inta.id AS intakeId,
+    inta.name AS intakeNum,
+    blo.name AS blockName,
+    hou.battery_volt AS batteryVolt,
+    hou.dt AS getDate
+    FROM pr_intake inta
+    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+    INNER JOIN ba_block blo ON blo.id = inta.blockId
+    WHERE inta.deleted = 0 AND hou.battery_volt &lt; #{batteryVolt}
+    ORDER BY hou.dt
+    <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-operation/src/main/java/com/dy/pipIrrOperation/PipIrrWebOperationApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/PipIrrOperationApplication.java
similarity index 90%
rename from pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/PipIrrWebOperationApplication.java
rename to pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/PipIrrOperationApplication.java
index afaf09e..276dfb9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/PipIrrWebOperationApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/PipIrrOperationApplication.java
@@ -19,10 +19,10 @@
         }
 )
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoRm", "com.dy.pipIrrGlobal.daoPr", "com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa","com.dy.pipIrrGlobal.daoOp"})
-public class PipIrrWebOperationApplication {
+public class PipIrrOperationApplication {
 
     public static void main(String[] args) {
-        SpringApplication.run(PipIrrWebOperationApplication.class, args);
+        SpringApplication.run(PipIrrOperationApplication.class, args);
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackCtrl.java
index dcc040c..7308978 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackCtrl.java
@@ -5,7 +5,9 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.pojoOp.OpeFeedback;
+import com.dy.pipIrrGlobal.pojoOp.OpeFeedbackReply;
 import com.dy.pipIrrGlobal.voOp.Vofeedback;
+import com.dy.pipIrrGlobal.voOp.VofeedbackReply;
 import io.swagger.v3.oas.annotations.Parameter;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
@@ -132,4 +134,99 @@
             return BaseResponseUtils.buildException(e.getMessage());
         }
     }
+
+
+    /**
+     * 娣诲姞闂鍙嶉鍥炲
+     * @param reply
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "addReply", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop
+    public BaseResponse<Boolean> addReply(@RequestBody @Valid OpeFeedbackReply reply, @Parameter(hidden = true) BindingResult bindingResult){
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        Integer rec = Optional.ofNullable(feedbackSv.addReply(reply)).orElse(0);
+        if (rec == 0) {
+            return BaseResponseUtils.buildFail("娣诲姞鍥炲澶辫触");
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 淇敼闂鍙嶉鍥炲
+     * @param reply
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "updateReply", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> updateReply(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid OpeFeedbackReply reply, @Parameter(hidden = true) BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        int count ;
+        try {
+            count = feedbackSv.updateReply(reply);
+        } catch (Exception e) {
+            log.error("淇敼闂鍙嶉鍥炲寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("淇敼鍙嶉鍥炲澶辫触");
+        } else {
+            return BaseResponseUtils.buildSuccess(true);
+        }
+    }
+
+    /**
+     * 鍒犻櫎闂鍙嶉鍥炲
+     * @param map
+     * @return
+     */
+    @PostMapping(path = "deleteReply")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteReply(@RequestBody Map map) {
+        if (map == null || map.size() <= 0) {
+            return BaseResponseUtils.buildFail("璇蜂紶鍏d");
+        }
+        Long id = Long.parseLong(map.get("id").toString());
+        try {
+            Integer recordCount = Optional.ofNullable(feedbackSv.deleteReply(id)).orElse(0);
+            if (recordCount == 0) {
+                return BaseResponseUtils.buildFail("鍒犻櫎澶辫触");
+            } else {
+                return BaseResponseUtils.buildSuccess(true);
+            }
+        } catch (Exception e) {
+            log.error("鍒犻櫎寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 鍒嗛〉鏌ヨ闂鍙嶉鍥炲
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "getFeedbackReply")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VofeedbackReply>>> getFeedbackReply(ReplyQueryVo qo) {
+        try {
+            QueryResultVo<List<VofeedbackReply>> res = feedbackSv.getFeedbackReply(qo);
+            if (res == null) {
+                return BaseResponseUtils.buildFail("鏌ヨ澶辫触");
+            }
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鏌ヨ寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackSv.java
index 07a54d9..ccc704d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/FeedbackSv.java
@@ -2,8 +2,11 @@
 
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoOp.OpeFeedbackMapper;
+import com.dy.pipIrrGlobal.daoOp.OpeFeedbackReplyMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeFeedback;
+import com.dy.pipIrrGlobal.pojoOp.OpeFeedbackReply;
 import com.dy.pipIrrGlobal.voOp.Vofeedback;
+import com.dy.pipIrrGlobal.voOp.VofeedbackReply;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -27,6 +30,9 @@
 public class FeedbackSv {
     @Autowired
     private OpeFeedbackMapper opeFeedbackMapper;
+
+    @Autowired
+    private OpeFeedbackReplyMapper opeFeedbackReplyMapper;
 
     /**
      * 娣诲姞闂鍙嶉
@@ -76,4 +82,50 @@
         rsVo.obj = opeFeedbackMapper.getFeedbacks(params);
         return rsVo;
     }
+
+    /**
+     * 娣诲姞闂鍙嶉鍥炲
+     * @param reply
+     * @return
+     */
+    public Integer addReply(OpeFeedbackReply reply) {
+        reply.setReplyTime(new Date());
+        return opeFeedbackReplyMapper.insertSelective(reply);
+    }
+
+    /**
+     * 淇敼闂鍙嶉鍥炲
+     * @param reply
+     * @return
+     */
+    public int updateReply(OpeFeedbackReply reply) {
+        reply.setReplyTime(new Date());
+            return opeFeedbackReplyMapper.updateByPrimaryKeySelective(reply);
+    }
+
+    /**
+     * 鍒犻櫎闂鍙嶉鍥炲
+     * @param id
+     * @return
+     */
+    public Integer deleteReply(Long id) {
+        return opeFeedbackReplyMapper.deleteByPrimaryKey(id);
+    }
+
+    /**
+     * 鑾峰彇鍙嶉鍥炲
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VofeedbackReply>> getFeedbackReply(ReplyQueryVo qo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+        Long itemTotal = opeFeedbackReplyMapper.getRecordCount(params);
+
+        QueryResultVo<List<VofeedbackReply>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = qo.pageSize;
+        rsVo.pageCurr = qo.pageCurr;
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = opeFeedbackReplyMapper.getFeedbackReply(params);
+        return rsVo;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/QueryVo.java
index 3622ecd..d12a8f8 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/QueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/QueryVo.java
@@ -34,12 +34,12 @@
     /**
      * 鏌ヨ寮�濮嬫棩鏈�
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date timeStart;
 
     /**
      * 鏌ヨ缁撴潫鏃ユ湡
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date timeStop;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/ReplyQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/ReplyQueryVo.java
new file mode 100644
index 0000000..c9b887d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedback/ReplyQueryVo.java
@@ -0,0 +1,43 @@
+package com.dy.pipIrrOperation.feedback;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.*;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/8/1  19:40
+ * @LastEditTime :2024/8/1  19:40
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ReplyQueryVo extends QueryConditionVo {
+    /**
+     * 鍙嶉缂栧彿
+     */
+    private String feedbackId;
+
+    /**
+     * 鍥炲浜�
+     */
+    private String replierId;
+    /**
+     * 鍥炲鏃堕棿寮�濮嬫棩鏈�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date replyTimeStart;
+
+    /**
+     * 鍥炲鏃堕棿缁撴潫鏃ユ湡
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date replyTimeStop;
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/FeedbackReplyCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/FeedbackReplyCtrl.java
deleted file mode 100644
index 8a93fbb..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/FeedbackReplyCtrl.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.dy.pipIrrOperation.feedbackReply;
-
-
-import com.dy.common.aop.SsoAop;
-import com.dy.common.webUtil.BaseResponse;
-import com.dy.common.webUtil.BaseResponseUtils;
-
-import com.dy.pipIrrGlobal.pojoOp.OpeFeedbackReply;
-
-import io.swagger.v3.oas.annotations.Parameter;
-import jakarta.validation.Valid;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.*;
-
-
-import java.util.Objects;
-import java.util.Optional;
-
-/**
- * @author :WuZeYu
- * @Date :2024/7/31  16:19
- * @LastEditTime :2024/7/31  16:19
- * @Description
- */
-@Slf4j
-@RestController
-@RequestMapping(path="feedbackReply")
-@RequiredArgsConstructor
-public class FeedbackReplyCtrl {
-
-    private final FeedbackReplySv feedbackReplySv;
-
-
-    /**
-     * 娣诲姞闂鍙嶉鍥炲
-     * @param reply
-     * @param bindingResult
-     * @return
-     */
-    @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
-    @Transactional(rollbackFor = Exception.class)
-    @SsoAop
-    public BaseResponse<Boolean> add(@RequestBody @Valid OpeFeedbackReply reply, @Parameter(hidden = true) BindingResult bindingResult){
-        if (bindingResult != null && bindingResult.hasErrors()) {
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
-        }
-
-        Integer rec = Optional.ofNullable(feedbackReplySv.add(reply)).orElse(0);
-        if (rec == 0) {
-            return BaseResponseUtils.buildFail("娣诲姞澶辫触");
-        }
-        return BaseResponseUtils.buildSuccess(true);
-    }
-
-
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/FeedbackReplySv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/FeedbackReplySv.java
deleted file mode 100644
index 2d6e818..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/FeedbackReplySv.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.dy.pipIrrOperation.feedbackReply;
-
-/**
- * @author :WuZeYu
- * @Date :2024/7/31  16:19
- * @LastEditTime :2024/7/31  16:19
- * @Description
- */
-public class FeedbackReplySv {
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/QueryVo.java
deleted file mode 100644
index fb41126..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/java/com/dy/pipIrrOperation/feedbackReply/QueryVo.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.dy.pipIrrOperation.feedbackReply;
-
-/**
- * @author :WuZeYu
- * @Date :2024/7/31  16:20
- * @LastEditTime :2024/7/31  16:20
- * @Description
- */
-public class QueryVo {
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java
index aebcdd0..023af9e 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java
@@ -27,7 +27,12 @@
     /**
      * 鏄惁鍦ㄧ嚎
      */
-    @Max(value = 1,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
-    @Min(value = 0,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
+
     private Boolean isOnLine;
+
+    /**
+     * 鏄惁缁戝畾
+     */
+
+    private Boolean isBinded;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/qo/QoCommand.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/qo/QoCommand.java
index 8491229..b75755f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/qo/QoCommand.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/qo/QoCommand.java
@@ -19,6 +19,11 @@
 public class QoCommand extends QueryConditionVo {
 
     /**
+     * 鍙栨按鍙D
+     */
+    private Long intakeId;
+
+    /**
      * 鍛戒护鍚嶇О
      */
     private String commandName;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayCtrl.java
index 94aaa14..abe2444 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayCtrl.java
@@ -53,7 +53,7 @@
     })
     @GetMapping(path = "/getClientAmountDayHistory")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoClientAmountDay>>> getClientAmountDayHistory(@RequestParam ClientAmountDayQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoClientAmountDay>>> getClientAmountDayHistory( ClientAmountDayQueryVo vo) {
         try {
             QueryResultVo<List<VoClientAmountDay>> res = clientAmountDaySv.getClientAmountDayHistory(vo);
             return BaseResponseUtils.buildSuccess(res);
@@ -81,7 +81,7 @@
     })
     @GetMapping(path = "/getClientAmountDayLast")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoClientAmountDay>>> getClientAmountDayLast(@RequestParam ClientAmountDayQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoClientAmountDay>>> getClientAmountDayLast( ClientAmountDayQueryVo vo) {
         try {
             QueryResultVo<List<VoClientAmountDay>> res = clientAmountDaySv.getClientAmountDayLast(vo);
             return BaseResponseUtils.buildSuccess(res);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayQueryVo.java
index 2f7a749..d5883a2 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayQueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/clientAmountDay/ClientAmountDayQueryVo.java
@@ -1,12 +1,14 @@
 package com.dy.pipIrrRemote.records.clientAmountDay;
 
 import com.dy.common.webUtil.QueryConditionVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+import org.springframework.format.annotation.DateTimeFormat;
 
-import java.sql.Date;
+import java.util.Date;
 
 /**
  * @author :WuZeYu
@@ -30,8 +32,12 @@
     private String clientName;
 
     @Schema(description = "缁熻寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startDt;
 
     @Schema(description = "缁熻缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endDt;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateCtrl.java
index 26caa3a..f68f3ae 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateCtrl.java
@@ -53,7 +53,7 @@
     })
     @GetMapping(path = "/getControllerAlarmStateHistory")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateHistory(@RequestParam ControllerAlarmStateQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateHistory( ControllerAlarmStateQueryVo vo) {
         try {
             QueryResultVo<List<VoControllerAlarmState>> res = controllerAlarmStateSv.getControllerAlarmStateHistory(vo);
             return BaseResponseUtils.buildSuccess(res);
@@ -82,7 +82,7 @@
     })
     @GetMapping(path = "/getControllerAlarmStateLast")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateLast(@RequestParam ControllerAlarmStateQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateLast( ControllerAlarmStateQueryVo vo) {
         try {
             QueryResultVo<List<VoControllerAlarmState>> res = controllerAlarmStateSv.getControllerAlarmStateLast(vo);
             return BaseResponseUtils.buildSuccess(res);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateQueryVo.java
index 993b064..3609963 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateQueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/controllerAlarmState/ControllerAlarmStateQueryVo.java
@@ -33,13 +33,13 @@
     private Byte valveState;
 
     @Schema(description = "寮�濮嬫椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startDt;
 
     @Schema(description = "缁撴潫鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endDt;
 
     @Schema(description = "鎶ヨ鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)//锛�0姝e父銆�1鎶ヨ锛�
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayCtrl.java
index 80bc40d..acda701 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayCtrl.java
@@ -52,7 +52,7 @@
     })
     @GetMapping(path = "/getIntakeAmountDayHistory")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoIntakeAmountDay>>> getIntakeAmountDayHistory(@RequestParam IntakeAmountDayQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoIntakeAmountDay>>> getIntakeAmountDayHistory( IntakeAmountDayQueryVo vo) {
         try {
             QueryResultVo<List<VoIntakeAmountDay>> res = intakeAmountDaySv.getIntakeAmountDayHistory(vo);
             return BaseResponseUtils.buildSuccess(res);
@@ -79,7 +79,7 @@
     })
     @GetMapping(path = "/getIntakeAmountDayLast")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoIntakeAmountDay>>> getIntakeAmountDayLast(@RequestParam IntakeAmountDayQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoIntakeAmountDay>>> getIntakeAmountDayLast( IntakeAmountDayQueryVo vo) {
         try {
             QueryResultVo<List<VoIntakeAmountDay>> res = intakeAmountDaySv.getIntakeAmountDayLast(vo);
             return BaseResponseUtils.buildSuccess(res);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayQueryVo.java
index 9e7b078..c8e9eeb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayQueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/intakeAmountDay/IntakeAmountDayQueryVo.java
@@ -3,8 +3,12 @@
 import com.dy.common.webUtil.QueryConditionVo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
+import org.springframework.format.annotation.DateTimeFormat;
 
-import java.sql.Date;
+import java.util.Date;
+
+//import java.sql.Date;
 
 /**
  * @author :WuZeYu
@@ -27,9 +31,16 @@
     @Schema(description = "鍙栨按鍙D")
     private String intakeId;
 
-    @Schema(description = "缁熻寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+//    @Schema(description = "缁熻寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+//    private java.sql.Date startDt;
+//    @NotBlank(message = "寮�濮嬫椂闂翠笉鑳戒负绌�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date startDt;
 
-    @Schema(description = "缁熻缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+
+//    @Schema(description = "缁熻缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+//    private java.sql.Date endDt;
+//    @NotBlank(message = "缁撴潫鏃堕棿涓嶈兘涓虹┖")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDt;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayCtrl.java
index c2edd27..d70f372 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayCtrl.java
@@ -56,7 +56,7 @@
     })
     @GetMapping(path = "/getLossDayHistory")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoLossDay>>> getLossDayHistory(@RequestParam LossDayQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoLossDay>>> getLossDayHistory( LossDayQueryVo vo) {
         try {
             QueryResultVo<List<VoLossDay>> res = lossDaySv.getLossDayHistory(vo);
             return BaseResponseUtils.buildSuccess(res);
@@ -83,7 +83,7 @@
     })
     @GetMapping(path = "/getLossDayLast")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoLossDay>>> getLossDayLast(@RequestParam LossDayQueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoLossDay>>> getLossDayLast( LossDayQueryVo vo) {
         try {
             QueryResultVo<List<VoLossDay>> res = lossDaySv.getLossDayLast(vo);
             return BaseResponseUtils.buildSuccess(res);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayQueryVo.java
index cba8680..840a42a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayQueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/lossDay/LossDayQueryVo.java
@@ -1,10 +1,12 @@
 package com.dy.pipIrrRemote.records.lossDay;
 
 import com.dy.common.webUtil.QueryConditionVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+import org.springframework.format.annotation.DateTimeFormat;
 
-import java.sql.Date;
+import java.util.Date;
 
 /**
  * @author :WuZeYu
@@ -29,8 +31,12 @@
     private String intakeId;
 
     @Schema(description = "缁熻寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startDt;
 
     @Schema(description = "缁熻缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endDt;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebFilterConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebFilterConfiguration.java
new file mode 100644
index 0000000..6282885
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebFilterConfiguration.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrStatistics.config;
+
+import com.dy.common.webFilter.DevOfDataSourceNameSetFilter;
+import com.dy.common.webFilter.UserTokenFilter;
+import jakarta.servlet.Filter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/5 10:32
+ * @LastEditTime 2023/12/5 10:32
+ * @Description
+ */
+@Configuration
+public class WebFilterConfiguration {
+
+    @Value("${pipIrr.global.dev}")
+    public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈�
+    @Value("${pipIrr.global.dsName}")
+    public String dsName ;//寮�鍙戦樁娈电殑鏁版嵁婧愬悕绉�
+
+    /**
+     * DevOfDataSourceNameSetFilter涓嶶serTokenFilter鍙兘涓�涓閰嶇疆涓婏紝
+     * 鎵�浠ヤ粬浠殑order閮芥槸1
+     */
+    private static final int order_UserTokenFilter = 1 ;//涓庝笅闈�
+    private static final int order_DevOfDataSourceNameSetFilter = 1 ;
+
+
+    @Bean
+    public FilterRegistrationBean<? extends Filter> RegFilter() {
+        FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>();
+        if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){
+            filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter());
+            filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯
+            filterRegistrationBean.addInitParameter("dataSourceName",dsName);//璁剧疆init鍙傛暟
+            filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//璁剧疆杩囨护鍣ㄥ悕绉�
+            filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//鎵ц娆″簭
+        }else{
+            filterRegistrationBean.setFilter(new UserTokenFilter());
+            filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯
+            filterRegistrationBean.setName("UserTokenFilter");//璁剧疆杩囨护鍣ㄥ悕绉�
+            filterRegistrationBean.setOrder(order_UserTokenFilter);//鎵ц娆″簭
+        }
+        return filterRegistrationBean;
+    }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebListenerConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebListenerConfiguration.java
new file mode 100644
index 0000000..3d7d4a4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebListenerConfiguration.java
@@ -0,0 +1,56 @@
+package com.dy.pipIrrStatistics.config;
+
+import com.dy.common.webListener.GenerateIdSetSuffixListener;
+import jakarta.servlet.ServletContextListener;
+import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/5 10:33
+ * @LastEditTime 2023/12/5 10:33
+ * @Description
+ */
+@Configuration
+public class WebListenerConfiguration {
+
+    /**
+     * 鍚姩椤哄簭
+     */
+    //private static final int order_config = 0 ;
+    private static final int order_idSetSuffix = 1 ;
+    //private static final int order_init = 2 ;
+
+    /*
+    * 瑙f瀽鍚勭***.config閰嶇疆鐨凜onfigListener锛屾殏鏃朵笉閲囩敤姝ょ閰嶇疆鏂瑰紡
+    *
+    @Bean
+    public ConfigListener getGlConfigListener(){
+        return new ConfigListener() ;
+    }
+    /**
+     * 澶栭儴鎻愪緵Listener
+     * @param listener 澶栭儴鎻愪緵Listener
+     * @return 娉ㄥ唽Bean
+    @Bean
+    public ServletListenerRegistrationBean<? extends ServletContextListener> regConfigListener(ConfigListener listener) {
+        ServletListenerRegistrationBean<ConfigListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>();
+        listenerRegistrationBean.setListener(listener);
+        listenerRegistrationBean.setOrder(order_config);
+        return listenerRegistrationBean;
+    }
+    */
+
+    /**
+     * 鍐呴儴鎻愪緵listener锛岃listener鍦ㄧ郴缁熷惎鍔ㄦ椂锛屾牴鎹厤缃� 璁剧疆ID浜х敓鍣ㄧ殑鍚庣紑
+     * @return 娉ㄥ唽Bean
+     */
+    @Bean
+    public ServletListenerRegistrationBean<? extends ServletContextListener> regSsoListener() {
+        ServletListenerRegistrationBean<GenerateIdSetSuffixListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>();
+        listenerRegistrationBean.setListener(new GenerateIdSetSuffixListener());
+        listenerRegistrationBean.setOrder(order_idSetSuffix);
+        return listenerRegistrationBean;
+    }
+}
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
new file mode 100644
index 0000000..24b3244
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -0,0 +1,148 @@
+package com.dy.pipIrrStatistics.intake;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper;
+import com.dy.pipIrrGlobal.daoRm.RmOnHourReportLastMapper;
+import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
+import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
+import com.dy.pipIrrGlobal.voSt.VoIntake;
+import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
+import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
+import com.dy.pipIrrStatistics.intake.qo.IntakeQO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 13:58
+ * @LastEditTime 2024-08-01 13:58
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class IntakeSv {
+    @Autowired
+    private RmOnHourReportHistoryMapper rmOnHourReportHistoryMapper;
+    @Autowired
+    private RmOnHourReportLastMapper rmOnHourReportLastMapper;
+
+    @Value("${rtu.batteryVolt}")
+    private Double batteryVolt;
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoIntake>> getNotOnlineIntakes(IntakeQO qo) {
+        DecimalFormat df = new DecimalFormat("0.00");
+        /**
+         * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡
+         */
+        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);
+
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getNotOnlineIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportHistoryMapper.getNotOnlineIntakes(params);
+        return rsVo ;
+    }
+
+    /**
+     * 鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoCumulativeFlow>> getLargeFlowIntakes(CumulativeFlowQO qo) {
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getLargeFlowIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportLastMapper.getLargeFlowIntakes(params);
+        return rsVo ;
+    }
+
+    /**
+     * 鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoCumulativeFlow>> getSmallFlowIntakes(CumulativeFlowQO qo) {
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getSmallFlowIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportLastMapper.getSmallFlowIntakes(params);
+        return rsVo ;
+    }
+
+    /**
+     * 鑾峰彇娆犲帇鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoBatteryVolt>> getUnderVoltIntakes(BatteryVoltQO qo) {
+        qo.setBatteryVolt(batteryVolt);
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getUnderVoltIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoBatteryVolt>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportLastMapper.getUnderVoltIntakes(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
new file mode 100644
index 0000000..ab1dc52
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -0,0 +1,115 @@
+package com.dy.pipIrrStatistics.intake;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
+import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
+import com.dy.pipIrrGlobal.voSt.VoIntake;
+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.result.StatisticlResultCode;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 13:57
+ * @LastEditTime 2024-08-01 13:57
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="statistics")
+@RequiredArgsConstructor
+public class IntkeCtrl {
+    private final IntakeSv intakeSv;
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/getNotOnlineIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoIntake>>> getNotOnlineIntakes(IntakeQO qo) {
+        try {
+            QueryResultVo<List<VoIntake>> res = intakeSv.getNotOnlineIntakes(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 qo
+     * @return
+     */
+    @GetMapping(path = "/getLargeFlowIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoCumulativeFlow>>> getLargeFlowIntakes(CumulativeFlowQO qo) {
+        try {
+            QueryResultVo<List<VoCumulativeFlow>> res = intakeSv.getLargeFlowIntakes(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 qo
+     * @return
+     */
+    @GetMapping(path = "/getSmallFlowIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoCumulativeFlow>>> getSmallFlowIntakes(CumulativeFlowQO qo) {
+        try {
+            QueryResultVo<List<VoCumulativeFlow>> res = intakeSv.getSmallFlowIntakes(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 qo
+     * @return
+     */
+    @GetMapping(path = "/getUnderVoltIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoBatteryVolt>>> getUnderVoltIntakes(BatteryVoltQO qo) {
+        try {
+            QueryResultVo<List<VoBatteryVolt>> res = intakeSv.getUnderVoltIntakes(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()) ;
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/BatteryVoltQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/BatteryVoltQO.java
new file mode 100644
index 0000000..a5be4ac
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/BatteryVoltQO.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrStatistics.intake.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-03 10:47
+ * @LastEditTime 2024-08-03 10:47
+ * @Description
+ */
+
+@Data
+public class BatteryVoltQO extends QueryConditionVo {
+
+    /**
+     * 鐢垫睜鐢靛帇
+     */
+    private Double batteryVolt;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/CumulativeFlowQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/CumulativeFlowQO.java
new file mode 100644
index 0000000..096a4f6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/CumulativeFlowQO.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrStatistics.intake.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 16:20
+ * @LastEditTime 2024-08-01 16:20
+ * @Description 绱娴侀噺鏌ヨ瀵硅薄
+ */
+
+@Data
+public class CumulativeFlowQO extends QueryConditionVo {
+
+    /**
+     * 绱娴侀噺
+     */
+    private Double totalAmount;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeQO.java
new file mode 100644
index 0000000..2b494af
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeQO.java
@@ -0,0 +1,30 @@
+package com.dy.pipIrrStatistics.intake.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 14:31
+ * @LastEditTime 2024-08-01 14:31
+ * @Description
+ */
+
+@Data
+public class IntakeQO extends QueryConditionVo {
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String timeStart;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @NotBlank(message = "缁撴潫鏃堕棿涓嶈兘涓虹┖")
+    private String timeStop;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/result/StatisticlResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/result/StatisticlResultCode.java
new file mode 100644
index 0000000..4cba413
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/result/StatisticlResultCode.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrStatistics.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-01 15:03
+ * @LastEditTime 2024-08-01 15:03
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum StatisticlResultCode {
+    NO_RECORDS(10001, "娌℃湁绗﹀悎鏉′欢鐨勮褰�");
+
+    private final Integer code;
+    private final String message;
+}

--
Gitblit v1.8.0