From 8e944cfabb253fc2556588e308e282586043f7b0 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 18 十一月 2025 22:09:56 +0800
Subject: [PATCH] 即时消息时间出现负数的问题修改

---
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/RealTimeDataService.java |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/RealTimeDataService.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/RealTimeDataService.java
index 046662b..80d774f 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/RealTimeDataService.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/RealTimeDataService.java
@@ -2,6 +2,9 @@
 
 import java.util.Map;
 
+import com.qianwen.smartman.modules.mdc.mapper.StateMapper;
+import com.qianwen.smartman.modules.mdc.vo.StateVO;
+import com.qianwen.smartman.modules.mdc.vo.StatusRecordVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +21,9 @@
     private static final Logger log = LoggerFactory.getLogger(RealTimeDataService.class);
     @Autowired
     private SuperProcessParameterMapper processParamMapper;
+
+	@Autowired
+	private StateMapper stateMapper;
     
     public final String statusDpName = "DeviceStatus";
     /**
@@ -34,11 +40,13 @@
         	statusJson.put("t", statusDTO.getT());
         	statusJson.put("v", statusDTO.getV());
         	
-        	//瀛樺湪闂锛孌eviceStastus,DeviceStatus_n浼氬嚑涔庡悓鏃惰繃鏉�
+        	//瀛樺湪闂锛孌eviceStatus,DeviceStatus_n浼氬嚑涔庡悓鏃惰繃鏉�
         	long preT = statusDTO.getT();
         	//鏈�鍚庝竴鏉′笉鍚屽��(v)鐨勬暟鎹�
+
+			/*
         	ProcessParameterVO diffStatusVO = processParamMapper.lastParameterNotEqValue(workstationId, statusDpName, statusDTO.getV());
-        	
+
         	ProcessParameterVO tempStatusVO; 
         	if(diffStatusVO != null) {
         		tempStatusVO = processParamMapper.firstParameterEqValueGtTime(workstationId, statusDpName, statusDTO.getV(), diffStatusVO.getTime().getTime());
@@ -47,7 +55,20 @@
         	}
         	if(tempStatusVO != null) {
         		preT = tempStatusVO.getTime().getTime();
-        	}
+        	}*/
+			Integer val = Integer.parseInt(statusDTO.getV());
+
+			//StateVO diffStatusVO = stateMapper.lastStateNotEqValue(workstationId,val);
+			StateVO diffStatusVO = stateMapper.lastStateNotEqValueLtTime(workstationId,val,statusDTO.getT());
+			StateVO tempStatusVO;
+			if(diffStatusVO != null) {
+				tempStatusVO = stateMapper.firstStateEqValueGtTime(workstationId, val, diffStatusVO.getTime());
+			}else {
+				tempStatusVO = stateMapper.firstStateEqValue(workstationId, val);
+			}
+			if(tempStatusVO != null) {
+				preT = tempStatusVO.getTime();
+			}
         	statusJson.put("preT", preT);
         	//statusJson.put("t", System.currentTimeMillis());//鏃堕棿鏀逛负褰撳墠)
         	map.put(statusDpName, statusJson);//瑕嗙洊鍘熸潵鐨凞eviceStatus

--
Gitblit v1.9.3