1.调整稳态电能质量水平评估返回默认信息
This commit is contained in:
@@ -153,7 +153,7 @@ public class GridServiceImpl implements IGridService {
|
||||
List<String> ll = lineDetailMap.get(item.getArea()).stream().map(LineDetail::getId).collect(Collectors.toList());
|
||||
AssessDetailVo comAssess = getAssessData(item.getId(), item.getName(), ll, list1, list2, list3);
|
||||
result.add(comAssess);
|
||||
}else{
|
||||
} else {
|
||||
AssessVo assessVo = new AssessVo();
|
||||
assessVo.setName(item.getName());
|
||||
List<String> ll = lineDetailList.stream().map(LineDetail::getId).collect(Collectors.toList());
|
||||
@@ -343,40 +343,40 @@ public class GridServiceImpl implements IGridService {
|
||||
EvaluationLevelVo vo5 = new EvaluationLevelVo();
|
||||
vo5.setTargetName(DicDataEnum.FLICKER.getName());
|
||||
if (CollUtil.isNotEmpty(lineList)) {
|
||||
List<RStatDataVD> list1 = getList1(lineList,param.getStartTime(),param.getEndTime());
|
||||
List<RStatDataVD> list2 = getList2(lineList,param.getStartTime(),param.getEndTime());
|
||||
List<RStatDataVD> list3 = getList3(lineList,param.getStartTime(),param.getEndTime());
|
||||
List<RStatDataPltDPO> list4 = getList4(lineList,param.getStartTime(),param.getEndTime());
|
||||
List<RStatDataVD> list5 = getList5(lineList,param.getStartTime(),param.getEndTime());
|
||||
List<RStatDataVD> list1 = getList1(lineList, param.getStartTime(), param.getEndTime());
|
||||
List<RStatDataVD> list2 = getList2(lineList, param.getStartTime(), param.getEndTime());
|
||||
List<RStatDataVD> list3 = getList3(lineList, param.getStartTime(), param.getEndTime());
|
||||
List<RStatDataPltDPO> list4 = getList4(lineList, param.getStartTime(), param.getEndTime());
|
||||
List<RStatDataVD> list5 = getList5(lineList, param.getStartTime(), param.getEndTime());
|
||||
if (CollUtil.isNotEmpty(list1)) {
|
||||
List<Double> d = list1.stream().map(o->o.getFreqDev().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x->x));
|
||||
vo1.setAvg(PubUtils.doubleRound(2,avg));
|
||||
vo1.setSd(targetSd(d,avg));
|
||||
List<Double> d = list1.stream().map(o -> o.getFreqDev().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x -> x));
|
||||
vo1.setAvg(PubUtils.doubleRound(2, avg));
|
||||
vo1.setSd(targetSd(d, avg));
|
||||
}
|
||||
if (CollUtil.isNotEmpty(list2)) {
|
||||
List<Double> d = list2.stream().map(o->o.getVuDev().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x->x));
|
||||
vo2.setAvg(PubUtils.doubleRound(2,avg));
|
||||
vo2.setSd(targetSd(d,avg));
|
||||
List<Double> d = list2.stream().map(o -> o.getVuDev().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x -> x));
|
||||
vo2.setAvg(PubUtils.doubleRound(2, avg));
|
||||
vo2.setSd(targetSd(d, avg));
|
||||
}
|
||||
if (CollUtil.isNotEmpty(list3)){
|
||||
List<Double> d = list3.stream().map(o->o.getVThd().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x->x));
|
||||
vo3.setAvg(PubUtils.doubleRound(2,avg));
|
||||
vo3.setSd(targetSd(d,avg));
|
||||
if (CollUtil.isNotEmpty(list3)) {
|
||||
List<Double> d = list3.stream().map(o -> o.getVThd().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x -> x));
|
||||
vo3.setAvg(PubUtils.doubleRound(2, avg));
|
||||
vo3.setSd(targetSd(d, avg));
|
||||
}
|
||||
if (CollUtil.isNotEmpty(list5)) {
|
||||
List<Double> d = list1.stream().map(o -> o.getVUnbalance().doubleValue()).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x -> x));
|
||||
vo4.setAvg(PubUtils.doubleRound(2,avg));
|
||||
vo4.setSd(targetSd(d,avg));
|
||||
vo4.setAvg(PubUtils.doubleRound(2, avg));
|
||||
vo4.setSd(targetSd(d, avg));
|
||||
}
|
||||
if (CollUtil.isNotEmpty(list4)) {
|
||||
List<Double> d = list4.stream().map(RStatDataPltDPO::getPlt).collect(Collectors.toList());
|
||||
double avg = d.stream().collect(Collectors.averagingDouble(x -> x));
|
||||
vo5.setAvg(PubUtils.doubleRound(2,avg));
|
||||
vo5.setSd(targetSd(d,avg));
|
||||
vo5.setAvg(PubUtils.doubleRound(2, avg));
|
||||
vo5.setSd(targetSd(d, avg));
|
||||
}
|
||||
}
|
||||
Stream.of(vo1, vo2, vo3, vo4, vo5).forEach(result::add);
|
||||
@@ -429,9 +429,9 @@ public class GridServiceImpl implements IGridService {
|
||||
long plt = overLimitList.stream().filter(obj -> obj.getFlickerOvertime() > 0).count();
|
||||
|
||||
|
||||
long uHarm = overLimitList.stream().filter(x->getLimitRateStats(x,2,26,"uharm","Overtime")).count();
|
||||
long iHarm = overLimitList.stream().filter(x->getLimitRateStats(x,2,26,"iharm","Overtime")).count();
|
||||
long inuHarm = overLimitList.stream().filter(x->getLimitRateStats(x,1,16,"inuharm","Overtime")).count();
|
||||
long uHarm = overLimitList.stream().filter(x -> getLimitRateStats(x, 2, 26, "uharm", "Overtime")).count();
|
||||
long iHarm = overLimitList.stream().filter(x -> getLimitRateStats(x, 2, 26, "iharm", "Overtime")).count();
|
||||
long inuHarm = overLimitList.stream().filter(x -> getLimitRateStats(x, 1, 16, "inuharm", "Overtime")).count();
|
||||
long iNeg = overLimitList.stream().filter(obj -> obj.getINegOvertime() > 0).count();
|
||||
vo.setRatioList(Arrays.asList(PubUtils.doubleRound(2, freqDev * 100.0 / overLimitList.size()),
|
||||
PubUtils.doubleRound(2, vDev * 100.0 / overLimitList.size()),
|
||||
@@ -450,23 +450,22 @@ public class GridServiceImpl implements IGridService {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param limitRateDPO 对象
|
||||
* @param startNum 循环开始
|
||||
* @param endNum 循环结束
|
||||
* @param start 属性名开始
|
||||
* @param end 属性名结束
|
||||
* @param startNum 循环开始
|
||||
* @param endNum 循环结束
|
||||
* @param start 属性名开始
|
||||
* @param end 属性名结束
|
||||
* @return
|
||||
*/
|
||||
public Boolean getLimitRateStats(RStatLimitRateDPO limitRateDPO,Integer startNum,Integer endNum,String start,String end){
|
||||
public Boolean getLimitRateStats(RStatLimitRateDPO limitRateDPO, Integer startNum, Integer endNum, String start, String end) {
|
||||
try {
|
||||
for (int i = startNum; i < endNum; i++) {
|
||||
String fieldName = start+i+end;
|
||||
String fieldName = start + i + end;
|
||||
Field field = limitRateDPO.getClass().getDeclaredField(fieldName);
|
||||
//设置对象的访问权限,保证对private的属性的访问
|
||||
field.setAccessible(true);
|
||||
int v = Integer.parseInt(field.get(limitRateDPO).toString());
|
||||
if(v>0){
|
||||
if (v > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -477,8 +476,6 @@ public class GridServiceImpl implements IGridService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<EvaluationLevelVo.EvaluationDetail> getEvaluationDetail(AssessParam param) {
|
||||
List<EvaluationLevelVo.EvaluationDetail> result = new ArrayList<>();
|
||||
@@ -487,109 +484,128 @@ public class GridServiceImpl implements IGridService {
|
||||
deptGetLineParam.setLineRunFlag(0);
|
||||
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||
//获取监测点集合
|
||||
Map<String,List<String>> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null);
|
||||
Map<String, List<String>> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null);
|
||||
List<String> lineList = lineMap.values().stream()
|
||||
.flatMap(List::stream)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<RStatLimitTargetVO> overLimitList = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(lineList)) {
|
||||
//获取监测点越限集合
|
||||
List<RStatLimitTargetVO> overLimitList = rStatLimitTargetDMapper.getSumTargetDetails(lineList,
|
||||
param.getStartTime(),
|
||||
param.getEndTime());
|
||||
//获取部门
|
||||
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData();
|
||||
deptList.forEach(item->{
|
||||
if (lineMap.containsKey(item.getId())) {
|
||||
EvaluationLevelVo.EvaluationDetail detail = new EvaluationLevelVo.EvaluationDetail();
|
||||
detail.setDeptId(item.getId());
|
||||
detail.setDeptName(item.getName());
|
||||
if (CollUtil.isNotEmpty(lineMap.get(item.getId()))) {
|
||||
List<String> ll = lineMap.get(item.getId());
|
||||
detail.setOnlineNum(ll.size());
|
||||
//筛选当前部门下监测点的超标数据
|
||||
List<RStatLimitTargetVO> list2 = overLimitList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList());
|
||||
EvaluationLevelVo.TargetDetail detail1 = new EvaluationLevelVo.TargetDetail();
|
||||
detail1.setTargetName(DicDataEnum.FREQUENCY_DEV.getName());
|
||||
EvaluationLevelVo.TargetDetail detail2 = new EvaluationLevelVo.TargetDetail();
|
||||
detail2.setTargetName(DicDataEnum.VOLTAGE_DEV.getName());
|
||||
EvaluationLevelVo.TargetDetail detail3 = new EvaluationLevelVo.TargetDetail();
|
||||
detail3.setTargetName(DicDataEnum.THD_V.getName());
|
||||
EvaluationLevelVo.TargetDetail detail4 = new EvaluationLevelVo.TargetDetail();
|
||||
detail4.setTargetName(DicDataEnum.FLICKER.getName());
|
||||
EvaluationLevelVo.TargetDetail detail5 = new EvaluationLevelVo.TargetDetail();
|
||||
detail5.setTargetName(DicDataEnum.phase_Voltage.getName());
|
||||
EvaluationLevelVo.TargetDetail detail6 = new EvaluationLevelVo.TargetDetail();
|
||||
detail6.setTargetName(DicDataEnum.NEG_CURRENT.getName());
|
||||
EvaluationLevelVo.TargetDetail detail7 = new EvaluationLevelVo.TargetDetail();
|
||||
detail7.setTargetName(DicDataEnum.HARMONIC_CURRENT.getName());
|
||||
EvaluationLevelVo.TargetDetail detail8 = new EvaluationLevelVo.TargetDetail();
|
||||
detail8.setTargetName(DicDataEnum.HARMONIC_VOLTAGE.getName());
|
||||
EvaluationLevelVo.TargetDetail detail9 = new EvaluationLevelVo.TargetDetail();
|
||||
detail9.setTargetName(DicDataEnum.INTERHARMONIC_VOLTAGE.getName());
|
||||
if (CollUtil.isNotEmpty(list2)) {
|
||||
//筛选出9项指标(电压偏差、频率偏差、电压总谐波畸变率、电压闪变、三相电压不平衡度、负序电流、谐波电流、间谐波电压、谐波电压)超标监测点
|
||||
long allNum = list2.stream().filter(o->o.getAllOvertime() > 0|| o.getFlickerAllTime()>0).count();
|
||||
detail.setOverNum((int) allNum);
|
||||
detail.setOverRatio(PubUtils.doubleRound(2,detail.getOverNum()*100.0/detail.getOnlineNum()));
|
||||
//筛选出电压偏差超标监测点
|
||||
long num1 = list2.stream().filter(o->o.getFreqDevOvertime() > 0).count();
|
||||
Integer day1 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFreqDevOvertime)).get().getFreqDevOvertime();
|
||||
detail1.setOverNum((int) num1);
|
||||
detail1.setOverDay(day1);
|
||||
|
||||
//筛选出频率偏差超标监测点
|
||||
long num2 = list2.stream().filter(o->o.getVoltageDevOvertime() > 0).count();
|
||||
Integer day2 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getVoltageDevOvertime)).get().getVoltageDevOvertime();
|
||||
detail2.setOverNum((int) num2);
|
||||
detail2.setOverDay(day2);
|
||||
|
||||
//筛选出电压总谐波畸变率超标监测点
|
||||
long num3 = list2.stream().filter(o->o.getUaberranceOvertime() > 0).count();
|
||||
Integer day3 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUaberranceOvertime)).get().getUaberranceOvertime();
|
||||
detail3.setOverNum((int) num3);
|
||||
detail3.setOverDay(day3);
|
||||
|
||||
//筛选出电压闪变超标监测点
|
||||
long num4 = list2.stream().filter(o->o.getFlickerOvertime() > 0).count();
|
||||
Integer day4 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFlickerOvertime)).get().getFlickerOvertime();
|
||||
detail4.setOverNum((int) num4);
|
||||
detail4.setOverDay(day4);
|
||||
|
||||
//筛选出三相电压不平衡度超标监测点
|
||||
long num5 = list2.stream().filter(o->o.getUbalanceOvertime() > 0).count();
|
||||
Integer day5 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUbalanceOvertime)).get().getUbalanceOvertime();
|
||||
detail5.setOverNum((int) num5);
|
||||
detail5.setOverDay(day5);
|
||||
|
||||
//筛选出负序电流超标监测点
|
||||
long num6 = list2.stream().filter(o->o.getINegOvertime() > 0).count();
|
||||
Integer day6 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getINegOvertime)).get().getINegOvertime();
|
||||
detail6.setOverNum((int) num6);
|
||||
detail6.setOverDay(day6);
|
||||
|
||||
long num7 = list2.stream().filter(o->o.getIharmOvertime() > 0).count();
|
||||
Integer day7 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getIharmOvertime)).get().getIharmOvertime();
|
||||
detail7.setOverNum((int) num7);
|
||||
detail7.setOverDay(day7);
|
||||
|
||||
long num8 = list2.stream().filter(o->o.getUharmOvertime() > 0).count();
|
||||
Integer day8 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUharmOvertime)).get().getUharmOvertime();
|
||||
detail8.setOverNum((int) num8);
|
||||
detail8.setOverDay(day8);
|
||||
|
||||
long num9 = list2.stream().filter(o->o.getInuharmOvertime() > 0).count();
|
||||
Integer day9 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getInuharmOvertime)).get().getInuharmOvertime();
|
||||
detail9.setOverNum((int) num9);
|
||||
detail9.setOverDay(day9);
|
||||
}
|
||||
List<EvaluationLevelVo.TargetDetail> details = Arrays.asList(detail1, detail2, detail3, detail4, detail5, detail6, detail7, detail8, detail9);
|
||||
detail.setList(details);
|
||||
}
|
||||
result.add(detail);
|
||||
}
|
||||
});
|
||||
overLimitList .addAll(rStatLimitTargetDMapper.getSumTargetDetails(lineList,
|
||||
param.getStartTime(),
|
||||
param.getEndTime())) ;
|
||||
}
|
||||
//获取部门
|
||||
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData();
|
||||
deptList.forEach(item -> {
|
||||
EvaluationLevelVo.EvaluationDetail detail = new EvaluationLevelVo.EvaluationDetail();
|
||||
detail.setDeptId(item.getId());
|
||||
detail.setDeptName(item.getName());
|
||||
EvaluationLevelVo.TargetDetail detail1 = new EvaluationLevelVo.TargetDetail();
|
||||
detail1.setTargetName(DicDataEnum.FREQUENCY_DEV.getName());
|
||||
detail1.setOverDay(0);
|
||||
detail1.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail2 = new EvaluationLevelVo.TargetDetail();
|
||||
detail2.setTargetName(DicDataEnum.VOLTAGE_DEV.getName());
|
||||
detail2.setOverDay(0);
|
||||
detail2.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail3 = new EvaluationLevelVo.TargetDetail();
|
||||
detail3.setTargetName(DicDataEnum.THD_V.getName());
|
||||
detail3.setOverDay(0);
|
||||
detail3.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail4 = new EvaluationLevelVo.TargetDetail();
|
||||
detail4.setTargetName(DicDataEnum.FLICKER.getName());
|
||||
detail4.setOverDay(0);
|
||||
detail4.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail5 = new EvaluationLevelVo.TargetDetail();
|
||||
detail5.setTargetName(DicDataEnum.phase_Voltage.getName());
|
||||
detail5.setOverDay(0);
|
||||
detail5.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail6 = new EvaluationLevelVo.TargetDetail();
|
||||
detail6.setTargetName(DicDataEnum.NEG_CURRENT.getName());
|
||||
detail6.setOverDay(0);
|
||||
detail6.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail7 = new EvaluationLevelVo.TargetDetail();
|
||||
detail7.setTargetName(DicDataEnum.HARMONIC_CURRENT.getName());
|
||||
detail7.setOverDay(0);
|
||||
detail7.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail8 = new EvaluationLevelVo.TargetDetail();
|
||||
detail8.setTargetName(DicDataEnum.HARMONIC_VOLTAGE.getName());
|
||||
detail8.setOverDay(0);
|
||||
detail8.setOverNum(0);
|
||||
EvaluationLevelVo.TargetDetail detail9 = new EvaluationLevelVo.TargetDetail();
|
||||
detail9.setTargetName(DicDataEnum.INTERHARMONIC_VOLTAGE.getName());
|
||||
detail9.setOverDay(0);
|
||||
detail9.setOverNum(0);
|
||||
if (lineMap.containsKey(item.getId())) {
|
||||
if (CollUtil.isNotEmpty(lineMap.get(item.getId()))) {
|
||||
List<String> ll = lineMap.get(item.getId());
|
||||
detail.setOnlineNum(ll.size());
|
||||
//筛选当前部门下监测点的超标数据
|
||||
List<RStatLimitTargetVO> list2 = overLimitList.stream().filter(it -> ll.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list2)) {
|
||||
//筛选出9项指标(电压偏差、频率偏差、电压总谐波畸变率、电压闪变、三相电压不平衡度、负序电流、谐波电流、间谐波电压、谐波电压)超标监测点
|
||||
long allNum = list2.stream().filter(o -> o.getAllOvertime() > 0 || o.getFlickerAllTime() > 0).count();
|
||||
detail.setOverNum((int) allNum);
|
||||
detail.setOverRatio(PubUtils.doubleRound(2, detail.getOverNum() * 100.0 / detail.getOnlineNum()));
|
||||
//筛选出电压偏差超标监测点
|
||||
long num1 = list2.stream().filter(o -> o.getFreqDevOvertime() > 0).count();
|
||||
Integer day1 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFreqDevOvertime)).get().getFreqDevOvertime();
|
||||
detail1.setOverNum((int) num1);
|
||||
detail1.setOverDay(day1);
|
||||
|
||||
//筛选出频率偏差超标监测点
|
||||
long num2 = list2.stream().filter(o -> o.getVoltageDevOvertime() > 0).count();
|
||||
Integer day2 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getVoltageDevOvertime)).get().getVoltageDevOvertime();
|
||||
detail2.setOverNum((int) num2);
|
||||
detail2.setOverDay(day2);
|
||||
|
||||
//筛选出电压总谐波畸变率超标监测点
|
||||
long num3 = list2.stream().filter(o -> o.getUaberranceOvertime() > 0).count();
|
||||
Integer day3 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUaberranceOvertime)).get().getUaberranceOvertime();
|
||||
detail3.setOverNum((int) num3);
|
||||
detail3.setOverDay(day3);
|
||||
|
||||
//筛选出电压闪变超标监测点
|
||||
long num4 = list2.stream().filter(o -> o.getFlickerOvertime() > 0).count();
|
||||
Integer day4 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFlickerOvertime)).get().getFlickerOvertime();
|
||||
detail4.setOverNum((int) num4);
|
||||
detail4.setOverDay(day4);
|
||||
|
||||
//筛选出三相电压不平衡度超标监测点
|
||||
long num5 = list2.stream().filter(o -> o.getUbalanceOvertime() > 0).count();
|
||||
Integer day5 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUbalanceOvertime)).get().getUbalanceOvertime();
|
||||
detail5.setOverNum((int) num5);
|
||||
detail5.setOverDay(day5);
|
||||
|
||||
//筛选出负序电流超标监测点
|
||||
long num6 = list2.stream().filter(o -> o.getINegOvertime() > 0).count();
|
||||
Integer day6 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getINegOvertime)).get().getINegOvertime();
|
||||
detail6.setOverNum((int) num6);
|
||||
detail6.setOverDay(day6);
|
||||
|
||||
long num7 = list2.stream().filter(o -> o.getIharmOvertime() > 0).count();
|
||||
Integer day7 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getIharmOvertime)).get().getIharmOvertime();
|
||||
detail7.setOverNum((int) num7);
|
||||
detail7.setOverDay(day7);
|
||||
|
||||
long num8 = list2.stream().filter(o -> o.getUharmOvertime() > 0).count();
|
||||
Integer day8 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUharmOvertime)).get().getUharmOvertime();
|
||||
detail8.setOverNum((int) num8);
|
||||
detail8.setOverDay(day8);
|
||||
|
||||
long num9 = list2.stream().filter(o -> o.getInuharmOvertime() > 0).count();
|
||||
Integer day9 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getInuharmOvertime)).get().getInuharmOvertime();
|
||||
detail9.setOverNum((int) num9);
|
||||
detail9.setOverDay(day9);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<EvaluationLevelVo.TargetDetail> details = Arrays.asList(detail1, detail2, detail3, detail4, detail5, detail6, detail7, detail8, detail9);
|
||||
detail.setList(details);
|
||||
result.add(detail);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -601,7 +617,7 @@ public class GridServiceImpl implements IGridService {
|
||||
deptGetLineParam.setLineRunFlag(0);
|
||||
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||
//获取监测点集合
|
||||
Map<String,List<String>> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null);
|
||||
Map<String, List<String>> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null);
|
||||
List<String> lineList = lineMap.values().stream()
|
||||
.flatMap(List::stream)
|
||||
.distinct()
|
||||
@@ -609,9 +625,9 @@ public class GridServiceImpl implements IGridService {
|
||||
//获取基础台账信息
|
||||
List<BaseLineInfo> baseLineInfos = generalDeviceInfoClient.getBaseLineInfo(lineList).getData();
|
||||
//获取越限详情
|
||||
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,param.getStartTime(),param.getEndTime());
|
||||
Map<String, RStatLimitRateDPO> map = overLimitList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId,Function.identity()));
|
||||
baseLineInfos.forEach(item->{
|
||||
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList, param.getStartTime(), param.getEndTime());
|
||||
Map<String, RStatLimitRateDPO> map = overLimitList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId, Function.identity()));
|
||||
baseLineInfos.forEach(item -> {
|
||||
EvaluationLevelVo.QualifiedDetail qualifiedDetail = new EvaluationLevelVo.QualifiedDetail();
|
||||
qualifiedDetail.setAreaName(item.getGdName());
|
||||
qualifiedDetail.setLineName(item.getLineName());
|
||||
@@ -626,7 +642,7 @@ public class GridServiceImpl implements IGridService {
|
||||
});
|
||||
if (CollUtil.isNotEmpty(result)) {
|
||||
return result.stream().sorted(Comparator.comparing(EvaluationLevelVo.QualifiedDetail::getAreaName)
|
||||
.thenComparing(EvaluationLevelVo.QualifiedDetail::getSubstationName))
|
||||
.thenComparing(EvaluationLevelVo.QualifiedDetail::getSubstationName))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return result;
|
||||
@@ -637,7 +653,7 @@ public class GridServiceImpl implements IGridService {
|
||||
public EvaluationLevelVo.QualifiedDetail getLineQualifiedDetail(String lineId, String startTime, String endTime) {
|
||||
EvaluationLevelVo.QualifiedDetail detail = new EvaluationLevelVo.QualifiedDetail();
|
||||
List<String> lineList = Collections.singletonList(lineId);
|
||||
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,startTime,endTime);
|
||||
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList, startTime, endTime);
|
||||
if (CollUtil.isNotEmpty(overLimitList)) {
|
||||
RStatLimitRateDPO dpo = overLimitList.get(0);
|
||||
addQualifiedDetail(detail, dpo);
|
||||
@@ -652,17 +668,17 @@ public class GridServiceImpl implements IGridService {
|
||||
qualifiedDetail.setVThd(PubUtils.doubleRound(2, 100.0 - (item2.getUaberranceOvertime() * 100.0 / item2.getAllTime())));
|
||||
qualifiedDetail.setUbalance(PubUtils.doubleRound(2, 100.0 - (item2.getUbalanceOvertime() * 100.0 / item2.getAllTime())));
|
||||
//谐波电压
|
||||
List<Integer> list1 = getList(2,25,"getUharm",item2);
|
||||
List<Integer> list1 = getList(2, 25, "getUharm", item2);
|
||||
Integer maxValue1 = list1.stream().max(Integer::compareTo).orElse(null);
|
||||
qualifiedDetail.setUHarm(Objects.isNull(maxValue1) ? null : PubUtils.doubleRound(2,100.0 - (maxValue1*100.0 / item2.getAllTime())));
|
||||
qualifiedDetail.setUHarm(Objects.isNull(maxValue1) ? null : PubUtils.doubleRound(2, 100.0 - (maxValue1 * 100.0 / item2.getAllTime())));
|
||||
//谐波电流
|
||||
List<Integer> list2 = getList(2,25,"getIharm",item2);
|
||||
List<Integer> list2 = getList(2, 25, "getIharm", item2);
|
||||
Integer maxValue2 = list2.stream().max(Integer::compareTo).orElse(null);
|
||||
qualifiedDetail.setIHarm(Objects.isNull(maxValue2) ? null : PubUtils.doubleRound(2,100.0 - (maxValue2*100.0 / item2.getAllTime())));
|
||||
qualifiedDetail.setIHarm(Objects.isNull(maxValue2) ? null : PubUtils.doubleRound(2, 100.0 - (maxValue2 * 100.0 / item2.getAllTime())));
|
||||
//间谐波电压
|
||||
List<Integer> list3 = getList(1,16,"getInuharm",item2);
|
||||
List<Integer> list3 = getList(1, 16, "getInuharm", item2);
|
||||
Integer maxValue3 = list3.stream().max(Integer::compareTo).orElse(null);
|
||||
qualifiedDetail.setInuHarm(Objects.isNull(maxValue3) ? null : PubUtils.doubleRound(2,100.0 - (maxValue3*100.0 / item2.getAllTime())));
|
||||
qualifiedDetail.setInuHarm(Objects.isNull(maxValue3) ? null : PubUtils.doubleRound(2, 100.0 - (maxValue3 * 100.0 / item2.getAllTime())));
|
||||
qualifiedDetail.setINeg(PubUtils.doubleRound(2, 100.0 - (item2.getINegOvertime() * 100.0 / item2.getAllTime())));
|
||||
}
|
||||
if (item2.getFlickerAllTime() > 0) {
|
||||
@@ -696,63 +712,63 @@ public class GridServiceImpl implements IGridService {
|
||||
* 获取监测点频率偏差 T相最大值
|
||||
*/
|
||||
public List<RStatDataVD> getList1(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataVDMapper.getFreqDev(lineList,startTime,endTime);
|
||||
return statDataVDMapper.getFreqDev(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点电压偏差 使用电压上偏差A、B、C三相最大值的平均值
|
||||
*/
|
||||
public List<RStatDataVD> getList2(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataVDMapper.getVuDev(lineList,startTime,endTime);
|
||||
return statDataVDMapper.getVuDev(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点电压总谐波畸变率 A、B、C三相Cp95的平均值
|
||||
*/
|
||||
public List<RStatDataVD> getList3(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataVDMapper.getVthd(lineList,startTime,endTime);
|
||||
return statDataVDMapper.getVthd(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点闪变 A、B、C三相最大值的平均值
|
||||
*/
|
||||
public List<RStatDataPltDPO> getList4(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataPltDMapper.getPlt(lineList,startTime,endTime);
|
||||
return statDataPltDMapper.getPlt(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点三相电压不平衡度 T相 CP95
|
||||
*/
|
||||
public List<RStatDataVD> getList5(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataVDMapper.getUnbalance(lineList,startTime,endTime);
|
||||
return statDataVDMapper.getUnbalance(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 谐波电压含有率 A、B、C三相最大值的平均值
|
||||
*/
|
||||
private List<RStatDataVD> getList6(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataVDMapper.getV(lineList,startTime,endTime);
|
||||
return statDataVDMapper.getV(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 谐波电流 A、B、C三相最大值的平均值
|
||||
*/
|
||||
private List<RStatDataIDPO> getList7(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataIDMapper.getI(lineList,startTime,endTime);
|
||||
return statDataIDMapper.getI(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 间谐波电压含有率 A、B、C三相最大值的平均值
|
||||
*/
|
||||
private List<RStatDataInharmVDPO> getList8(List<String> lineList, String startTime, String endTime) {
|
||||
return rStatDataInharmVDMapper.getV(lineList,startTime,endTime);
|
||||
return rStatDataInharmVDMapper.getV(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点负序电流 A、B、C三相最大值的平均值
|
||||
*/
|
||||
public List<RStatDataIDPO> getList9(List<String> lineList, String startTime, String endTime) {
|
||||
return statDataIDMapper.getINeg(lineList,startTime,endTime);
|
||||
return statDataIDMapper.getINeg(lineList, startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -761,7 +777,7 @@ public class GridServiceImpl implements IGridService {
|
||||
public Double targetSd(List<Double> list, Double avg) {
|
||||
double sum = list.stream().mapToDouble(number -> Math.pow(number - avg, 2)).sum();
|
||||
double variance = sum / list.size();
|
||||
return PubUtils.doubleRound(2,Math.sqrt(variance));
|
||||
return PubUtils.doubleRound(2, Math.sqrt(variance));
|
||||
}
|
||||
|
||||
|
||||
@@ -775,100 +791,100 @@ public class GridServiceImpl implements IGridService {
|
||||
List<RStatLimitRateDPO> filteredList0 = limitRateList.stream()
|
||||
.filter(data -> data.getFreqDevOvertime() + data.getVoltageDevOvertime() + data.getFlickerOvertime() + data.getUaberranceOvertime() + data.getUbalanceOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList0.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList0.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//电压偏差
|
||||
case 1:
|
||||
List<RStatLimitRateDPO> filteredList1 = limitRateList.stream()
|
||||
.filter(data -> data.getVoltageDevOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList1.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList1.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//频率偏差
|
||||
case 2:
|
||||
List<RStatLimitRateDPO> filteredList2 = limitRateList.stream()
|
||||
.filter(data -> data.getFreqDevOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList2.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList2.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//电压总谐波畸变率
|
||||
case 3:
|
||||
List<RStatLimitRateDPO> filteredList3 = limitRateList.stream()
|
||||
.filter(data -> data.getUaberranceOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList3.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList3.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//电压闪变
|
||||
case 4:
|
||||
List<RStatLimitRateDPO> filteredList4 = limitRateList.stream()
|
||||
.filter(data -> data.getFlickerOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList4.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList4.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//三相电压不平衡度
|
||||
case 5:
|
||||
List<RStatLimitRateDPO> filteredList5 = limitRateList.stream()
|
||||
.filter(data -> data.getUbalanceOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList5.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList5.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//谐波电压
|
||||
case 6:
|
||||
List<RStatLimitRateDPO> filteredList6 = limitRateList.stream()
|
||||
.filter(x->getLimitRateStats(x,2,26,"uharm","Overtime"))
|
||||
.filter(x -> getLimitRateStats(x, 2, 26, "uharm", "Overtime"))
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList6.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList6.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//谐波电流
|
||||
case 7:
|
||||
List<RStatLimitRateDPO> filteredList7 = limitRateList.stream()
|
||||
.filter(x->getLimitRateStats(x,2,26,"iharm","Overtime"))
|
||||
.filter(x -> getLimitRateStats(x, 2, 26, "iharm", "Overtime"))
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList7.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList7.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//间谐波电压
|
||||
case 8:
|
||||
List<RStatLimitRateDPO> filteredList8 = limitRateList.stream()
|
||||
.filter(x->getLimitRateStats(x,1,16,"inuharm","Overtime"))
|
||||
.filter(x -> getLimitRateStats(x, 1, 16, "inuharm", "Overtime"))
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList8.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList8.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
//负序电流
|
||||
case 9:
|
||||
List<RStatLimitRateDPO> filteredList9 = limitRateList.stream()
|
||||
.filter(data -> data.getINegOvertime() > 0)
|
||||
.collect(Collectors.toList());
|
||||
children.setRatio(PubUtils.doubleRound(2,filteredList9.size()*100.0/limitRateList.size()));
|
||||
children.setRatio(PubUtils.doubleRound(2, filteredList9.size() * 100.0 / limitRateList.size()));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public AssessDetailVo getAssessData(String deptId, String deptName, List<String> lineList, List<RStatAssesDPO> list1, List<PQSComAssesPO> list2, List<RStatLimitRateDPO> list3) {
|
||||
public AssessDetailVo getAssessData(String deptId, String deptName, List<String> lineList, List<RStatAssesDPO> list1, List<PQSComAssesPO> list2, List<RStatLimitRateDPO> list3) {
|
||||
AssessDetailVo comAssess = new AssessDetailVo();
|
||||
comAssess.setDeptId(deptId);
|
||||
comAssess.setDeptName(deptName);
|
||||
//处理区域各个指标的稳态评估
|
||||
if (CollUtil.isNotEmpty(list1)){
|
||||
List<RStatAssesDPO> list11 = list1.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list1)) {
|
||||
List<RStatAssesDPO> list11 = list1.stream().filter(it -> lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list11)) {
|
||||
this.chanelTargetAssess(list11,comAssess);
|
||||
this.chanelTargetAssess(list11, comAssess);
|
||||
}
|
||||
}
|
||||
//处理区域综合稳态评估
|
||||
if (CollUtil.isNotEmpty(list2)){
|
||||
List<PQSComAssesPO> list22 = list2.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list22)){
|
||||
List<PqsComasses> communicateList = BeanUtil.copyToList(list22,PqsComasses.class);
|
||||
if (CollUtil.isNotEmpty(list2)) {
|
||||
List<PQSComAssesPO> list22 = list2.stream().filter(it -> lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list22)) {
|
||||
List<PqsComasses> communicateList = BeanUtil.copyToList(list22, PqsComasses.class);
|
||||
float synData = comAssesUtil.getAllComAss(communicateList);
|
||||
comAssess.setAssessData(PubUtils.floatRound(2,synData));
|
||||
comAssess.setAssessData(PubUtils.floatRound(2, synData));
|
||||
comAssess.setAssessLevel(getLevel(synData));
|
||||
}
|
||||
}
|
||||
//处理区域总指标合格率、各个指标合格率
|
||||
if (CollUtil.isNotEmpty(list3)){
|
||||
List<RStatLimitRateDPO> list33 = list3.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list3)) {
|
||||
List<RStatLimitRateDPO> list33 = list3.stream().filter(it -> lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list33)) {
|
||||
//总指标次数
|
||||
int allTime = list33.stream()
|
||||
@@ -894,12 +910,12 @@ public class GridServiceImpl implements IGridService {
|
||||
int ubalanceTime = list33.stream()
|
||||
.mapToInt(RStatLimitRateDPO::getUbalanceOvertime)
|
||||
.sum();
|
||||
comAssess.setQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-(devTime+freqTime+thdTime+pltTime+ubalanceTime)*100.0/(allTime*5)));
|
||||
comAssess.setVDevQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-devTime*100.0/allTime));
|
||||
comAssess.setFreqQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-freqTime*100.0/allTime));
|
||||
comAssess.setHarmQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-thdTime*100.0/allTime));
|
||||
comAssess.setFlickerQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-pltTime*100.0/allTime));
|
||||
comAssess.setUnbalanceQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-ubalanceTime*100.0/allTime));
|
||||
comAssess.setQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - (devTime + freqTime + thdTime + pltTime + ubalanceTime) * 100.0 / (allTime * 5)));
|
||||
comAssess.setVDevQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - devTime * 100.0 / allTime));
|
||||
comAssess.setFreqQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - freqTime * 100.0 / allTime));
|
||||
comAssess.setHarmQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - thdTime * 100.0 / allTime));
|
||||
comAssess.setFlickerQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - pltTime * 100.0 / allTime));
|
||||
comAssess.setUnbalanceQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - ubalanceTime * 100.0 / allTime));
|
||||
}
|
||||
}
|
||||
return comAssess;
|
||||
@@ -910,94 +926,95 @@ public class GridServiceImpl implements IGridService {
|
||||
.mapToDouble(RStatAssesDPO::getVuDev)
|
||||
.average()
|
||||
.orElse(0.0);
|
||||
comAssess.setVDevAssessData(PubUtils.doubleRound(2,vuDev));
|
||||
comAssess.setVDevAssessLevel(getLevel(vuDev,0f,2.5f,5f,7.5f,10f,12.5f,15f,17.5f));
|
||||
comAssess.setVDevAssessData(PubUtils.doubleRound(2, vuDev));
|
||||
comAssess.setVDevAssessLevel(getLevel(vuDev, 0f, 2.5f, 5f, 7.5f, 10f, 12.5f, 15f, 17.5f));
|
||||
double freqDev = list.stream()
|
||||
.mapToDouble(RStatAssesDPO::getFreqDev)
|
||||
.average()
|
||||
.orElse(0.0);
|
||||
comAssess.setFreqAssessData(PubUtils.doubleRound(2,freqDev));
|
||||
comAssess.setFreqAssessLevel(getLevel(freqDev,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f));
|
||||
comAssess.setFreqAssessData(PubUtils.doubleRound(2, freqDev));
|
||||
comAssess.setFreqAssessLevel(getLevel(freqDev, 0f, 0.05f, 0.1f, 0.15f, 0.2f, 0.25f, 0.30f, 0.35f));
|
||||
double dataPlt = list.stream()
|
||||
.mapToDouble(RStatAssesDPO::getDataPlt)
|
||||
.average()
|
||||
.orElse(0.0);
|
||||
comAssess.setFlickerAssessData(PubUtils.doubleRound(2,dataPlt));
|
||||
comAssess.setFlickerAssessLevel(getLevel(dataPlt,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f));
|
||||
comAssess.setFlickerAssessData(PubUtils.doubleRound(2, dataPlt));
|
||||
comAssess.setFlickerAssessLevel(getLevel(dataPlt, 0f, 0.05f, 0.1f, 0.15f, 0.2f, 0.25f, 0.30f, 0.35f));
|
||||
double vUnbalanceCp95 = list.stream()
|
||||
.mapToDouble(RStatAssesDPO::getVUnbalanceCp95)
|
||||
.average()
|
||||
.orElse(0.0);
|
||||
comAssess.setUnbalanceAssessData(PubUtils.doubleRound(2,vUnbalanceCp95));
|
||||
comAssess.setUnbalanceAssessLevel(getLevel(vUnbalanceCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f));
|
||||
comAssess.setUnbalanceAssessData(PubUtils.doubleRound(2, vUnbalanceCp95));
|
||||
comAssess.setUnbalanceAssessLevel(getLevel(vUnbalanceCp95, 0f, 0.5f, 1f, 1.5f, 2f, 2.5f, 3f, 3.5f));
|
||||
double vThdCp95 = list.stream()
|
||||
.mapToDouble(RStatAssesDPO::getVThdCp95)
|
||||
.average()
|
||||
.orElse(0.0);
|
||||
comAssess.setHarmAssessData(PubUtils.doubleRound(2,vThdCp95));
|
||||
comAssess.setHarmAssessLevel(getLevel(vThdCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f));
|
||||
comAssess.setHarmAssessData(PubUtils.doubleRound(2, vThdCp95));
|
||||
comAssess.setHarmAssessLevel(getLevel(vThdCp95, 0f, 0.5f, 1f, 1.5f, 2f, 2.5f, 3f, 3.5f));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取综合评估等级
|
||||
* 获取综合评估等级
|
||||
*/
|
||||
private String getLevel(float synDatas) {
|
||||
if(synDatas==3.14159f){
|
||||
if (synDatas == 3.14159f) {
|
||||
return "暂无数据";
|
||||
}
|
||||
if(0<=synDatas&&synDatas<2){
|
||||
if (0 <= synDatas && synDatas < 2) {
|
||||
return "极差";
|
||||
}else if(2<=synDatas&&synDatas<3){
|
||||
} else if (2 <= synDatas && synDatas < 3) {
|
||||
return "较差";
|
||||
}else if(3<=synDatas&&synDatas<4){
|
||||
} else if (3 <= synDatas && synDatas < 4) {
|
||||
return "合格";
|
||||
}else if(4<=synDatas&&synDatas<4.5){
|
||||
} else if (4 <= synDatas && synDatas < 4.5) {
|
||||
return "良好";
|
||||
}else{
|
||||
return "优质";
|
||||
} else {
|
||||
return "优质";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取各个指标对应的等级
|
||||
* 获取各个指标对应的等级
|
||||
*/
|
||||
private String getLevel(double value,float f1,float f2,float f3,float f4,float f5,float f6,float f7,float f8) {
|
||||
private String getLevel(double value, float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8) {
|
||||
String level;
|
||||
if(f1<=value&&value<=f2){
|
||||
level="特质";
|
||||
}else if(f2<value&&value<=f3){
|
||||
level="优质";
|
||||
}else if(f3<value&&value<=f4){
|
||||
level="优良";
|
||||
}else if(f4<value&&value<=f5){
|
||||
level="良好";
|
||||
}else if(f5<value&&value<=f6){
|
||||
if (f1 <= value && value <= f2) {
|
||||
level = "特质";
|
||||
} else if (f2 < value && value <= f3) {
|
||||
level = "优质";
|
||||
} else if (f3 < value && value <= f4) {
|
||||
level = "优良";
|
||||
} else if (f4 < value && value <= f5) {
|
||||
level = "良好";
|
||||
} else if (f5 < value && value <= f6) {
|
||||
// level="轻度污染";
|
||||
level="合格";
|
||||
}else if(f6<value&&value<=f7){
|
||||
level = "合格";
|
||||
} else if (f6 < value && value <= f7) {
|
||||
// level="中度污染";
|
||||
level="较差";
|
||||
}else if(f7<value&&value<=f8){
|
||||
level = "较差";
|
||||
} else if (f7 < value && value <= f8) {
|
||||
// level="重度污染";
|
||||
level="差";
|
||||
}else{
|
||||
level = "差";
|
||||
} else {
|
||||
// level="极度污染";
|
||||
level="极差";
|
||||
level = "极差";
|
||||
}
|
||||
return level;
|
||||
}
|
||||
|
||||
/**
|
||||
* 过滤监测点
|
||||
*
|
||||
* @param list
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
public Map<String,List<String>> getLineMap(List<DeptGetChildrenMoreDTO> list, Integer type, String voltage) {
|
||||
Map<String,List<String>> map = new HashMap<>();
|
||||
list.forEach(it->{
|
||||
public Map<String, List<String>> getLineMap(List<DeptGetChildrenMoreDTO> list, Integer type, String voltage) {
|
||||
Map<String, List<String>> map = new HashMap<>();
|
||||
list.forEach(it -> {
|
||||
// 默认不过滤
|
||||
Predicate<LineDevGetDTO> uploadFilter = item -> true;
|
||||
if (Objects.equals(type, 1)) {
|
||||
@@ -1005,12 +1022,12 @@ public class GridServiceImpl implements IGridService {
|
||||
}
|
||||
|
||||
Predicate<LineDevGetDTO> voltageFilter = item -> true;
|
||||
if (!Objects.isNull(voltage) && !Objects.equals(voltage,"")) {
|
||||
if (!Objects.isNull(voltage) && !Objects.equals(voltage, "")) {
|
||||
voltageFilter = item -> Objects.equals(item.getVoltageLevel(), voltage);
|
||||
}
|
||||
// 组合两个过滤条件
|
||||
Predicate<LineDevGetDTO> combinedFilter = uploadFilter.and(voltageFilter);
|
||||
map.put(it.getUnitId(),it.getLineBaseList().stream()
|
||||
map.put(it.getUnitId(), it.getLineBaseList().stream()
|
||||
.filter(combinedFilter)
|
||||
.map(LineDevGetDTO::getPointId)
|
||||
.distinct()
|
||||
|
||||
Reference in New Issue
Block a user