diff --git a/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java b/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java index d1527ff..0fe2070 100644 --- a/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java +++ b/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java @@ -20,6 +20,13 @@ import com.os.ems.record.service.IEmsRecordSteamInstantService; */ @Service public class EmsRecordSteamInstantServiceImpl implements IEmsRecordSteamInstantService { + + //沈阳博泰(monitor_code为E0003_0017)的大于50度小于130度的温度数据都加上80度 + private static final String YANG_BOTAI_MONITOR_CODE = "E0003_0017"; + private static final BigDecimal YANG_BOTAI_MIN_TEMPERATURE = BigDecimal.valueOf(50); + private static final BigDecimal YANG_BOTAI_MAX_TEMPERATURE = BigDecimal.valueOf(130); + private static final BigDecimal YANG_BOTAI_TEMPERATURE_OFFSET = BigDecimal.valueOf(80); + @Autowired private EmsRecordSteamInstantMapper emsRecordSteamInstantMapper; @@ -42,7 +49,10 @@ public class EmsRecordSteamInstantServiceImpl implements IEmsRecordSteamInstantS */ @Override public List selectEmsRecordSteamInstantList(EmsRecordSteamInstant emsRecordSteamInstant) { - return emsRecordSteamInstantMapper.selectEmsRecordSteamInstantList(emsRecordSteamInstant); + List steamInstantList = emsRecordSteamInstantMapper + .selectEmsRecordSteamInstantList(emsRecordSteamInstant); + steamInstantList.forEach(this::adjustYangBotaiTemperature); + return steamInstantList; } /** @@ -119,6 +129,7 @@ public class EmsRecordSteamInstantServiceImpl implements IEmsRecordSteamInstantS emsRecordSteamInstants = emsRecordSteamInstantMapper .selectEmsRecordLatestSteamInstantListByMonitorCode(emsRecordSteamInstant).subList(0, 1); } + emsRecordSteamInstants.forEach(this::adjustYangBotaiTemperature); //返回查询结果 return emsRecordSteamInstants; } @@ -134,4 +145,23 @@ public class EmsRecordSteamInstantServiceImpl implements IEmsRecordSteamInstantS return emsRecordSteamInstantMapper.selectEmsRecordSteamInstantListByTime(emsRecordSteamInstant); } + private void adjustYangBotaiTemperature(EmsRecordSteamInstant steamInstant) + { + if (steamInstant == null || steamInstant.getTemperature() == null) + { + return; + } + if (!YANG_BOTAI_MONITOR_CODE.equals(steamInstant.getMonitorCode())) + { + return; + } + BigDecimal temperature = steamInstant.getTemperature(); + if (temperature.compareTo(YANG_BOTAI_MIN_TEMPERATURE) > 0 + && temperature.compareTo(YANG_BOTAI_MAX_TEMPERATURE) < 0) + { + // 沈阳博泰该测点温度存在固定偏移,仅在查询返回时补偿 80 度,避免改写原始实时采集数据。 + steamInstant.setTemperature(temperature.add(YANG_BOTAI_TEMPERATURE_OFFSET)); + } + } + }