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-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java index 0cf2cb2..23490d3 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java @@ -33,15 +33,12 @@ Data d = (Data) data; DataV202404 dV202404 = (DataV202404) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null Object cdObj = dV202404.subData; - if (cdObj != null) { + if (cdObj != null && cdObj instanceof DataCd83Vo) { try { Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId); DbSv sv = (DbSv) objs[0]; PrController controller = (PrController) objs[1]; - if (cdObj instanceof DataCd83Vo) { - DataCd83Vo cdData = (DataCd83Vo) (cdObj); - this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd83Vo)cdObj); - } + this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd83Vo)cdObj); } catch (Exception e) { log.error("淇濆瓨鎺у埗鍣ㄦ帶鍒跺櫒瀹氭椂鎶ユ暟鎹椂鍙戠敓寮傚父", e); } @@ -69,7 +66,7 @@ * @param cdData 鍔熻兘鏁版嵁 */ private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd83Vo cdData)throws Exception { - RmTimingReportLast po = sv.getRmTimingReportLast(rtuAddr) ; + RmTimingReportLast po = sv.getRmTimingReportLast(controller.getIntakeId()) ; if(po == null){ po = new RmTimingReportLast(); po.controllerId = controller==null?null:controller.getId(); -- Gitblit v1.8.0