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