修改装置最新时间逻辑

This commit is contained in:
hzj
2026-05-11 08:46:43 +08:00
parent f6d8fe73f7
commit 88e0d71718
2 changed files with 11 additions and 7 deletions

View File

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

View File

@@ -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<String> lineIdList = lnDataDTO.getDataVList().stream().map(DataVDTO::getLineid).distinct().collect(Collectors.toList());
List<LineDeviceStateVO> data = lineFeignClient.getAllLine(lineIdList).getData();
//获取所有设备id并去重
List<String> devIds = data.stream().map(temp -> {
return temp.getPids().split(",")[4];
}).distinct().collect(Collectors.toList());
devIds.forEach(temp->{
Map<String, String> map = data.stream().collect(Collectors.toMap(LineDeviceStateVO::getId, temp -> temp.getPids().split(",")[4]));
lnDataDTO.getDataVList().forEach(temp->{
temp.setDevId(map.get(temp.getLineid()));
});
Map<String, List<DataVDTO>> 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);