|
@@ -267,9 +267,24 @@ public class IotMaintenanceBomController {
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
// 查询正常的累计运行时长 公里数 时需要 携带 设备分类id 方便快速定位 累计属性值
|
|
// 查询正常的累计运行时长 公里数 时需要 携带 设备分类id 方便快速定位 累计属性值
|
|
|
-
|
|
|
|
|
|
|
+ // 相同设备如果都包含 totalRuntime totalMileage 则返回1个对象
|
|
|
Map<Long, IotDeviceRunLogRespVO> deviceRunLogMap = iotDeviceRunLogService.getDeviceRunLogMapAlone(convertListByFlatMap(BOMs,
|
|
Map<Long, IotDeviceRunLogRespVO> deviceRunLogMap = iotDeviceRunLogService.getDeviceRunLogMapAlone(convertListByFlatMap(BOMs,
|
|
|
bom -> Stream.of(bom.getDeviceId())), new ArrayList<>(deviceCategoryIds), deviceCategoryPair);
|
|
bom -> Stream.of(bom.getDeviceId())), new ArrayList<>(deviceCategoryIds), deviceCategoryPair);
|
|
|
|
|
+ // 没有产生运行记录的单累计属性 返回前端 0 deviceAttrsPair单属性属性集合
|
|
|
|
|
+ if (CollUtil.isNotEmpty(deviceAttrsPair)) {
|
|
|
|
|
+ deviceAttrsPair.forEach((deviceId, attrs) -> {
|
|
|
|
|
+ if (!deviceRunLogMap.containsKey(deviceId)) {
|
|
|
|
|
+ // 当前设备没有产生运行记录数据
|
|
|
|
|
+ attrs.forEach(attr -> {
|
|
|
|
|
+ IotDeviceRunLogRespVO runLog = new IotDeviceRunLogRespVO();
|
|
|
|
|
+ runLog.setTotalRunTime(BigDecimal.ZERO);
|
|
|
|
|
+ runLog.setTotalMileage(BigDecimal.ZERO);
|
|
|
|
|
+ runLog.setPointName(attr.getName());
|
|
|
|
|
+ deviceRunLogMap.put(deviceId, runLog);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
// 2. 转换成 VO
|
|
// 2. 转换成 VO
|
|
|
return BeanUtils.toBean(BOMs, IotMaintenanceBomRespVO.class, bomVO -> {
|
|
return BeanUtils.toBean(BOMs, IotMaintenanceBomRespVO.class, bomVO -> {
|
|
|
// 设置设备相关信息
|
|
// 设置设备相关信息
|
|
@@ -302,7 +317,7 @@ public class IotMaintenanceBomController {
|
|
|
bomVO.setTempTotalMileage(tempTotalRunDataPair.get(uniqueKey));
|
|
bomVO.setTempTotalMileage(tempTotalRunDataPair.get(uniqueKey));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- // 如果多累计时长 公里数属性 没有运行记录填报数据,只返回 属性名称集合
|
|
|
|
|
|
|
+ // 如果多累计时长 公里数属性 没有运行记录填报数据,且运行记录模板中 属性标识符没有配置 累计时长 累计公里数 只返回 属性名称集合
|
|
|
if (deviceRunLogPair.containsKey(bomVO.getDeviceId())) {
|
|
if (deviceRunLogPair.containsKey(bomVO.getDeviceId())) {
|
|
|
// 设置每个保养项对应的 多个累计类型属性集合 包含属性的运行记录值
|
|
// 设置每个保养项对应的 多个累计类型属性集合 包含属性的运行记录值
|
|
|
// 区分开 时间 里程 的累计属性列表 便于前端选择
|
|
// 区分开 时间 里程 的累计属性列表 便于前端选择
|
|
@@ -321,7 +336,7 @@ public class IotMaintenanceBomController {
|
|
|
// 如果多累计属性没有运行记录填报值 则直接返回 名称 可以设置 累计运行时长 或 公里数 为 0
|
|
// 如果多累计属性没有运行记录填报值 则直接返回 名称 可以设置 累计运行时长 或 公里数 为 0
|
|
|
List<IotDeviceRunLogRespVO> mileageRunLogs = new ArrayList<>();
|
|
List<IotDeviceRunLogRespVO> mileageRunLogs = new ArrayList<>();
|
|
|
List<IotDeviceRunLogRespVO> timeRunLogs = new ArrayList<>();
|
|
List<IotDeviceRunLogRespVO> timeRunLogs = new ArrayList<>();
|
|
|
- if (deviceMultiAttrsPair.containsKey(bomVO.getDeviceId())) {
|
|
|
|
|
|
|
+ if (deviceMultiAttrsPair.containsKey(bomVO.getDeviceId()) && !deviceAttrsPair.containsKey(bomVO.getDeviceId())) {
|
|
|
List<String> attrNames = deviceMultiAttrsPair.get(bomVO.getDeviceId());
|
|
List<String> attrNames = deviceMultiAttrsPair.get(bomVO.getDeviceId());
|
|
|
attrNames.forEach(attrName -> {
|
|
attrNames.forEach(attrName -> {
|
|
|
IotDeviceRunLogRespVO tempRunLog = new IotDeviceRunLogRespVO();
|
|
IotDeviceRunLogRespVO tempRunLog = new IotDeviceRunLogRespVO();
|