diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/dto/DataVDTO.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/dto/DataVDTO.java index 6e9ea81..bf36dc3 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/dto/DataVDTO.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/dto/DataVDTO.java @@ -23,6 +23,7 @@ public class DataVDTO { @JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) private LocalDateTime timeid; + private String devId; private String lineid; private String phasicType; private Double rms; diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java index b9f54a7..572771c 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.util.CollectionUtils; import java.time.LocalDateTime; import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -84,16 +85,18 @@ public class LnDataDealServiceImpl implements LnDataDealService { //更新mysqldevice表最新数据时间 if(!CollectionUtils.isEmpty(lnDataDTO.getDataVList())){ - DataVDTO dataVDTO =lnDataDTO.getDataVList().stream().max(Comparator.comparing(DataVDTO::getTimeid)).get(); + List lineIdList = lnDataDTO.getDataVList().stream().map(DataVDTO::getLineid).distinct().collect(Collectors.toList()); List data = lineFeignClient.getAllLine(lineIdList).getData(); - //获取所有设备id并去重 - List devIds = data.stream().map(temp -> { - return temp.getPids().split(",")[4]; - }).distinct().collect(Collectors.toList()); - - devIds.forEach(temp->{ + Map map = data.stream().collect(Collectors.toMap(LineDeviceStateVO::getId, temp -> temp.getPids().split(",")[4])); + lnDataDTO.getDataVList().forEach(temp->{ + temp.setDevId(map.get(temp.getLineid())); + }); + Map> collect = lnDataDTO.getDataVList().stream().collect(Collectors.groupingBy(DataVDTO::getDevId)); + collect.forEach((temp,dataVDTOList)->{ PqsCommunicateDto pqsCommunicateDto = new PqsCommunicateDto(); + DataVDTO dataVDTO =dataVDTOList.stream().max(Comparator.comparing(DataVDTO::getTimeid)).get(); + pqsCommunicateDto.setTime(LocalDateTimeUtil.format(dataVDTO.getTimeid(), DatePattern.NORM_DATETIME_PATTERN)); pqsCommunicateDto.setDevId(temp); pqsCommunicateDto.setType(1);