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