Browse Source

1、计测、累计、状态三种设备的【设备状态】列,直接返回111后缀的值,不解析

2、状态设备的【状态】列,使用85设备的数据和映射关系进行解析
master
review512jwy@163.com 2 weeks ago
parent
commit
f59e6cec51
  1. 2
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml
  2. 2
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java
  3. 26
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java
  4. 7
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java
  5. 9
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java
  6. 7
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java

2
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
<include refid="deviceDataFromAndJoin"/>
left join ba_status_statistics bss on bss.device_info_id = device_info.id

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

26
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java

@ -474,7 +474,7 @@ public class CommonOpt {
}
public Map<String, DeviceInfo> queryDeviceInfo111Map(List<String> deviceIdList111) {
public Map<String, DeviceInfo> queryDeviceInfoMap(List<String> deviceIdList111) {
if (CollectionUtils.isEmpty(deviceIdList111)) {
return Collections.emptyMap();
}
@ -492,13 +492,13 @@ public class CommonOpt {
));
}
public Map<String, DeviceRawdataRealtime> queryRealtime111Map(List<String> deviceIdList111) {
if (CollectionUtils.isEmpty(deviceIdList111)) {
public Map<String, DeviceRawdataRealtime> queryRealtimeMap(List<String> 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<String, String> deviceId85To111Map,
Map<String, DeviceRawdataRealtime> realtime111Map, ObjectMapper mapper) {
return Optional.ofNullable(deviceId85To111Map.get(deviceId))
.map(realtime111Map::get)
.map(DeviceRawdataRealtime::getRawData)
.map(data -> extractFirstValue(mapper, data))
.orElse(null);
}
}

7
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<String> deviceIdList_111 = deviceId85To111Map.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111);
Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111);
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111);
// Map<String, DeviceInfo> 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);

9
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<String> deviceIdList_111 = deviceId85To111Map.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111);
Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111);
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111);
Map<String, DeviceRawdataRealtime> realtime85Map = commonOpt.queryRealtimeMap(deviceIds);
// Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111);
// 查询 favorited_device 表中所有设备的 device_id
List<String> 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);

7
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<String> deviceIdList_111 = deviceId85To111Map.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111);
Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111);
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111);
// Map<String, DeviceInfo> 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);

Loading…
Cancel
Save