diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/DeviceMessageServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/DeviceMessageServiceImpl.java index cb18f42..6314f3f 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/DeviceMessageServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/DeviceMessageServiceImpl.java @@ -103,6 +103,8 @@ class DeviceMessageServiceImpl implements DeviceMessageService { map.put(1,item.getLineId()); } else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){ map.put(2,item.getLineId()); + } else { + map.put(item.getClDid(),item.getLineId()); } } } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java index 1ecd82f..5611de5 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java @@ -62,6 +62,13 @@ public class EventDetailVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS",timezone = "GMT+8") private LocalDateTime startTime; + /** + * 事件时间 不带毫秒 + */ + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime startTime2; + /** * 事件类型 */ diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java index a5fd0d8..b2cdcc3 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java @@ -459,7 +459,7 @@ public class CsEventPOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(RmpEventDetailPO::getEventId,id); RmpEventDetailPO po2 = wlRmpEventDetailMapper.selectOne(wrapper); - po2.setWavePath(po2.getWavePath()); + po2.setWavePath(po.getWavePath()); po2.setFileFlag(1); int row = wlRmpEventDetailMapper.updateById(po2); if (row > 0) { diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java index 48a6e4c..1315785 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java @@ -46,6 +46,8 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -350,6 +352,9 @@ public class CsEventUserPOServiceImpl extends ServiceImpl ids = returnpage.getRecords().stream().map(EventDetailVO::getId).collect(Collectors.toList()); List userEvents = this.queryEventListByUserId(RequestUtil.getUserIndex(),ids); returnpage.getRecords().forEach(temp -> { + if (!Objects.equals(csEventUserQueryPage.getType(),"0")) { + temp.setStartTime2(temp.getStartTime()); + } //台账信息 DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData(); temp.setEquipmentName(devDetail.getEquipmentName()); diff --git a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java index 014401f..a5942d8 100644 --- a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java +++ b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java @@ -549,57 +549,115 @@ public class DataTaskServiceImpl implements IDataTaskService { Map> deviceCommMap = pqsCommunicates.stream() .collect(Collectors.groupingBy(PqsCommunicate::getDevId)); +// deviceCommMap.forEach((devId, commList) -> { +// // 按时间排序 +// commList.sort(Comparator.comparing(PqsCommunicate::getTime)); +// +// List offlinePeriods = new ArrayList<>(); +// String offlineStartTime = null; +// String offlineEndTime = null; +// +// if (commList.size() == 1) { +// // 只有一条数据的情况 +// PqsCommunicate singleRecord = commList.get(0); +// if (singleRecord.getType() == 0) { +// // 掉线:从掉线时间到 24 点 +// offlineStartTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()); +// offlineEndTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 23:59:59"; +// } else { +// // 上线:从 0 点到上线时间 +// offlineStartTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 00:00:00"; +// offlineEndTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()); +// } +// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); +// } else { +// // 多条数据的情况 +// for (int i = 0; i < commList.size(); i++) { +// PqsCommunicate current = commList.get(i); +// +// if (current.getType() == 0) { +// // 掉线记录 +// if (offlineStartTime == null) { +// offlineStartTime = DATE_TIME_FORMATTER.format(current.getTime()); +// } +// // 如果是最后一条记录,结束时间为 24 点 +// if (i == commList.size() - 1) { +// offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 23:59:59"; +// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); +// } +// } else { +// // 上线记录 +// if (offlineStartTime != null) { +// // 有对应的掉线记录,形成完整时间段 +// offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime()); +// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); +// offlineStartTime = null; +// offlineEndTime = null; +// } else { +// // 没有对应的掉线记录,说明是从 0 点开始掉线 +// offlineStartTime = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 00:00:00"; +// offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime());; +// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); +// } +// } +// } +// } +// if (CollUtil.isNotEmpty(offlinePeriods)) { +// result.put(devId, offlinePeriods); +// } +// }); deviceCommMap.forEach((devId, commList) -> { // 按时间排序 commList.sort(Comparator.comparing(PqsCommunicate::getTime)); List offlinePeriods = new ArrayList<>(); String offlineStartTime = null; - String offlineEndTime = null; if (commList.size() == 1) { // 只有一条数据的情况 PqsCommunicate singleRecord = commList.get(0); if (singleRecord.getType() == 0) { // 掉线:从掉线时间到 24 点 - offlineStartTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()); - offlineEndTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 23:59:59"; + String startTime1 = DATE_TIME_FORMATTER.format(singleRecord.getTime()); + String endTime1 = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 23:59:59"; + offlinePeriods.add(startTime1 + " ~ " + endTime1); } else { // 上线:从 0 点到上线时间 - offlineStartTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 00:00:00"; - offlineEndTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()); + String startTime1 = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 00:00:00"; + String endTime1 = DATE_TIME_FORMATTER.format(singleRecord.getTime()); + offlinePeriods.add(startTime1 + " ~ " + endTime1); } - offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); } else { - // 多条数据的情况 + // 多条数据的情况:遍历每相邻两条记录 for (int i = 0; i < commList.size(); i++) { PqsCommunicate current = commList.get(i); if (current.getType() == 0) { - // 掉线记录 + // 掉线记录:开始计时 if (offlineStartTime == null) { offlineStartTime = DATE_TIME_FORMATTER.format(current.getTime()); } - // 如果是最后一条记录,结束时间为 24 点 - if (i == commList.size() - 1) { - offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 23:59:59"; - offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); - } } else { - // 上线记录 + // 上线记录:结算离线时段 if (offlineStartTime != null) { - // 有对应的掉线记录,形成完整时间段 - offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime()); + // 有未结算的离线时段,进行结算 + String offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime()); offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); offlineStartTime = null; - offlineEndTime = null; } else { - // 没有对应的掉线记录,说明是从 0 点开始掉线 - offlineStartTime = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 00:00:00"; - offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime());; - offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime); + // 没有对应的掉线记录,说明是从 0 点开始掉线到当前上线时间 + String startTime1 = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 00:00:00"; + String endTime1 = DATE_TIME_FORMATTER.format(current.getTime()); + offlinePeriods.add(startTime1 + " ~ " + endTime1); } } + + // 如果是最后一条记录且仍在离线状态,结算到 24 点 + if (i == commList.size() - 1 && offlineStartTime != null) { + String endTime1 = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 23:59:59"; + offlinePeriods.add(offlineStartTime + " ~ " + endTime1); + offlineStartTime = null; + } } } if (CollUtil.isNotEmpty(offlinePeriods)) {