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