谐波监测:畸变率异常bug

This commit is contained in:
wr
2023-04-24 15:28:07 +08:00
parent 04bd5d47c4
commit 28a5c8e73e
2 changed files with 156 additions and 159 deletions

View File

@@ -56,7 +56,6 @@ public class HarmonicServiceImpl implements IHarmonicService {
private final LineFeignClient lineFeignClient; private final LineFeignClient lineFeignClient;
private final RStatLimitTargetDMapper targetDMapper; private final RStatLimitTargetDMapper targetDMapper;
@Override @Override
public List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) { public List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) {
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName()); harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
@@ -64,37 +63,37 @@ public class HarmonicServiceImpl implements IHarmonicService {
List<String> lineList = new ArrayList<>(); List<String> lineList = new ArrayList<>();
List<PollutionLineDTO> lineInfo = new ArrayList<>(); List<PollutionLineDTO> lineInfo = new ArrayList<>();
PollutionParamDTO paramDTO = new PollutionParamDTO(); PollutionParamDTO paramDTO = new PollutionParamDTO();
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
return list; return list;
} }
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData(); List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
deptList.forEach(dept -> { deptList.forEach(dept->{
lineList.addAll(dept.getLineIndexes()); lineList.addAll(dept.getLineIndexes());
}); });
if (!CollectionUtils.isEmpty(lineList)) { if (!CollectionUtils.isEmpty(lineList)){
paramDTO.setLineList(lineList); paramDTO.setLineList(lineList);
lineInfo = lineFeignClient.getLineInfo(paramDTO).getData(); lineInfo = lineFeignClient.getLineInfo(paramDTO).getData();
} }
Map<String, List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId)); Map<String,List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
//获取所有的数据信息 //获取所有的数据信息
List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
//聚合查询 //聚合查询
List<RStatLimitTargetDPO> allData = new ArrayList<>(); List<RStatLimitTargetDPO> allData = new ArrayList<>();
if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())){
allData = getAllDataV(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); allData = getAllDataV(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
} else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())){
allData = getAllDataI(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); allData = getAllDataI(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
} }
List<RStatLimitTargetDPO> finalAllData = allData; List<RStatLimitTargetDPO> finalAllData = allData;
deptList.forEach(dept -> { deptList.forEach(dept->{
List<PollutionVO> childrenList = new ArrayList<>(); List<PollutionVO> childrenList = new ArrayList<>();
PollutionVO pollutionVO = new PollutionVO(); PollutionVO pollutionVO = new PollutionVO();
pollutionVO.setId(dept.getIndex()); pollutionVO.setId(dept.getIndex());
pollutionVO.setName(dept.getName()); pollutionVO.setName(dept.getName());
if (!CollectionUtils.isEmpty(dept.getSubIndexes())) { if (!CollectionUtils.isEmpty(dept.getSubIndexes())){
dept.getSubIndexes().forEach(sub -> { dept.getSubIndexes().forEach(sub->{
List<PollutionLineDTO> l1 = map.get(sub); List<PollutionLineDTO> l1 = map.get(sub);
PollutionVO children = new PollutionVO(); PollutionVO children = new PollutionVO();
children.setId(sub); children.setId(sub);
@@ -106,20 +105,20 @@ public class HarmonicServiceImpl implements IHarmonicService {
List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList()); List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
children.setData(handleDataNew(collect, sumList, harmonicPublicParam.getStatisticalType().getCode()).getRatio()); children.setData(handleDataNew(collect,sumList,harmonicPublicParam.getStatisticalType().getCode()).getRatio());
childrenList.add(children); childrenList.add(children);
}); });
} }
if (!CollectionUtils.isEmpty(childrenList)) { if (!CollectionUtils.isEmpty(childrenList)){
pollutionVO.setChildren(childrenList.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList())); pollutionVO.setChildren(childrenList.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList()));
} }
if (!CollectionUtils.isEmpty(dept.getLineIndexes())) { if (!CollectionUtils.isEmpty(dept.getLineIndexes())){
// pollutionVO.setData(handleData(getLimitTarget(lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()),harmonicPublicParam.getStatisticalType().getCode(),lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()).getRatio()); // pollutionVO.setData(handleData(getLimitTarget(lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()),harmonicPublicParam.getStatisticalType().getCode(),lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()).getRatio());
pollutionVO.setData(NumberUtil.round(childrenList.stream().mapToDouble(PollutionVO::getData).average().orElse(3.14159), 2).doubleValue()); pollutionVO.setData(NumberUtil.round(childrenList.stream().mapToDouble(PollutionVO::getData).average().orElse(3.14159),2).doubleValue());
} }
list.add(pollutionVO); list.add(pollutionVO);
}); });
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
return list.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList()); return list.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList());
} }
return list; return list;
@@ -137,34 +136,34 @@ public class HarmonicServiceImpl implements IHarmonicService {
List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(lineIds, param.getSearchBeginTime(), param.getSearchEndTime()); List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
//聚合查询 //聚合查询
List<RStatLimitTargetDPO> allData = new ArrayList<>(); List<RStatLimitTargetDPO> allData = new ArrayList<>();
if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())){
allData = getAllDataV(lineIds, param.getSearchBeginTime(), param.getSearchEndTime()); allData = getAllDataV(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
} else if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())){
allData = getAllDataI(lineIds, param.getSearchBeginTime(), param.getSearchEndTime()); allData = getAllDataI(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
} }
List<RStatLimitTargetDPO> finalAllData = allData; List<RStatLimitTargetDPO> finalAllData = allData;
deptList.forEach(item -> { deptList.forEach(item->{
List<String> lineList = item.getLineIndexes(); List<String> lineList = item.getLineIndexes();
HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO(); HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO();
if (!CollectionUtils.isEmpty(lineList)) { if (!CollectionUtils.isEmpty(lineList)){
List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList()); List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList());
List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList()); List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList());
AreaDTO areaDTO = handleDataNew(collect, sumList, param.getStatisticalType().getCode()); AreaDTO areaDTO = handleDataNew(collect, sumList, param.getStatisticalType().getCode());
BeanUtil.copyProperties(areaDTO, harmonicDeptVO); BeanUtil.copyProperties(areaDTO,harmonicDeptVO);
}
harmonicDeptVO.setId(item.getIndex());
harmonicDeptVO.setName(item.getName());
list.add(harmonicDeptVO);
});
if (!CollectionUtils.isEmpty(list)) {
return list.stream().sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
} }
harmonicDeptVO.setId(item.getIndex());
harmonicDeptVO.setName(item.getName());
list.add(harmonicDeptVO);
});
if (!CollectionUtils.isEmpty(list)){
return list.stream().sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
}
return list; return list;
} }
@@ -173,32 +172,32 @@ public class HarmonicServiceImpl implements IHarmonicService {
param.setServerName(generalInfo.getMicroServiceName()); param.setServerName(generalInfo.getMicroServiceName());
List<HarmonicSubstationVO> list = new ArrayList<>(); List<HarmonicSubstationVO> list = new ArrayList<>();
List<GeneralDeviceDTO> subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData(); List<GeneralDeviceDTO> subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData();
subList.forEach(item -> { subList.forEach(item->{
HarmonicSubstationVO harmonicSubstationVO = new HarmonicSubstationVO(); HarmonicSubstationVO harmonicSubstationVO = new HarmonicSubstationVO();
harmonicSubstationVO.setId(item.getIndex()); harmonicSubstationVO.setId(item.getIndex());
harmonicSubstationVO.setName(item.getName()); harmonicSubstationVO.setName(item.getName());
List<String> lineList = item.getLineIndexes(); List<String> lineList = item.getLineIndexes();
if (!CollectionUtils.isEmpty(lineList)) { if (!CollectionUtils.isEmpty(lineList)){
AreaDTO areaDTO = handleData(getLimitTarget(lineList, param.getSearchBeginTime(), param.getSearchEndTime()), param.getStatisticalType().getCode(), lineList, param.getSearchBeginTime(), param.getSearchEndTime()); AreaDTO areaDTO = handleData(getLimitTarget(lineList, param.getSearchBeginTime(),param.getSearchEndTime()),param.getStatisticalType().getCode(),lineList, param.getSearchBeginTime(),param.getSearchEndTime());
BeanUtil.copyProperties(areaDTO, harmonicSubstationVO); BeanUtil.copyProperties(areaDTO,harmonicSubstationVO);
int result = getWarningInfo(lineList, param.getSearchBeginTime(), param.getSearchEndTime(), param.getStatisticalType().getCode()); int result = getWarningInfo(lineList, param.getSearchBeginTime(),param.getSearchEndTime(),param.getStatisticalType().getCode());
if (result == -1) { if (result == -1){
harmonicSubstationVO.setWarningFreq(-1.0); harmonicSubstationVO.setWarningFreq(-1.0);
} else { } else {
if (areaDTO.getOverLineCount() == 0) { if (areaDTO.getOverLineCount() == 0){
if (areaDTO.getOnlineCount() > 0) { if (areaDTO.getOnlineCount() > 0){
harmonicSubstationVO.setWarningFreq(0.0); harmonicSubstationVO.setWarningFreq(0.0);
} else { } else {
harmonicSubstationVO.setWarningFreq(-1.0); harmonicSubstationVO.setWarningFreq(-1.0);
} }
} else { } else {
harmonicSubstationVO.setWarningFreq(BigDecimal.valueOf(result * 1.0 / areaDTO.getOverLineCount()).setScale(2, RoundingMode.HALF_UP).doubleValue()); harmonicSubstationVO.setWarningFreq(BigDecimal.valueOf(result*1.0/areaDTO.getOverLineCount()).setScale(2, RoundingMode.HALF_UP).doubleValue());
} }
} }
} }
list.add(harmonicSubstationVO); list.add(harmonicSubstationVO);
}); });
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
return list.stream().sorted(Comparator.comparing(HarmonicSubstationVO::getRatio).reversed().thenComparing(HarmonicSubstationVO::getOnlineCount).thenComparing(HarmonicSubstationVO::getOverLineCount)).collect(Collectors.toList()); return list.stream().sorted(Comparator.comparing(HarmonicSubstationVO::getRatio).reversed().thenComparing(HarmonicSubstationVO::getOnlineCount).thenComparing(HarmonicSubstationVO::getOverLineCount)).collect(Collectors.toList());
} }
return list; return list;
@@ -209,33 +208,33 @@ public class HarmonicServiceImpl implements IHarmonicService {
param.setServerName(generalInfo.getMicroServiceName()); param.setServerName(generalInfo.getMicroServiceName());
List<HarmonicLineVO> list = new ArrayList<>(); List<HarmonicLineVO> list = new ArrayList<>();
List<String> line = new ArrayList<>(); List<String> line = new ArrayList<>();
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
return list; return list;
} }
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData(); List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData();
sub.forEach(item -> { sub.forEach(item->{
if (Objects.equals(param.getId(), item.getIndex())) { if (Objects.equals(param.getId(),item.getIndex())){
if (!CollectionUtils.isEmpty(item.getLineIndexes())) { if (!CollectionUtils.isEmpty(item.getLineIndexes())){
line.addAll(item.getLineIndexes()); line.addAll(item.getLineIndexes());
} }
} }
}); });
if (!CollectionUtils.isEmpty(line)) { if (!CollectionUtils.isEmpty(line)){
List<LimitTarget> limitTargetList = getLineOverDays(line, param.getSearchBeginTime(), param.getSearchEndTime(), param.getStatisticalType().getCode()); List<LimitTarget> limitTargetList = getLineOverDays(line,param.getSearchBeginTime(),param.getSearchEndTime(),param.getStatisticalType().getCode());
if (!CollectionUtils.isEmpty(limitTargetList)) { if (!CollectionUtils.isEmpty(limitTargetList)){
buildData(list, limitTargetList, param.getStatisticalType().getCode()); buildData(list,limitTargetList,param.getStatisticalType().getCode());
} }
} }
//获取监测点名称 //获取监测点名称
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
List<String> lineList = list.stream().map(HarmonicLineVO::getId).collect(Collectors.toList()); List<String> lineList = list.stream().map(HarmonicLineVO::getId).collect(Collectors.toList());
List<LineDeviceStateVO> lineDeviceStateVOList = lineFeignClient.getAllLine(lineList).getData(); List<LineDeviceStateVO> lineDeviceStateVOList = lineFeignClient.getAllLine(lineList).getData();
list.stream().map(item1 -> lineDeviceStateVOList.stream().filter(item2 -> Objects.equals(item1.getId(), item2.getId())).findAny().map(item3 -> { list.stream().map(item1->lineDeviceStateVOList.stream().filter(item2->Objects.equals(item1.getId(),item2.getId())).findAny().map(item3->{
item1.setName(item3.getName()); item1.setName(item3.getName());
return list; return list;
})).collect(Collectors.toList()); })).collect(Collectors.toList());
} }
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
return list.stream().sorted(Comparator.comparing(HarmonicLineVO::getOverDays).reversed()).collect(Collectors.toList()); return list.stream().sorted(Comparator.comparing(HarmonicLineVO::getOverDays).reversed()).collect(Collectors.toList());
} }
return list; return list;
@@ -247,38 +246,38 @@ public class HarmonicServiceImpl implements IHarmonicService {
param.setServerName(generalInfo.getMicroServiceName()); param.setServerName(generalInfo.getMicroServiceName());
List<HarmonicLineVO> list = new ArrayList<>(); List<HarmonicLineVO> list = new ArrayList<>();
List<String> lineList = new ArrayList<>(); List<String> lineList = new ArrayList<>();
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
return list; return list;
} }
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
deviceList.forEach(item -> { deviceList.forEach(item->{
if (!CollectionUtils.isEmpty(item.getLineIndexes())) { if (!CollectionUtils.isEmpty(item.getLineIndexes())){
lineList.addAll(item.getLineIndexes()); lineList.addAll(item.getLineIndexes());
} }
}); });
if (!CollectionUtils.isEmpty(lineList)) { if (!CollectionUtils.isEmpty(lineList)){
List<LimitTarget> limitTargetList = getLineOverDays(lineList, param.getSearchBeginTime(), param.getSearchEndTime(), param.getStatisticalType().getCode()); List<LimitTarget> limitTargetList = getLineOverDays(lineList,param.getSearchBeginTime(),param.getSearchEndTime(),param.getStatisticalType().getCode());
if (!CollectionUtils.isEmpty(limitTargetList)) { if (!CollectionUtils.isEmpty(limitTargetList)){
buildData(list, limitTargetList, param.getStatisticalType().getCode()); buildData(list,limitTargetList,param.getStatisticalType().getCode());
} }
} }
list.sort((item1, item2) -> item2.getOverDays().compareTo(item1.getOverDays())); list.sort((item1,item2)->item2.getOverDays().compareTo(item1.getOverDays()));
//获取监测点名称 //获取监测点名称
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
List<String> l1 = list.stream().map(HarmonicLineVO::getId).collect(Collectors.toList()); List<String> l1 = list.stream().map(HarmonicLineVO::getId).collect(Collectors.toList());
List<LineDeviceStateVO> lineDeviceStateVOList = lineFeignClient.getAllLine(l1).getData(); List<LineDeviceStateVO> lineDeviceStateVOList = lineFeignClient.getAllLine(l1).getData();
list.stream().map(item1 -> lineDeviceStateVOList.stream().filter(item2 -> Objects.equals(item1.getId(), item2.getId())).findAny().map(item3 -> { list.stream().map(item1->lineDeviceStateVOList.stream().filter(item2->Objects.equals(item1.getId(),item2.getId())).findAny().map(item3->{
item1.setName(item3.getName()); item1.setName(item3.getName());
return list; return list;
})).collect(Collectors.toList()); })).collect(Collectors.toList());
} }
if (list.size() > Param.UP_LIMIT) { if (list.size() > Param.UP_LIMIT){
return list.subList(Param.DOWN_LIMIT, Param.UP_LIMIT); return list.subList(Param.DOWN_LIMIT,Param.UP_LIMIT);
} }
return list; return list;
} }
public List<RStatLimitTargetDPO> getLimitTargetNew(List<String> lineList, String startTime, String endTime) { public List<RStatLimitTargetDPO> getLimitTargetNew(List<String> lineList, String startTime, String endTime){
List<RStatLimitTargetDPO> limitRates = targetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>() List<RStatLimitTargetDPO> limitRates = targetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
.in(RStatLimitTargetDPO::getLineId, lineList) .in(RStatLimitTargetDPO::getLineId, lineList)
.ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime))) .ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime)))
@@ -286,27 +285,25 @@ public class HarmonicServiceImpl implements IHarmonicService {
); );
return limitRates; return limitRates;
} }
/** /**
* 功能描述: 获取limitTarget数据 * 功能描述: 获取limitTarget数据
* * @param lineList 部门列表
* @param lineList 部门列表 * @param startTime 开始时间
* @param startTime 开始时间 * @param endTime 结束时间
* @param endTime 结束时间
* @return java.util.List<com.njcn.harmonic.pojo.dto.PublicDTO> * @return java.util.List<com.njcn.harmonic.pojo.dto.PublicDTO>
* @author xy * @author xy
* @date 2022/2/25 15:05 * @date 2022/2/25 15:05
*/ */
public List<LimitTarget> getLimitTarget(List<String> lineList, String startTime, String endTime) { public List<LimitTarget> getLimitTarget(List<String> lineList, String startTime, String endTime){
List<LimitTarget> listInfo = new ArrayList<>(); List<LimitTarget> listInfo = new ArrayList<>();
List<RStatLimitTargetDPO> limitRates = targetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>() List<RStatLimitTargetDPO> limitRates = targetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
.in(RStatLimitTargetDPO::getLineId, lineList) .in(RStatLimitTargetDPO::getLineId, lineList)
.ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime))) .ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime)))
.le(StrUtil.isNotBlank(endTime), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime))) .le(StrUtil.isNotBlank(endTime), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
); );
if (CollUtil.isNotEmpty(limitRates)) { if(CollUtil.isNotEmpty(limitRates)){
limitRates.forEach(list -> { limitRates.forEach(list ->{
LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class); LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class);
limitRatePO.setTime(list.getTime().toInstant()); limitRatePO.setTime(list.getTime().toInstant());
limitRatePO.setLineId(list.getLineId()); limitRatePO.setLineId(list.getLineId());
limitRatePO.setPhasicType(list.getPhasicType()); limitRatePO.setPhasicType(list.getPhasicType());
@@ -369,23 +366,23 @@ public class HarmonicServiceImpl implements IHarmonicService {
listInfo.add(limitRatePO); listInfo.add(limitRatePO);
}); });
} }
return listInfo; return listInfo;
} }
public AreaDTO handleDataNew(List<RStatLimitTargetDPO> list, List<RStatLimitTargetDPO> sumList, String type) { public AreaDTO handleDataNew(List<RStatLimitTargetDPO> list, List<RStatLimitTargetDPO> sumList,String type) {
int onlineCount = 0, overLineCount = 0, overCountByDay = 0; int onlineCount = 0,overLineCount = 0,overCountByDay = 0;
double avgOverDay = 0.0, ratio = 0.0; double avgOverDay = 0.0,ratio = 0.0;
AreaDTO areaDTO = new AreaDTO(); AreaDTO areaDTO = new AreaDTO();
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
List<RStatLimitTargetDPO> data = sumList; List<RStatLimitTargetDPO> data=sumList;
if (!CollectionUtils.isEmpty(sumList)) { if (!CollectionUtils.isEmpty(sumList)) {
onlineCount = data.size(); onlineCount = data.size();
//在线监测点个数 //在线监测点个数
areaDTO.setOnlineCount(onlineCount); areaDTO.setOnlineCount(onlineCount);
//超标监测点数 //超标监测点数
for (RStatLimitTargetDPO pojo : data) { for (RStatLimitTargetDPO pojo : data) {
if (pojo.getAllTime() > 0) { if (pojo.getAllTime()>0){
overLineCount = overLineCount + 1; overLineCount = overLineCount + 1;
} }
} }
@@ -396,57 +393,60 @@ public class HarmonicServiceImpl implements IHarmonicService {
int overDay = 0; int overDay = 0;
List<RStatLimitTargetDPO> l = map.get(key); List<RStatLimitTargetDPO> l = map.get(key);
for (RStatLimitTargetDPO pojo : l) { for (RStatLimitTargetDPO pojo : l) {
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
if (pojo.getUaberranceOvertime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm3Overtime() > 0 || pojo.getUharm4Overtime() > 0 || pojo.getUharm5Overtime() > 0 || pojo.getUharm6Overtime() > 0 || pojo.getUharm7Overtime() > 0 || pojo.getUharm8Overtime() > 0 || pojo.getUharm9Overtime() > 0 || pojo.getUharm10Overtime() > 0 || pojo.getUharm11Overtime() > 0 || pojo.getUharm12Overtime() > 0 || pojo.getUharm13Overtime() > 0 || pojo.getUharm14Overtime() > 0 || pojo.getUharm15Overtime() > 0 || pojo.getUharm16Overtime() > 0 || pojo.getUharm17Overtime() > 0 || pojo.getUharm18Overtime() > 0 || pojo.getUharm19Overtime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm21Overtime() > 0 || pojo.getUharm22Overtime() > 0 || pojo.getUharm23Overtime() > 0 || pojo.getUharm24Overtime() > 0 || pojo.getUharm25Overtime() > 0) { if (pojo.getUaberranceOvertime()>0 || pojo.getUharm20Overtime()>0 || pojo.getUharm3Overtime()>0 || pojo.getUharm4Overtime()>0 || pojo.getUharm5Overtime()>0 || pojo.getUharm6Overtime()>0 || pojo.getUharm7Overtime()>0 || pojo.getUharm8Overtime()>0 || pojo.getUharm9Overtime()>0 || pojo.getUharm10Overtime()>0 || pojo.getUharm11Overtime()>0 || pojo.getUharm12Overtime()>0 || pojo.getUharm13Overtime()>0 || pojo.getUharm14Overtime()>0 || pojo.getUharm15Overtime()>0 || pojo.getUharm16Overtime()>0 || pojo.getUharm17Overtime()>0 || pojo.getUharm18Overtime()>0 || pojo.getUharm19Overtime()>0 || pojo.getUharm20Overtime()>0 || pojo.getUharm21Overtime()>0 || pojo.getUharm22Overtime()>0 || pojo.getUharm23Overtime()>0 || pojo.getUharm24Overtime()>0 || pojo.getUharm25Overtime()>0){
overCountByDay = overCountByDay + 1; overCountByDay = overCountByDay + 1;
overDay = overDay + 1; overDay = overDay + 1;
} }
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
if (pojo.getIharm2Overtime() > 0 || pojo.getIharm3Overtime() > 0 || pojo.getIharm4Overtime() > 0 || pojo.getIharm5Overtime() > 0 || pojo.getIharm6Overtime() > 0 || pojo.getIharm7Overtime() > 0 || pojo.getIharm8Overtime() > 0 || pojo.getIharm9Overtime() > 0 || pojo.getIharm10Overtime() > 0 || pojo.getIharm11Overtime() > 0 || pojo.getIharm12Overtime() > 0 || pojo.getIharm13Overtime() > 0 || pojo.getIharm14Overtime() > 0 || pojo.getIharm15Overtime() > 0 || pojo.getIharm16Overtime() > 0 || pojo.getIharm17Overtime() > 0 || pojo.getIharm18Overtime() > 0 || pojo.getIharm19Overtime() > 0 || pojo.getIharm20Overtime() > 0 || pojo.getIharm21Overtime() > 0 || pojo.getIharm22Overtime() > 0 || pojo.getIharm23Overtime() > 0 || pojo.getIharm24Overtime() > 0 || pojo.getIharm25Overtime() > 0) { if (pojo.getIharm2Overtime()>0 || pojo.getIharm3Overtime()>0 || pojo.getIharm4Overtime()>0 || pojo.getIharm5Overtime()>0 || pojo.getIharm6Overtime()>0 || pojo.getIharm7Overtime()>0 || pojo.getIharm8Overtime()>0 || pojo.getIharm9Overtime()>0 || pojo.getIharm10Overtime()>0 || pojo.getIharm11Overtime()>0 || pojo.getIharm12Overtime()>0 || pojo.getIharm13Overtime()>0 || pojo.getIharm14Overtime()>0 || pojo.getIharm15Overtime()>0 || pojo.getIharm16Overtime()>0 || pojo.getIharm17Overtime()>0 || pojo.getIharm18Overtime()>0 || pojo.getIharm19Overtime()>0 || pojo.getIharm20Overtime()>0 || pojo.getIharm21Overtime()>0 || pojo.getIharm22Overtime()>0 || pojo.getIharm23Overtime()>0 || pojo.getIharm24Overtime()>0 || pojo.getIharm25Overtime()>0){
overCountByDay = overCountByDay + 1; overCountByDay = overCountByDay + 1;
overDay = overDay + 1; overDay = overDay + 1;
} }
} }
} }
ratio = ratio + overDay * 1.0 / l.size(); ratio = ratio + overDay*1.0/l.size();
} }
//平均超标天数 //平均超标天数
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)){
avgOverDay = -1.0; avgOverDay = -1.0;
} else { } else {
avgOverDay = overLineCount == 0 ? 0.0 : BigDecimal.valueOf(overCountByDay * 1.0 / overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); avgOverDay = overLineCount == 0?0.0:BigDecimal.valueOf(overCountByDay*1.0/overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
} }
//月监测点超标占比 //月监测点超标占比
ratio = map.size() == 0 ? -1.0 : BigDecimal.valueOf(ratio * 100 / map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); ratio = map.size() == 0?-1.0:BigDecimal.valueOf(ratio*100/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue();
areaDTO.setOnlineCount(onlineCount); areaDTO.setOnlineCount(onlineCount);
areaDTO.setOverLineCount(overLineCount); areaDTO.setOverLineCount(overLineCount);
//平均超标天数 //平均超标天数
areaDTO.setAverageOverDay(avgOverDay); areaDTO.setAverageOverDay(avgOverDay);
areaDTO.setRatio(Math.min(ratio, 100.0)); areaDTO.setRatio(Math.min(ratio,100.0));
return areaDTO; return areaDTO;
} }
/**
* todo
/** todo
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比 * 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比
*
* @param list 集合 * @param list 集合
* type 类型 * type 类型
* @return * @return
* @author xy * @author xy
* @date 2022/2/25 15:05 * @date 2022/2/25 15:05
*/ */
public AreaDTO handleData(List<LimitTarget> list, String type, List<String> lineList, String startTime, String endTime) { public AreaDTO handleData(List<LimitTarget> list,String type,List<String> lineList,String startTime,String endTime) {
int onlineCount = 0, overLineCount = 0, overCountByDay = 0; int onlineCount = 0,overLineCount = 0,overCountByDay = 0;
double avgOverDay = 0.0, ratio = 0.0; double avgOverDay = 0.0,ratio = 0.0;
AreaDTO areaDTO = new AreaDTO(); AreaDTO areaDTO = new AreaDTO();
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)){
List<RStatLimitTargetDPO> data = new ArrayList<>(); List<RStatLimitTargetDPO> data = new ArrayList<>();
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
data = getAllDataV(lineList, startTime, endTime); data = getAllDataV(lineList,startTime,endTime);
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
data = getAllDataI(lineList, startTime, endTime); data = getAllDataI(lineList,startTime,endTime);
} }
if (!CollectionUtils.isEmpty(data)) { if (!CollectionUtils.isEmpty(data)) {
onlineCount = data.size(); onlineCount = data.size();
@@ -454,124 +454,121 @@ public class HarmonicServiceImpl implements IHarmonicService {
areaDTO.setOnlineCount(onlineCount); areaDTO.setOnlineCount(onlineCount);
//超标监测点数 //超标监测点数
for (RStatLimitTargetDPO pojo : data) { for (RStatLimitTargetDPO pojo : data) {
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
if (pojo.getAllTime() > 0) { if (pojo.getAllTime()>0){
overLineCount = overLineCount + 1; overLineCount = overLineCount + 1;
} }
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
if (pojo.getAllTime() > 0) { if (pojo.getAllTime()>0){
overLineCount = overLineCount + 1; overLineCount = overLineCount + 1;
} }
} }
} }
} }
} }
Map<Instant, List<LimitTarget>> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); Map<Instant,List<LimitTarget>> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime));
for (Instant key : map.keySet()) { for (Instant key : map.keySet()) {
int overDay = 0; int overDay = 0;
List<LimitTarget> l = map.get(key); List<LimitTarget> l = map.get(key);
for (LimitTarget pojo : l) { for (LimitTarget pojo : l) {
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
if (pojo.getUAberranceOverTime() > 0 || pojo.getUHarm2OverTime() > 0 || pojo.getUHarm3OverTime() > 0 || pojo.getUHarm4OverTime() > 0 || pojo.getUHarm5OverTime() > 0 || pojo.getUHarm6OverTime() > 0 || pojo.getUHarm7OverTime() > 0 || pojo.getUHarm8OverTime() > 0 || pojo.getUHarm9OverTime() > 0 || pojo.getUHarm10OverTime() > 0 || pojo.getUHarm11OverTime() > 0 || pojo.getUHarm12OverTime() > 0 || pojo.getUHarm13OverTime() > 0 || pojo.getUHarm14OverTime() > 0 || pojo.getUHarm15OverTime() > 0 || pojo.getUHarm16OverTime() > 0 || pojo.getUHarm17OverTime() > 0 || pojo.getUHarm18OverTime() > 0 || pojo.getUHarm19OverTime() > 0 || pojo.getUHarm20OverTime() > 0 || pojo.getUHarm21OverTime() > 0 || pojo.getUHarm22OverTime() > 0 || pojo.getUHarm23OverTime() > 0 || pojo.getUHarm24OverTime() > 0 || pojo.getUHarm25OverTime() > 0) { if (pojo.getUAberranceOverTime()>0 || pojo.getUHarm2OverTime()>0 || pojo.getUHarm3OverTime()>0 || pojo.getUHarm4OverTime()>0 || pojo.getUHarm5OverTime()>0 || pojo.getUHarm6OverTime()>0 || pojo.getUHarm7OverTime()>0 || pojo.getUHarm8OverTime()>0 || pojo.getUHarm9OverTime()>0 || pojo.getUHarm10OverTime()>0 || pojo.getUHarm11OverTime()>0 || pojo.getUHarm12OverTime()>0 || pojo.getUHarm13OverTime()>0 || pojo.getUHarm14OverTime()>0 || pojo.getUHarm15OverTime()>0 || pojo.getUHarm16OverTime()>0 || pojo.getUHarm17OverTime()>0 || pojo.getUHarm18OverTime()>0 || pojo.getUHarm19OverTime()>0 || pojo.getUHarm20OverTime()>0 || pojo.getUHarm21OverTime()>0 || pojo.getUHarm22OverTime()>0 || pojo.getUHarm23OverTime()>0 || pojo.getUHarm24OverTime()>0 || pojo.getUHarm25OverTime()>0){
overCountByDay = overCountByDay + 1; overCountByDay = overCountByDay + 1;
overDay = overDay + 1; overDay = overDay + 1;
} }
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
if (pojo.getIHarm2OverTime() > 0 || pojo.getIHarm3OverTime() > 0 || pojo.getIHarm4OverTime() > 0 || pojo.getIHarm5OverTime() > 0 || pojo.getIHarm6OverTime() > 0 || pojo.getIHarm7OverTime() > 0 || pojo.getIHarm8OverTime() > 0 || pojo.getIHarm9OverTime() > 0 || pojo.getIHarm10OverTime() > 0 || pojo.getIHarm11OverTime() > 0 || pojo.getIHarm12OverTime() > 0 || pojo.getIHarm13OverTime() > 0 || pojo.getIHarm14OverTime() > 0 || pojo.getIHarm15OverTime() > 0 || pojo.getIHarm16OverTime() > 0 || pojo.getIHarm17OverTime() > 0 || pojo.getIHarm18OverTime() > 0 || pojo.getIHarm19OverTime() > 0 || pojo.getIHarm20OverTime() > 0 || pojo.getIHarm21OverTime() > 0 || pojo.getIHarm22OverTime() > 0 || pojo.getIHarm23OverTime() > 0 || pojo.getIHarm24OverTime() > 0 || pojo.getIHarm25OverTime() > 0) { if (pojo.getIHarm2OverTime()>0 || pojo.getIHarm3OverTime()>0 || pojo.getIHarm4OverTime()>0 || pojo.getIHarm5OverTime()>0 || pojo.getIHarm6OverTime()>0 || pojo.getIHarm7OverTime()>0 || pojo.getIHarm8OverTime()>0 || pojo.getIHarm9OverTime()>0 || pojo.getIHarm10OverTime()>0 || pojo.getIHarm11OverTime()>0 || pojo.getIHarm12OverTime()>0 || pojo.getIHarm13OverTime()>0 || pojo.getIHarm14OverTime()>0 || pojo.getIHarm15OverTime()>0 || pojo.getIHarm16OverTime()>0 || pojo.getIHarm17OverTime()>0 || pojo.getIHarm18OverTime()>0 || pojo.getIHarm19OverTime()>0 || pojo.getIHarm20OverTime()>0 || pojo.getIHarm21OverTime()>0 || pojo.getIHarm22OverTime()>0 || pojo.getIHarm23OverTime()>0 || pojo.getIHarm24OverTime()>0 || pojo.getIHarm25OverTime()>0){
overCountByDay = overCountByDay + 1; overCountByDay = overCountByDay + 1;
overDay = overDay + 1; overDay = overDay + 1;
} }
} }
} }
ratio = ratio + overDay * 1.0 / l.size(); ratio = ratio + overDay*1.0/l.size();
} }
//平均超标天数 //平均超标天数
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)){
avgOverDay = -1.0; avgOverDay = -1.0;
} else { } else {
avgOverDay = overLineCount == 0 ? 0.0 : BigDecimal.valueOf(overCountByDay * 1.0 / overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); avgOverDay = overLineCount == 0?0.0:BigDecimal.valueOf(overCountByDay*1.0/overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
} }
//月监测点超标占比 //月监测点超标占比
ratio = map.size() == 0 ? -1.0 : BigDecimal.valueOf(ratio * 100 / map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); ratio = map.size() == 0?-1.0:BigDecimal.valueOf(ratio*100/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue();
areaDTO.setOnlineCount(onlineCount); areaDTO.setOnlineCount(onlineCount);
areaDTO.setOverLineCount(overLineCount); areaDTO.setOverLineCount(overLineCount);
areaDTO.setAverageOverDay(avgOverDay); areaDTO.setAverageOverDay(avgOverDay);
areaDTO.setRatio(Math.min(ratio, 100.0)); areaDTO.setRatio(Math.min(ratio,100.0));
return areaDTO; return areaDTO;
} }
/** /**
* 功能描述: 处理区域在线监测点数、超标监测点数 * 功能描述: 处理区域在线监测点数、超标监测点数
*
* @param list 集合 * @param list 集合
* @return * @return
* @author xy * @author xy
* @date 2022/2/25 15:05 * @date 2022/2/25 15:05
*/ */
private List<RStatLimitTargetDPO> getAllDataV(List<String> list, String startTime, String endTime) { private List<RStatLimitTargetDPO> getAllDataV(List<String> list, String startTime, String endTime){
return targetDMapper.getSumV(list, startTime, endTime); return targetDMapper.getSumV(list,startTime,endTime);
} }
private List<RStatLimitTargetDPO> getAllDataI(List<String> list, String startTime, String endTime){
private List<RStatLimitTargetDPO> getAllDataI(List<String> list, String startTime, String endTime) { return targetDMapper.getSumI(list,startTime,endTime);
return targetDMapper.getSumI(list, startTime, endTime);
} }
/** /**
* 功能描述: 获取告警频次 * 功能描述: 获取告警频次
*
* @param lineList 监测点id
* @param startTime 开始时间
* @param endTime 结束时间
* @param type 类型
* @return
* @author xy * @author xy
* @param lineList 监测点id
* @param startTime 开始时间
* @param endTime 结束时间
* @param type 类型
* @date 2022/4/24 16:47 * @date 2022/4/24 16:47
* @return
*/ */
private Integer getWarningInfo(List<String> lineList, String startTime, String endTime, String type) { private Integer getWarningInfo(List<String> lineList, String startTime, String endTime, String type) {
List<RStatLimitTargetDPO> sum = new ArrayList<>(); List<RStatLimitTargetDPO> sum=new ArrayList<>();
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
sum = targetDMapper.getSumV(lineList, startTime, endTime); sum = targetDMapper.getSumV(lineList, startTime, endTime);
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
sum = targetDMapper.getSumV(lineList, startTime, endTime); sum = targetDMapper.getSumV(lineList, startTime, endTime);
} }
int result = 0; int result = 0;
if (CollUtil.isNotEmpty(sum)) { if(CollUtil.isNotEmpty(sum)){
result = sum.get(0).getUharm2Overtime(); result=sum.get(0).getUharm2Overtime();
} else { }else{
result = -1; result=-1;
} }
return result; return result;
} }
/** /**
* 功能描述: 获取监测点超标天数 * 功能描述: 获取监测点超标天数
*
* @param lineList 监测点id
* @param startTime 开始时间
* @param endTime 结束时间
* @param type 类型
* @return
* @author xy * @author xy
* @param lineList 监测点id
* @param startTime 开始时间
* @param endTime 结束时间
* @param type 类型
* @date 2022/4/24 16:47 * @date 2022/4/24 16:47
* @return
*/ */
private List<LimitTarget> getLineOverDays(List<String> lineList, String startTime, String endTime, String type) { private List<LimitTarget> getLineOverDays(List<String> lineList, String startTime, String endTime, String type) {
List<LimitTarget> listInfo = new ArrayList<>(); List<LimitTarget> listInfo=new ArrayList<>();
List<RStatLimitTargetDPO> sum = new ArrayList<>(); List<RStatLimitTargetDPO> sum=new ArrayList<>();
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
sum = targetDMapper.getSumV(lineList, startTime, endTime); sum = targetDMapper.getSumV(lineList, startTime, endTime);
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
sum = targetDMapper.getSumV(lineList, startTime, endTime); sum = targetDMapper.getSumV(lineList, startTime, endTime);
} }
if (CollUtil.isNotEmpty(sum)) { if(CollUtil.isNotEmpty(sum)){
sum.forEach(list -> { sum.forEach(list ->{
LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class); LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class);
limitRatePO.setLineId(list.getLineId()); limitRatePO.setLineId(list.getLineId());
limitRatePO.setFlickerAllTime(list.getFlickerAllTime()); limitRatePO.setFlickerAllTime(list.getFlickerAllTime());
limitRatePO.setFlickerOverTime(list.getFlickerOvertime()); limitRatePO.setFlickerOverTime(list.getFlickerOvertime());
@@ -631,17 +628,17 @@ public class HarmonicServiceImpl implements IHarmonicService {
listInfo.add(limitRatePO); listInfo.add(limitRatePO);
}); });
} }
return listInfo; return listInfo;
} }
/** /**
* 数据组装 * 数据组装
*/ */
private void buildData(List<HarmonicLineVO> result, List<LimitTarget> list, String type) { private void buildData(List<HarmonicLineVO> result,List<LimitTarget> list, String type) {
list.forEach(item -> { list.forEach(item->{
HarmonicLineVO harmonicLineVO = new HarmonicLineVO(); HarmonicLineVO harmonicLineVO = new HarmonicLineVO();
harmonicLineVO.setId(item.getLineId()); harmonicLineVO.setId(item.getLineId());
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
harmonicLineVO.setOverThreeTimes(item.getUHarm3OverTime()); harmonicLineVO.setOverThreeTimes(item.getUHarm3OverTime());
harmonicLineVO.setOverFiveTimes(item.getUHarm5OverTime()); harmonicLineVO.setOverFiveTimes(item.getUHarm5OverTime());
harmonicLineVO.setOverSevenTimes(item.getUHarm7OverTime()); harmonicLineVO.setOverSevenTimes(item.getUHarm7OverTime());
@@ -649,11 +646,11 @@ public class HarmonicServiceImpl implements IHarmonicService {
harmonicLineVO.setOverThirteenTimes(item.getUHarm13OverTime()); harmonicLineVO.setOverThirteenTimes(item.getUHarm13OverTime());
harmonicLineVO.setOverTwentyThreeTimes(item.getUHarm23OverTime()); harmonicLineVO.setOverTwentyThreeTimes(item.getUHarm23OverTime());
harmonicLineVO.setOverTwentyFiveTimes(item.getUHarm25OverTime()); harmonicLineVO.setOverTwentyFiveTimes(item.getUHarm25OverTime());
int otherTimes = item.getUHarm2OverTime() + item.getUHarm4OverTime() + item.getUHarm6OverTime() + item.getUHarm8OverTime() + item.getUHarm9OverTime() + item.getUHarm10OverTime() + item.getUHarm12OverTime() + item.getUHarm14OverTime() + item.getUHarm15OverTime() + item.getUHarm16OverTime() + item.getUHarm17OverTime() + item.getUHarm18OverTime() + item.getUHarm19OverTime() + item.getUHarm20OverTime() + item.getUHarm21OverTime() + item.getUHarm22OverTime() + item.getUHarm24OverTime(); int otherTimes = item.getUHarm2OverTime()+item.getUHarm4OverTime()+item.getUHarm6OverTime()+item.getUHarm8OverTime()+item.getUHarm9OverTime()+item.getUHarm10OverTime()+item.getUHarm12OverTime()+item.getUHarm14OverTime()+item.getUHarm15OverTime()+item.getUHarm16OverTime()+item.getUHarm17OverTime()+item.getUHarm18OverTime()+item.getUHarm19OverTime()+item.getUHarm20OverTime()+item.getUHarm21OverTime()+item.getUHarm22OverTime()+item.getUHarm24OverTime();
harmonicLineVO.setOtherTimes(otherTimes); harmonicLineVO.setOtherTimes(otherTimes);
List<Integer> over = Stream.of(item.getUAberranceOverTime(), item.getUHarm2OverTime(), item.getUHarm3OverTime(), item.getUHarm4OverTime(), item.getUHarm5OverTime(), item.getUHarm6OverTime(), item.getUHarm7OverTime(), item.getUHarm8OverTime(), item.getUHarm9OverTime(), item.getUHarm10OverTime(), item.getUHarm11OverTime(), item.getUHarm12OverTime(), item.getUHarm13OverTime(), item.getUHarm14OverTime(), item.getUHarm15OverTime(), item.getUHarm16OverTime(), item.getUHarm17OverTime(), item.getUHarm18OverTime(), item.getUHarm19OverTime(), item.getUHarm20OverTime(), item.getUHarm21OverTime(), item.getUHarm22OverTime(), item.getUHarm23OverTime(), item.getUHarm24OverTime(), item.getUHarm25OverTime()).collect(Collectors.toList()); List<Integer> over = Stream.of(item.getUAberranceOverTime(),item.getUHarm2OverTime(),item.getUHarm3OverTime(),item.getUHarm4OverTime(),item.getUHarm5OverTime(),item.getUHarm6OverTime(),item.getUHarm7OverTime(),item.getUHarm8OverTime(),item.getUHarm9OverTime(),item.getUHarm10OverTime(),item.getUHarm11OverTime(),item.getUHarm12OverTime(),item.getUHarm13OverTime(),item.getUHarm14OverTime(),item.getUHarm15OverTime(),item.getUHarm16OverTime(),item.getUHarm17OverTime(),item.getUHarm18OverTime(),item.getUHarm19OverTime(),item.getUHarm20OverTime(),item.getUHarm21OverTime(),item.getUHarm22OverTime(),item.getUHarm23OverTime(),item.getUHarm24OverTime(),item.getUHarm25OverTime()).collect(Collectors.toList());
harmonicLineVO.setOverDays(Collections.max(over)); harmonicLineVO.setOverDays(Collections.max(over));
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
harmonicLineVO.setOverThreeTimes(item.getIHarm3OverTime()); harmonicLineVO.setOverThreeTimes(item.getIHarm3OverTime());
harmonicLineVO.setOverFiveTimes(item.getIHarm5OverTime()); harmonicLineVO.setOverFiveTimes(item.getIHarm5OverTime());
harmonicLineVO.setOverSevenTimes(item.getIHarm7OverTime()); harmonicLineVO.setOverSevenTimes(item.getIHarm7OverTime());
@@ -661,9 +658,9 @@ public class HarmonicServiceImpl implements IHarmonicService {
harmonicLineVO.setOverThirteenTimes(item.getIHarm13OverTime()); harmonicLineVO.setOverThirteenTimes(item.getIHarm13OverTime());
harmonicLineVO.setOverTwentyThreeTimes(item.getIHarm23OverTime()); harmonicLineVO.setOverTwentyThreeTimes(item.getIHarm23OverTime());
harmonicLineVO.setOverTwentyFiveTimes(item.getIHarm25OverTime()); harmonicLineVO.setOverTwentyFiveTimes(item.getIHarm25OverTime());
int otherTimes = item.getIHarm2OverTime() + item.getIHarm4OverTime() + item.getIHarm6OverTime() + item.getIHarm8OverTime() + item.getIHarm9OverTime() + item.getIHarm10OverTime() + item.getIHarm12OverTime() + item.getIHarm14OverTime() + item.getIHarm15OverTime() + item.getIHarm16OverTime() + item.getIHarm17OverTime() + item.getIHarm18OverTime() + item.getIHarm19OverTime() + item.getIHarm20OverTime() + item.getIHarm21OverTime() + item.getIHarm22OverTime() + item.getIHarm24OverTime(); int otherTimes = item.getIHarm2OverTime()+item.getIHarm4OverTime()+item.getIHarm6OverTime()+item.getIHarm8OverTime()+item.getIHarm9OverTime()+item.getIHarm10OverTime()+item.getIHarm12OverTime()+item.getIHarm14OverTime()+item.getIHarm15OverTime()+item.getIHarm16OverTime()+item.getIHarm17OverTime()+item.getIHarm18OverTime()+item.getIHarm19OverTime()+item.getIHarm20OverTime()+item.getIHarm21OverTime()+item.getIHarm22OverTime()+item.getIHarm24OverTime();
harmonicLineVO.setOtherTimes(otherTimes); harmonicLineVO.setOtherTimes(otherTimes);
List<Integer> over = Stream.of(item.getIHarm2OverTime(), item.getIHarm3OverTime(), item.getIHarm4OverTime(), item.getIHarm5OverTime(), item.getIHarm6OverTime(), item.getIHarm7OverTime(), item.getIHarm8OverTime(), item.getIHarm9OverTime(), item.getIHarm10OverTime(), item.getIHarm11OverTime(), item.getIHarm12OverTime(), item.getIHarm13OverTime(), item.getIHarm14OverTime(), item.getIHarm15OverTime(), item.getIHarm16OverTime(), item.getIHarm17OverTime(), item.getIHarm18OverTime(), item.getIHarm19OverTime(), item.getIHarm20OverTime(), item.getIHarm21OverTime(), item.getIHarm22OverTime(), item.getIHarm23OverTime(), item.getIHarm24OverTime(), item.getIHarm25OverTime()).collect(Collectors.toList()); List<Integer> over = Stream.of(item.getIHarm2OverTime(),item.getIHarm3OverTime(),item.getIHarm4OverTime(),item.getIHarm5OverTime(),item.getIHarm6OverTime(),item.getIHarm7OverTime(),item.getIHarm8OverTime(),item.getIHarm9OverTime(),item.getIHarm10OverTime(),item.getIHarm11OverTime(),item.getIHarm12OverTime(),item.getIHarm13OverTime(),item.getIHarm14OverTime(),item.getIHarm15OverTime(),item.getIHarm16OverTime(),item.getIHarm17OverTime(),item.getIHarm18OverTime(),item.getIHarm19OverTime(),item.getIHarm20OverTime(),item.getIHarm21OverTime(),item.getIHarm22OverTime(),item.getIHarm23OverTime(),item.getIHarm24OverTime(),item.getIHarm25OverTime()).collect(Collectors.toList());
harmonicLineVO.setOverDays(Collections.max(over)); harmonicLineVO.setOverDays(Collections.max(over));
} }
result.add(harmonicLineVO); result.add(harmonicLineVO);

View File

@@ -74,7 +74,7 @@ public class DistortionRateServiceImpl implements DistortionRateService {
private List<DataVPO> getDistortionRateInfluxDb(String lineId, String date) { private List<DataVPO> getDistortionRateInfluxDb(String lineId, String date) {
String processParam = " and line_id = '" + lineId + "' and time >= '" + date + " 00:00:00' and time <= '" + date + " 23:59:59' tz('Asia/Shanghai')"; String processParam = " and line_id = '" + lineId + "' and time >= '" + date + " 00:00:00' and time <= '" + date + " 23:59:59' tz('Asia/Shanghai')";
QueryResult result = influxDbUtils.query ("SELECT line_id, max(v_thd) as v_thd FROM data_v WHERE phasic_type != 'T' and value_type = 'MAX'" + processParam); QueryResult result = influxDbUtils.query ("SELECT line_id, max(v_thd) as v_thd FROM data_v WHERE phasic_type != 'T' and value_type = 'CP95'" + processParam);
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ); InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( );
return resultMapper.toPOJO (result, DataVPO.class); return resultMapper.toPOJO (result, DataVPO.class);
} }