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 3e20449..dcb3613 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 @@ -200,6 +200,7 @@ bss.continuous_running_time, bss.last_start_time, bss.last_stop_time, + bss.latest_ts, # bss.is_running runningStatus, 4 as classId @@ -221,7 +222,8 @@ bss.continuous_running_time, bss.last_start_time, bss.last_stop_time, - bss.is_running runningStatus, + bss.latest_ts, +# bss.is_running runningStatus, 4 as classId left join dashboard_device_group_relation ddgr on ddgr.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 dfdaa29..e94be6f 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 @@ -29,4 +29,7 @@ public class DeviceBaStatusData extends BaseData{ @Schema(description = "stop/running: 0-停止, 1-运行", example = "1") private Integer stopRun; + @Schema(description = "last stop time", example = "1720000000000", hidden = true) + private String latestTs; + } 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 e0a38df..027626b 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 @@ -135,12 +135,12 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService // 查询 favorited_device 表中所有设备的 device_id List favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds(); + + long currentTs = System.currentTimeMillis(); for (DeviceBaStatusData data : resultList){ String deviceId = data.getDeviceId().toLowerCase(); String sDeviceId = deviceId85ToSMap.get(deviceId); - data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(data.getContinuousRunningTime())); - //处理111状态映射 // data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper)); @@ -159,6 +159,13 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService } else { data.setStopRun(commonOpt.judgeStopRun(objectMapper, realtime85Map.get(deviceId))); } + + if (0 == data.getStopRun()) { + data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(data.getContinuousRunningTime())); + } else if (StringUtils.isNotBlank(data.getLatestTs()) && currentTs >= Long.parseLong(data.getLatestTs())) { + long diff = currentTs - Long.parseLong(data.getLatestTs()); + data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(diff)); + } } }