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);