From 619c05e965c7d071eaaa956b86f34357f5e6724d Mon Sep 17 00:00:00 2001 From: zq Date: Mon, 26 Jan 2026 16:46:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B6=88=E9=98=B2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ems/service/impl/DeviceDataProcessServiceImpl.java | 6 +++--- .../xzzn/ems/service/impl/EmsDeviceSettingServiceImpl.java | 7 ++++--- .../com/xzzn/ems/service/impl/SingleSiteServiceImpl.java | 5 +++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/DeviceDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/DeviceDataProcessServiceImpl.java index 4ba6573..6663e82 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/DeviceDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/DeviceDataProcessServiceImpl.java @@ -407,7 +407,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i String status = dataStack.getWorkStatus(); int result = 5; - if (status != null && !status.trim().isEmpty()) { + if (status != null && !status.trim().isEmpty() && status.contains("null")) { // 1.0 -> 1, 2.0 -> 2 result = (int) Double.parseDouble(status.trim()); } @@ -863,7 +863,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i //TODO 临时解决上送数据为浮点的问题 start String status = pcsData.getWorkStatus(); int result = 0; - if (status != null && !status.trim().isEmpty()) { + if (status != null && !status.trim().isEmpty() && status.contains("null")) { // 1.0 -> 1, 2.0 -> 2 result = (int) Double.parseDouble(status.trim()); } @@ -1003,7 +1003,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i log.info("临时解决上送数据为浮点的问题"); String status = data.getWorkStatus(); int result = 5; - if (status != null && !status.trim().isEmpty()) { + if (status != null && !status.trim().isEmpty() && status.contains("null")) { // 1.0 -> 1, 2.0 -> 2 result = (int) Double.parseDouble(status.trim()); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsDeviceSettingServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsDeviceSettingServiceImpl.java index 9893842..b9f1ab0 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsDeviceSettingServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsDeviceSettingServiceImpl.java @@ -220,6 +220,8 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService } String deviceFromMqtt = mqttJson.get("Device").toString(); String jsonData = mqttJson.get("Data").toString(); + Long updateTime = mqttJson.getLong("timestamp"); + Date latestUpdateTime = DateUtils.convertUpdateTime(updateTime); if (StringUtils.isEmpty(jsonData) || !deviceId.equals(deviceFromMqtt)) { return response; } @@ -233,8 +235,6 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService pointInfo.setDataPoint(dataKey); } pointInfo.setPointValue(obj.get(dataKey)); - Long updateTime = Long.valueOf(mqttJson.get("timestamp").toString()); - Date latestUpdateTime = convertUpdateTime(updateTime); pointInfo.setUpdateTime(latestUpdateTime); } } @@ -274,7 +274,8 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService PointQueryResponse::getPointValue, EmsDeviceSettingServiceImpl::compareMultiType); } else {// 默认按updateTime排序 - comparator = Comparator.comparing(PointQueryResponse::getUpdateTime); + comparator = Comparator.comparing(PointQueryResponse::getUpdateTime, + Comparator.nullsLast(Comparator.naturalOrder())); } // 排序方式 String sortMethod = request.getSortMethod(); diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java index 78201a6..fc22bff 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -52,6 +52,8 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -63,6 +65,8 @@ import org.springframework.util.CollectionUtils; @Service public class SingleSiteServiceImpl implements ISingleSiteService { + private static final Logger log = LoggerFactory.getLogger(SingleSiteServiceImpl.class); + private static final String CLUSTER_DATA_TEP = "温度"; private static final String CLUSTER_DATA_VOLTAGE = "电压"; @@ -877,6 +881,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService { // 从redis取堆单个详细数据 String xfDeviceId = xfDevice.get("id").toString(); EmsXfData xfData = redisCache.getCacheObject(RedisKeyConstants.XF + siteId + "_" + xfDeviceId); + log.info("查询消防数据xfDataVo:{}", xfDataVo); if (xfData != null) { BeanUtils.copyProperties(xfData, xfDataVo); xfDataVo.setDataUpdateTime(xfData.getDataTimestamp());