From 3b32adb6b7b8d40f85e84f8b1a775f2ec1df88af Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 01 八月 2024 21:55:06 +0800
Subject: [PATCH] 2024-08-01 朱宝民 查询统计3个接口

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java                      |   43 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCumulativeFlow.java                                  |   28 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/CumulativeFlowQO.java      |   20 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/config/WebListenerConfiguration.java |   56 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/result/StatisticlResultCode.java     |   20 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml                                     |   89 ++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java                |   93 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java                 |  115 +++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntake.java                                          |   34 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeQO.java              |   30 +++
 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                                                     |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java                                   |    1 
 13 files changed, 581 insertions(+), 1 deletions(-)

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..88ac1f1 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,8 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory;
 import com.dy.pipIrrGlobal.voRm.VoOnHour;
+import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
+import com.dy.pipIrrGlobal.voSt.VoIntake;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -71,4 +73,45 @@
      */
     List<VoOnHour> getOnHourReports_history(Map<?, ?> params);
 
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾垮彇姘村彛鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getNotOnlineIntakesCount(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�
+     * @param params
+     * @return
+     */
+    List<VoIntake> getNotOnlineIntakes(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);
 }
\ No newline at end of file
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..d4c362f
--- /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 Float 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..fc10859 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
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..edfd7d1 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,93 @@
     </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>
+
+  <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙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>
 </mapper>
\ No newline at end of file
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..c9e3b05
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -0,0 +1,115 @@
+package com.dy.pipIrrStatistics.intake;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper;
+import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
+import com.dy.pipIrrGlobal.voSt.VoIntake;
+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.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;
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�
+     * @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(rmOnHourReportHistoryMapper.getLargeFlowIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportHistoryMapper.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(rmOnHourReportHistoryMapper.getSmallFlowIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportHistoryMapper.getSmallFlowIntakes(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..ac767b9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -0,0 +1,93 @@
+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.VoCumulativeFlow;
+import com.dy.pipIrrGlobal.voSt.VoIntake;
+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()) ;
+        }
+    }
+}
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