From f7c748120263ee6fbed1b137cbd7dad64e249c02 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期六, 11 一月 2025 12:41:34 +0800
Subject: [PATCH] 1、通信中间件中,取水口日取水量统计重新实现,统计数据来源只采用关阀报,不再采用工作报和开阀报了; 2、临时任务中,增加统计取水口是取水量统计。

---
 pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeIntakeAmountSv.java |   71 ++++++++++++++++++++++++++++-------
 1 files changed, 57 insertions(+), 14 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeIntakeAmountSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeIntakeAmountSv.java
index d1e6f82..32cdf07 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeIntakeAmountSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeIntakeAmountSv.java
@@ -6,6 +6,7 @@
 import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth;
 import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear;
 import com.dy.pipIrrGlobal.voSt.VoIntake;
+import com.dy.pipIrrTemp.util.StClientAmountConstant;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -26,8 +27,6 @@
 public class ChSomeIntakeAmountSv {
 
     private ChangeMapper dao;
-
-    private static final int IntakeAmountDayFlag = 800 ;//2024-12-14缁熻鍏冭皨鏁版嵁搴撳疄鏃舵暟鎹紝鍙戠幇澶т簬800鐨勬纭殑鏁版嵁涓嶅瓨鍦紝鑰屽皬浜�800鐨勫熀鏈负姝g‘鏁版嵁
 
     @Autowired
     private void setDao(ChangeMapper dao){
@@ -57,11 +56,11 @@
                     for(RmIntakeAmountDay ad : adList){
                         if(lastAd == null){
                             lastAd = ad ;
-                            if(lastAd.amount != null && lastAd.amount > IntakeAmountDayFlag){
+                            if(lastAd.amount != null && lastAd.amount > StClientAmountConstant.IntakeAmountDayFlag){
                                 this.doUpdateOneIntakeAmountDay(lastAd.id, 0.0);
                             }
                         }else{
-                            if(ad.amount != null && ad.amount > IntakeAmountDayFlag){
+                            if(ad.amount != null && ad.amount > StClientAmountConstant.IntakeAmountDayFlag){
                                 if(ad.totalAmountLast != null && lastAd.totalAmountLast != null){
                                     //閲嶆柊璁$畻鏃ュ彇姘撮噺
                                     ad.amount = ad.totalAmountLast - lastAd.totalAmountLast;
@@ -74,10 +73,10 @@
                                         );
                                         ad.amount = 0.0 ;
                                     }
-                                    if(ad.amount > IntakeAmountDayFlag){
+                                    if(ad.amount > StClientAmountConstant.IntakeAmountDayFlag){
                                         //璁$畻鏃ュ彇姘撮噺鍚庯紝浠嶅ぇ浜嶪ntakeAmountDayFlag
                                         log.info("鍑虹幇璋冩暣鍚庣殑鏃ュ彇姘撮噺浠嶅ぇ浜�"
-                                                + IntakeAmountDayFlag
+                                                + StClientAmountConstant.IntakeAmountDayFlag
                                                 + "鐨勬儏鍐碉紝鏁版嵁id=" + ad.id
                                                 + "锛屽彇姘村彛id=" + ad.intakeId
                                                 + "锛屾棩鏈�=" + ad.dt
@@ -87,7 +86,7 @@
                                             if(DateTime.daysBetweenyyyy_MM_dd(ad.dt, lastAd.dt) == 1){
                                                 //鍙浉宸竴澶�
                                                 log.info("鍑虹幇鐩稿樊涓�澶╀絾鏃ュ彇姘撮噺澶т簬"
-                                                        + IntakeAmountDayFlag
+                                                        + StClientAmountConstant.IntakeAmountDayFlag
                                                         + "鐨勬儏鍐碉紝鏁版嵁id=" + ad.id
                                                         + "锛屽彇姘村彛id=" + ad.intakeId
                                                         + "锛屾棩鏈�=" + ad.dt
@@ -99,7 +98,7 @@
                                                 //宸茬粡淇敼鍚庣殑鏁板�间粛鐒跺ぇ浜嶪ntakeAmountDayFlag锛岃鏄庢槸澶ф棩鏈笂鎶ユ暟鎹�岀Н绱笅鏉�,鍙互澶т簬IntakeAmountDayFlag
                                                 //ad.amount = ad.amount ;
                                                 log.info("鍑虹幇鐩稿樊澶氬ぉ鏃ュ彇姘撮噺澶т簬"
-                                                        + IntakeAmountDayFlag
+                                                        + StClientAmountConstant.IntakeAmountDayFlag
                                                         + "鐨勬儏鍐碉紝鏁版嵁id=" + ad.id
                                                         + "锛屽彇姘村彛id=" + ad.intakeId
                                                         + "锛屾棩鏈�=" + ad.dt
@@ -110,7 +109,7 @@
                                     }
                                 }else{
                                     log.info("鍑虹幇鐩稿樊澶氬ぉ鏃ュ彇姘撮噺澶т簬"
-                                            + IntakeAmountDayFlag
+                                            + StClientAmountConstant.IntakeAmountDayFlag
                                             + "骞朵笖灞炴�otalAmountLast涓簄ull鐨勬儏鍐碉紝鏁版嵁id=" + ad.id
                                             + "锛屽彇姘村彛id=" + ad.intakeId
                                             + "锛屾棩鏈�=" + ad.dt
@@ -134,6 +133,53 @@
         return dao.updateOneIntakeAmountDay(id, amount);
     }
 
+    /**
+     * 鍒犻櫎鎵�鏈夊彇姘村彛鏃ュ彇姘撮噺缁熻
+     * @throws Exception
+     */
+    @Transactional
+    public void deleteAllIntakeAmountDay(){
+        dao.deleteAllIntakeAmountDay();
+    }
+
+    /**
+     * 缁熻鍙栨按鍙f棩鍙栨按閲�
+     * @throws Exception
+     */
+    public void statisticsIntakeAmountDay() throws Exception{
+        int nowYear = Integer.parseInt(DateTime.yyyy()) ;
+        int nowMonth = Integer.parseInt(DateTime.mm()) ;
+        int nowDay = Integer.parseInt(DateTime.dd()) ;
+        Date startDt ;
+        Date endDt ;
+        List<RmIntakeAmountDay> list ;
+        boolean stop = false ;
+        for(int[] ym : StClientAmountConstant.yearMonthGrp) {
+            int[] dates = DateTime.dayGrpInMonth(ym[0], ym[1]);
+            for(int day: dates){
+                if(ym[0] == nowYear && ym[1] == nowMonth && day > nowDay){
+                    stop = true ;
+                }
+                if(!stop){
+                    startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(ym[0] + "-" + ym[1] + "-" + day + " 00:00:00") ;
+                    endDt = DateTime.dateFrom_yyyy_MM_dd(ym[0] + "-" + ym[1] + "-" + day + " 23:59:59") ;
+                    list = dao.statisticAllIntakeAmountDayFromOpenCloseValveHistory(startDt, endDt) ;
+                    this.doStatisticsIntakeAmountDay(ym[0], ym[1], day, list) ;
+                }else{
+                    break ;
+                }
+            }
+        }
+    }
+    @Transactional
+    protected void doStatisticsIntakeAmountDay(int year, int month, int day, List<RmIntakeAmountDay> list) throws Exception{
+        if(list != null && list.size() > 0){
+            Date date = DateTime.dateFrom_yyyy_MM_dd(year + "-" + month + "-" + day) ;
+            for(RmIntakeAmountDay po : list){
+                dao.updateOneIntakeAmountDay1(po.intakeId, date, po.amount, po.money, po.times);
+            }
+        }
+    }
 
 
     ////////////////////////////////////////
@@ -141,9 +187,6 @@
     // 鏈夊叧鏈堢粺璁�
     //
     ///////////////////////////////////////
-
-    private static final int DealStartYear = 2024 ;
-    private static final int DealStartMonth = 8 ;
 
     /**
      * 鍒犻櫎鎵�鏈夊彇姘村彛鏈堝彇姘撮噺缁熻
@@ -164,7 +207,7 @@
         Date startDt ;
         Date endDt ;
         List<StIntakeAmountMonth> list ;
-        for(int year = DealStartYear; year <= nowYear; year ++){
+        for(int year = StClientAmountConstant.DealStartYear; year <= nowYear; year ++){
             list = null ;
             if(year < nowYear){
                 for(int month = 1 ; month <= 12 ; month ++){
@@ -218,7 +261,7 @@
         Date startDt ;
         Date endDt ;
         List<StIntakeAmountYear> list ;
-        for(int year = DealStartYear; year <= nowYear; year ++){
+        for(int year = StClientAmountConstant.DealStartYear; year <= nowYear; year ++){
             list = null ;
             startDt = DateTime.dateFrom_yyyy_MM_dd(year + "-01-01") ;
             endDt = DateTime.dateFrom_yyyy_MM_dd(year + "-12-31") ;

--
Gitblit v1.8.0