From f59e6cec514cf3b79f5eb16ae2495f80cafcbc0c Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Mon, 29 Dec 2025 10:24:24 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=AE=A1=E6=B5=8B=E3=80=81=E7=B4=AF?= =?UTF-8?q?=E8=AE=A1=E3=80=81=E7=8A=B6=E6=80=81=E4=B8=89=E7=A7=8D=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E7=9A=84=E3=80=90=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E3=80=91=E5=88=97=EF=BC=8C=E7=9B=B4=E6=8E=A5=E8=BF=94=E5=9B=9E?= =?UTF-8?q?111=E5=90=8E=E7=BC=80=E7=9A=84=E5=80=BC=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=202=E3=80=81=E7=8A=B6=E6=80=81=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E7=9A=84=E3=80=90=E7=8A=B6=E6=80=81=E3=80=91=E5=88=97?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A885=E8=AE=BE=E5=A4=87=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=92=8C=E6=98=A0=E5=B0=84=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mappers/ex/DeviceInfoMapperExt.xml | 2 +- .../back/vo/data/DeviceBaStatusData.java | 2 +- .../back/service/common/CommonOpt.java | 26 ++++++++++++------- .../impl/DeviceDataAccumulateServiceImpl.java | 7 ++--- .../impl/DeviceDataBaStatusServiceImpl.java | 9 ++++--- .../impl/DeviceDataMeasureServiceImpl.java | 7 ++--- 6 files changed, 33 insertions(+), 20 deletions(-) diff --git a/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml b/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml index e3b970e..01e6ef7 100644 --- a/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml +++ b/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml @@ -198,7 +198,7 @@ bss.continuous_running_time, bss.last_start_time, bss.last_stop_time, - bss.is_running runningStatus, +# bss.is_running runningStatus, 4 as classId left join ba_status_statistics bss on bss.device_info_id = device_info.id diff --git a/dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java b/dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java index 72680ce..8d5b992 100644 --- a/dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java +++ b/dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java @@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode; public class DeviceBaStatusData extends BaseData{ @Schema(description = "running status: 0-停止, 1-运行", example = "1") - private Integer runningStatus; + private String runningStatus; @Schema(description = "last start time", example = "1720000000000") private Long lastStartTime; diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java index 8685b98..de4ffb3 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java @@ -474,7 +474,7 @@ public class CommonOpt { } - public Map queryDeviceInfo111Map(List deviceIdList111) { + public Map queryDeviceInfoMap(List deviceIdList111) { if (CollectionUtils.isEmpty(deviceIdList111)) { return Collections.emptyMap(); } @@ -492,13 +492,13 @@ public class CommonOpt { )); } - public Map queryRealtime111Map(List deviceIdList111) { - if (CollectionUtils.isEmpty(deviceIdList111)) { + public Map queryRealtimeMap(List deviceIdList) { + if (CollectionUtils.isEmpty(deviceIdList)) { return Collections.emptyMap(); } DeviceRawdataRealtimeExample example = new DeviceRawdataRealtimeExample(); - example.createCriteria().andDeviceIdIn(deviceIdList111); + example.createCriteria().andDeviceIdIn(deviceIdList); return deviceRawdataRealtimeMapperExt .selectByExampleWithBLOBs(example) @@ -527,18 +527,18 @@ public class CommonOpt { .map(DeviceInfo::getDataMapping) .orElse(null); - return mapStatus111(objectMapper, dataMapping111, realtime111); + return mapFirstValue(objectMapper, dataMapping111, realtime111); } - public String mapStatus111(ObjectMapper mapper, + public String mapFirstValue(ObjectMapper mapper, String dataMapping, - DeviceRawdataRealtime realtime111) { - if (StringUtils.isBlank(dataMapping) || realtime111 == null) { + DeviceRawdataRealtime deviceRawdataRealtime) { + if (StringUtils.isBlank(dataMapping) || deviceRawdataRealtime == null) { return null; } try { - String statusValue = extractFirstValue(mapper, realtime111.getRawData()); + String statusValue = extractFirstValue(mapper, deviceRawdataRealtime.getRawData()); JsonNode root = mapper.readTree(dataMapping); return root.path("default").path(statusValue).asText(null); } catch (Exception e) { @@ -548,4 +548,12 @@ public class CommonOpt { } + public String buildRawFirstValue(String deviceId, Map deviceId85To111Map, + Map realtime111Map, ObjectMapper mapper) { + return Optional.ofNullable(deviceId85To111Map.get(deviceId)) + .map(realtime111Map::get) + .map(DeviceRawdataRealtime::getRawData) + .map(data -> extractFirstValue(mapper, data)) + .orElse(null); + } } diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java index 72d937f..6971924 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java @@ -109,8 +109,8 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ List deviceIdList_111 = deviceId85To111Map.values() .stream() .toList(); - Map realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111); - Map deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111); + Map realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111); +// Map deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111); LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Tokyo")); LocalDate today = now.toLocalDate(); @@ -136,7 +136,8 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ data.setLastYearValue(getIncrement(lastYearMap.get(deviceId), DeviceIncrement::getLastYearIncrement)); //处理111状态映射 - data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); +// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); + data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper)); // favorited 判断 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0); diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java index 8307d87..bf44951 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java @@ -102,8 +102,9 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService List deviceIdList_111 = deviceId85To111Map.values() .stream() .toList(); - Map realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111); - Map deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111); + Map realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111); + Map realtime85Map = commonOpt.queryRealtimeMap(deviceIds); +// Map deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111); // 查询 favorited_device 表中所有设备的 device_id List favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds(); @@ -113,7 +114,9 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(data.getContinuousRunningTime())); //处理111状态映射 - data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); +// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); + data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper)); + data.setRunningStatus(commonOpt.mapFirstValue(objectMapper, data.getDataMapping(), realtime85Map.get(deviceId))); // 判断设备是否在 favorited_device 表中 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0); diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java index 34676dd..2a50e4b 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java @@ -113,8 +113,8 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService { List deviceIdList_111 = deviceId85To111Map.values() .stream() .toList(); - Map realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111); - Map deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111); + Map realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111); +// Map deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111); ZoneId tokyoZone = ZoneId.of("Asia/Tokyo"); LocalDate tokyoToday = LocalDate.now(tokyoZone); @@ -178,7 +178,8 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService { } //处理111状态映射 - data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); +// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); + data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper)); // 收藏状态 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);