From 6efa476dad8e425ff71c37cd57437c99928cd405 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 01 八月 2025 17:42:22 +0800 Subject: [PATCH] 中间件,对于水肥机数据,每条上报数据都进行最新上报数据处理,以备前端界面及时显示水肥机状态。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 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 28ddede..d7c097c 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 @@ -43,27 +43,34 @@ ManureVo lastVo = lastUpManureData.get(msg.deviceId + nowVo.no) ; Long now = System.currentTimeMillis() ; if(lastVo != null && nowVo.stateIsChanged(lastVo)){ - //鐘舵�佹湁鍙樺寲 - this.deal(data, msg, nowVo, now); + //鐘舵�佹湁鍙樺寲锛屾渶鏂版暟鎹強鍘嗗彶鏁版嵁閮借瀛樺偍 + this.deal(data, msg, nowVo, now, false); }else{ //鐘舵�佹棤鍙樺寲 Long lastAt = dealDataAtDateTime.get(msg.deviceId + nowVo.no); - if(lastAt == null || ((now - lastAt) >= ServerProperties.mqttAcceptDataMinInterval)){ - //瓒呰繃鏈�灏忔椂闂撮棿闅� - this.deal(data, msg, nowVo, now); + if(lastAt == null || ((now - lastAt) >= ServerProperties.acceptManureDataMinInterval)){ + //瓒呰繃鏈�灏忔椂闂撮棿闅旓紝 鏈�鏂版暟鎹強鍘嗗彶鏁版嵁閮借瀛樺偍 + this.deal(data, msg, nowVo, now, false); + }else{ + //鏈秴杩囨渶灏忔椂闂撮棿闅旓紝 鏈�鏂版暟鎹瀛樺偍锛屼互澶囧鎴风鍙婃椂鏌ョ湅鐘舵�� + this.deal(data, msg, nowVo, now, true); } } lastUpManureData.put(msg.deviceId + nowVo.no, nowVo); } } - private void deal(Object data, MqttSubMsg msg, ManureVo stVo, Long now){ + private void deal(Object data, MqttSubMsg msg, ManureVo stVo, Long now, boolean dealOnlyLast){ 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); + if(dealOnlyLast){ + this.toNextOneTask(data, TkDealManureLastSdV1.taskId); + }else{ + this.toNextOneTask(data, TkDealManureSdV1.taskId); + } } }else{ log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄"); -- Gitblit v1.8.0