From b397edee2be2dfcc3f28eeac50298b4de26b1afa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 13 十二月 2024 16:53:45 +0800
Subject: [PATCH] 取水口日取水量表中,出现一些大数,明显不正确,发析系统日志,发现一些阀控器会上报一些累计流量为0的数据,且无规律,推测是其不能从水表读取到累计流量时会上报0值。如果间歇上报0值,间歇上报一些非0值,非0值减去0值,就会出现大数,一天中出现几次那么会大数进行累加,数值将更大。为此变更算法,规避这种情况,但也会丢失一些流量值。

---
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientSv.java |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientSv.java
index e453ab8..000b497 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientSv.java
@@ -37,12 +37,19 @@
         List<VoClientAmountStatistics> list = rmClientAmountDayDao.statisticsByClient(statisticsStartId, statisticsEndId) ;
         if(list != null && list.size() > 0){
             for(VoClientAmountStatistics vo : list){
-                StClientAmountMonth po = new StClientAmountMonth() ;
+                StClientAmountMonth po = stClientAmountMonthDao.selectByClientIdAndYearAndMonth(vo.clientId, statisticsYear, statisticsMonth) ;
+                if(po == null) {
+                    po = new StClientAmountMonth();
+                }
                 po.clientId = vo.clientId ;
                 po.year = statisticsYear ;
                 po.month = statisticsMonth ;
                 po.amount = vo.amount;
-                stClientAmountMonthDao.insert(po) ;
+                if(po.id == null) {
+                    stClientAmountMonthDao.insert(po);
+                }else{
+                    stClientAmountMonthDao.updateByPrimaryKey(po) ;
+                }
             }
         }
     }
@@ -55,11 +62,18 @@
         List<VoClientAmountStatistics> list = stClientAmountMonthDao.statisticsByClient(statisticsYear) ;
         if(list != null && list.size() > 0){
             for(VoClientAmountStatistics vo : list){
-                StClientAmountYear po = new StClientAmountYear() ;
+                StClientAmountYear po = stClientAmountYearDao.selectByClientIdAndYear(vo.clientId, statisticsYear) ;
+                if(po == null) {
+                    po = new StClientAmountYear();
+                }
                 po.clientId = vo.clientId ;
                 po.year = statisticsYear ;
                 po.amount = vo.amount;
-                stClientAmountYearDao.insert(po) ;
+                if(po.id == null) {
+                    stClientAmountYearDao.insert(po);
+                }else{
+                    stClientAmountYearDao.updateByPrimaryKey(po) ;
+                }
             }
         }
     }

--
Gitblit v1.8.0