yangys
2025-11-05 10c5247722995e571b3fd4dbffb178964a9bd6ee
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;
@@ -19,6 +22,9 @@
    @Autowired
    private SuperProcessParameterMapper processParamMapper;
    
   @Autowired
   private StateMapper stateMapper;
    public final String statusDpName = "DeviceStatus";
    /**
     * 为设备状态增加当前状态的最早时间preT
@@ -34,9 +40,11 @@
           statusJson.put("t", statusDTO.getT());
           statusJson.put("v", statusDTO.getV());
           
           //存在问题,DeviceStastus,DeviceStatus_n会几乎同时过来
           //存在问题,DeviceStatus,DeviceStatus_n会几乎同时过来
           long preT = statusDTO.getT();
           //最后一条不同值(v)的数据
         /*
           ProcessParameterVO diffStatusVO = processParamMapper.lastParameterNotEqValue(workstationId, statusDpName, statusDTO.getV());
           
           ProcessParameterVO tempStatusVO; 
@@ -47,6 +55,18 @@
           }
           if(tempStatusVO != null) {
              preT = tempStatusVO.getTime().getTime();
           }*/
         Integer val = Integer.parseInt(statusDTO.getV());
         StateVO diffStatusVO = stateMapper.lastStateNotEqValue(workstationId,val);
         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());//时间改为当前)