From 0f2f2cfaeb23fc8f84ce13202bbc94fbc5644531 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 14 七月 2025 11:44:02 +0800 Subject: [PATCH] 修改用水户年用水量统计查询中的bug --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java | 39 ++++++++++++++++++++++++++------------- 1 files changed, 26 insertions(+), 13 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java index 0890f30..28ddede 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java @@ -27,6 +27,7 @@ //澶勭悊涓婃潯鏁版嵁鐨勬椂鍒� private static final Map<String, Long> dealDataAtDateTime = new HashMap<>(); + private static final Map<String, ManureVo> lastUpManureData = new HashMap<>(); /** * 鎵ц鑺傜偣浠诲姟 @@ -38,22 +39,34 @@ MqttSubMsg msg = (MqttSubMsg)data ; if(msg.vo4Up != null && msg.vo4Up instanceof ManureVo){ //姘磋偉鏁版嵁 - ManureVo stVo = (ManureVo)msg.vo4Up ; - Long lastAt = dealDataAtDateTime.get(msg.deviceId + stVo.no); + ManureVo nowVo = (ManureVo)msg.vo4Up ; + ManureVo lastVo = lastUpManureData.get(msg.deviceId + nowVo.no) ; Long now = System.currentTimeMillis() ; - if(lastAt == null || ((now - lastAt) >= ServerProperties.mqttAcceptDataMinInterval)){ - dealDataAtDateTime.put(msg.deviceId + stVo.no, now); - DbSv sv = SpringContextUtil.getBean(DbSv.class) ; - if(sv != null){ - PrStManure stPo = sv.getStManureByFBoxIdAndNo(msg.deviceId, stVo.no) ; - if(stPo != null){ - this.taskResult = new Object[]{sv, stPo} ; - this.toNextTasks(data); - } - }else{ - log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄"); + if(lastVo != null && nowVo.stateIsChanged(lastVo)){ + //鐘舵�佹湁鍙樺寲 + this.deal(data, msg, nowVo, now); + }else{ + //鐘舵�佹棤鍙樺寲 + Long lastAt = dealDataAtDateTime.get(msg.deviceId + nowVo.no); + if(lastAt == null || ((now - lastAt) >= ServerProperties.mqttAcceptDataMinInterval)){ + //瓒呰繃鏈�灏忔椂闂撮棿闅� + this.deal(data, msg, nowVo, now); } } + lastUpManureData.put(msg.deviceId + nowVo.no, nowVo); + } + } + private void deal(Object data, MqttSubMsg msg, ManureVo stVo, Long now){ + dealDataAtDateTime.put(msg.deviceId + stVo.no, now); + DbSv sv = SpringContextUtil.getBean(DbSv.class) ; + if(sv != null){ + PrStManure stPo = sv.getStManureByFBoxIdAndNo(msg.deviceId, stVo.no) ; + if(stPo != null){ + this.taskResult = new Object[]{sv, stPo} ; + this.toNextTasks(data); + } + }else{ + log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄"); } } } -- Gitblit v1.8.0