1.谐波统计bug修改

This commit is contained in:
wr
2023-09-19 11:01:48 +08:00
parent e0ac80822a
commit 7da60259b6
3 changed files with 159 additions and 154 deletions

View File

@@ -25,15 +25,16 @@ public class AreaDTO {
/** /**
* 平均超标天数 * 平均超标天数
*/ */
private Double averageOverDay = 0.0; private Double averageOverDay = 3.14159;
/** /**
* 符合性占比 * 符合性占比
*/ */
private Double ratio = 0.0; private Double ratio = 3.14159;
/** /**
* 监测点超标占比 * 监测点超标占比
*/ */
private Double lineRatio = 0.0; private Double lineRatio = 3.14159;
} }

View File

@@ -33,17 +33,17 @@ public class HarmonicDeptVO implements Serializable {
private Integer overLineCount = 0; private Integer overLineCount = 0;
@ApiModelProperty("符合性占比") @ApiModelProperty("符合性占比")
private Double ratio = -1.0; private Double ratio = 3.14159;
/** /**
* 监测点超标占比 * 监测点超标占比
*/ */
@ApiModelProperty("监测点超标占比") @ApiModelProperty("监测点超标占比")
private Double lineRatio; private Double lineRatio = 3.14159;
/** /**
* 平均超标天数 * 平均超标天数
*/ */
@ApiModelProperty("平均超标天数") @ApiModelProperty("平均超标天数")
private Double averageOverDay = -1.0; private Double averageOverDay = 3.14159;
} }

View File

@@ -57,6 +57,7 @@ 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,38 +65,38 @@ 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 -> {
if (!CollectionUtils.isEmpty(dept.getSubIndexes())){ if (!CollectionUtils.isEmpty(dept.getSubIndexes())) {
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()+"\n("+dept.getLineIndexes().size()+")"); pollutionVO.setName(dept.getName() + "\n(" + dept.getLineIndexes().size() + ")");
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);
@@ -104,25 +105,21 @@ public class HarmonicServiceImpl implements IHarmonicService {
//监测点id //监测点id
List<String> lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList()); List<String> lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList()); List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
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())) {
double tem = childrenList.stream().mapToDouble(PollutionVO::getData).average().orElse(3.14159); double tem = childrenList.stream().mapToDouble(PollutionVO::getData).average().orElse(3.14159);
pollutionVO.setData(tem == 3.14159||tem<0?3.14159:NumberUtil.round(tem,2).doubleValue()); pollutionVO.setData(tem == 3.14159 || tem < 0 ? 3.14159 : NumberUtil.round(tem, 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;
@@ -140,28 +137,33 @@ 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();
if (!CollectionUtils.isEmpty(lineList)){ if (!CollectionUtils.isEmpty(lineList)) {
HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO(); HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO();
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.setId(item.getIndex());
harmonicDeptVO.setName(item.getName()); harmonicDeptVO.setName(item.getName());
list.add(harmonicDeptVO); list.add(harmonicDeptVO);
} }
}); });
if (!CollectionUtils.isEmpty(list)){ if (!CollectionUtils.isEmpty(list)) {
return list.stream().sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList()); List<HarmonicDeptVO> collect = list.stream().filter(x->x.getRatio()!=3.14159&&x.getOnlineCount()!=0&&x.getOverLineCount()!=0)
.sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
List<String> ids = collect.stream().map(HarmonicDeptVO::getId).collect(Collectors.toList());
collect.addAll(list.stream().filter(x->!ids.contains(x.getId()))
.collect(Collectors.toList()));
return collect;
} }
return list; return list;
} }
@@ -171,32 +173,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;
@@ -207,33 +209,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;
@@ -245,38 +247,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)))
@@ -284,24 +286,26 @@ public class HarmonicServiceImpl implements IHarmonicService {
); );
return limitRates; return limitRates;
} }
/** /**
* 功能描述: 获取limitTarget数据 * 功能描述: 获取limitTarget数据
* @param lineList 部门列表 *
* @param startTime 开始时间 * @param lineList 部门列表
* @param endTime 结束时间 * @param startTime 开始时间
* @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());
@@ -388,7 +392,7 @@ public class HarmonicServiceImpl implements IHarmonicService {
listInfo.add(limitRatePO); listInfo.add(limitRatePO);
}); });
} }
return listInfo; return listInfo;
} }
@@ -414,19 +418,19 @@ 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)){
@@ -435,42 +439,39 @@ public class HarmonicServiceImpl implements IHarmonicService {
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?0:BigDecimal.valueOf(ratio*100/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); ratio = map.size() == 0?0:BigDecimal.valueOf(ratio*100.0/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));
//月监测点超标占比 //月监测点超标占比
double lineRatio = onlineCount==0?0:BigDecimal.valueOf(overLineCount*100/onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); double lineRatio = onlineCount==0?0:BigDecimal.valueOf(overLineCount*100.0/onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
areaDTO.setLineRatio(Math.min(lineRatio,100.0)); areaDTO.setLineRatio(Math.min(lineRatio,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();
@@ -478,96 +479,99 @@ 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));
//月监测点超标占比 //月监测点超标占比
double lineRatio = onlineCount==0?0:BigDecimal.valueOf(overLineCount*100/onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); double lineRatio = onlineCount == 0 ? 0 : BigDecimal.valueOf(overLineCount * 100 / onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
areaDTO.setLineRatio(Math.min(lineRatio,100.0)); areaDTO.setLineRatio(Math.min(lineRatio, 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){
return targetDMapper.getSumI(list,startTime,endTime); private List<RStatLimitTargetDPO> getAllDataI(List<String> list, String startTime, String endTime) {
return targetDMapper.getSumI(list, startTime, endTime);
} }
/** /**
* 功能描述: 获取告警频次 * 功能描述: 获取告警频次
* @author xy *
* @param lineList 监测点id * @param lineList 监测点id
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @param type 类型 * @param type 类型
* @date 2022/4/24 16:47
* @return * @return
* @author xy
* @date 2022/4/24 16:47
*/ */
private Integer getWarningInfo(List<String> lineList, String startTime, String endTime, String type) { private Integer getWarningInfo(List<String> lineList, String startTime, String endTime, String type) {
Integer result = 0; Integer result = 0;
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) {
Integer sumAddV = targetDMapper.getSumAddV(lineList, startTime, endTime); Integer sumAddV = targetDMapper.getSumAddV(lineList, startTime, endTime);
if(ObjectUtil.isNotNull(sumAddV)){ if (ObjectUtil.isNotNull(sumAddV)) {
result=sumAddV; result = sumAddV;
}else{ } else {
result=-1; result = -1;
} }
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) {
Integer sumAddI = targetDMapper.getSumAddI(lineList, startTime, endTime); Integer sumAddI = targetDMapper.getSumAddI(lineList, startTime, endTime);
if(ObjectUtil.isNotNull(sumAddI)){ if (ObjectUtil.isNotNull(sumAddI)) {
result=sumAddI; result = sumAddI;
}else{ } else {
result=-1; result = -1;
} }
} }
@@ -575,30 +579,30 @@ public class HarmonicServiceImpl implements IHarmonicService {
} }
/** /**
* 功能描述: 获取监测点超标天数 * 功能描述: 获取监测点超标天数
* @author xy *
* @param lineList 监测点id * @param lineList 监测点id
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @param type 类型 * @param type 类型
* @date 2022/4/24 16:47
* @return * @return
* @author xy
* @date 2022/4/24 16:47
*/ */
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.getSumI(lineList, startTime, endTime); sum = targetDMapper.getSumI(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());
@@ -683,17 +687,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());
@@ -701,11 +705,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.getUAberranceOverTime()+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.getUAberranceOverTime() + 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());
@@ -713,9 +717,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);