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/StIntakeSv.java | 25 +++++++++++++++++++++---- 1 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StIntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StIntakeSv.java index 7118779..0fa3e7e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StIntakeSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StIntakeSv.java @@ -5,7 +5,9 @@ import com.dy.pipIrrGlobal.daoSt.StIntakeAmountYearMapper; import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth; import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear; +import com.dy.pipIrrGlobal.pojoSt.StLossYear; import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics; +import com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -37,12 +39,19 @@ List<VoIntakeAmountStatistics> list = rmIntakeAmountDayDao.statisticsByIntake(statisticsStartId, statisticsEndId) ; if(list != null && list.size() > 0){ for(VoIntakeAmountStatistics vo : list){ - StIntakeAmountMonth po = new StIntakeAmountMonth() ; + StIntakeAmountMonth po = this.stIntakeAmountMonthDao.selectByIntakeIdAndYearAndMonth(vo.intakeId, statisticsYear, statisticsMonth) ; + if(po == null){ + po = new StIntakeAmountMonth() ; + } po.intakeId = vo.intakeId ; po.year = statisticsYear ; po.month = statisticsMonth ; po.amount = vo.amount; - stIntakeAmountMonthDao.insert(po) ; + if(po.id == null) { + stIntakeAmountMonthDao.insert(po); + }else{ + stIntakeAmountMonthDao.updateByPrimaryKey(po) ; + } } } } @@ -55,12 +64,20 @@ List<VoIntakeAmountStatistics> list = stIntakeAmountMonthDao.statisticsByIntake(statisticsYear) ; if(list != null && list.size() > 0){ for(VoIntakeAmountStatistics vo : list){ - StIntakeAmountYear po = new StIntakeAmountYear() ; + StIntakeAmountYear po = stIntakeAmountYearDao.selectByIntakeIdAndYear(vo.intakeId, statisticsYear) ; + if(po == null){ + po = new StIntakeAmountYear() ; + } po.intakeId = vo.intakeId ; po.year = statisticsYear ; po.amount = vo.amount; - stIntakeAmountYearDao.insert(po) ; + if(po.id == null){ + stIntakeAmountYearDao.insert(po) ; + }else{ + stIntakeAmountYearDao.updateByPrimaryKey(po) ; + } } } } + } -- Gitblit v1.8.0