From eaca4ca8681eb9c3486f1ddebe99756d5ab36505 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 31 七月 2025 14:09:17 +0800
Subject: [PATCH] 优化代码
---
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