代码调整

This commit is contained in:
xy
2024-05-04 13:56:56 +08:00
parent 34b4b8882d
commit 8750b4f35f

View File

@@ -72,7 +72,11 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> lineList = this.getLineList(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());
if (CollUtil.isNotEmpty(lineList)) { if (CollUtil.isNotEmpty(lineList)) {
List<PqsComasses> comasses = new ArrayList<>(); List<PqsComasses> comasses = new ArrayList<>();
//获取监测点详细信息 //获取监测点详细信息
@@ -120,7 +124,11 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> lineList = this.getLineList(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());
if (CollUtil.isNotEmpty(lineList)){ if (CollUtil.isNotEmpty(lineList)){
//获取监测点详细信息 //获取监测点详细信息
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(lineList).getData(); List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(lineList).getData();
@@ -157,7 +165,11 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> lineList = this.getLineList(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());
if (CollUtil.isNotEmpty(lineList)){ if (CollUtil.isNotEmpty(lineList)){
//获取监测点详细信息 //获取监测点详细信息
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(lineList).getData(); List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(lineList).getData();
@@ -209,19 +221,22 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> lineList = this.getLineList(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());
if (CollUtil.isNotEmpty(lineList)) { if (CollUtil.isNotEmpty(lineList)) {
//获取监测点所有指标数据 //获取监测点所有指标数据
List<RStatLimitRateDPO> limitRateList = rStatLimitRateDMapper.getAssessTargetRate(lineList,param.getStartTime(),param.getEndTime()); List<RStatLimitRateDPO> limitRateList = rStatLimitRateDMapper.getAssessTargetRate(lineList,param.getStartTime(),param.getEndTime());
//获取部门 //获取部门
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData(); List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData();
Map<String, DeptGetChildrenMoreDTO> deptLineMap = list.stream().collect(Collectors.toMap(DeptGetChildrenMoreDTO::getUnitId, Function.identity()));
deptList.forEach(item->{ deptList.forEach(item->{
if (deptLineMap.containsKey(item.getId())) { if (lineMap.containsKey(item.getId())) {
EvaluationVo.Children children = new EvaluationVo.Children(); EvaluationVo.Children children = new EvaluationVo.Children();
children.setDeptId(item.getId()); children.setDeptId(item.getId());
children.setDeptName(item.getName()); children.setDeptName(item.getName());
List<String> ll = deptLineMap.get(item.getId()).getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> ll = lineMap.get(item.getId());
if (CollUtil.isNotEmpty(limitRateList)) { if (CollUtil.isNotEmpty(limitRateList)) {
List<RStatLimitRateDPO> l1 = limitRateList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList()); List<RStatLimitRateDPO> l1 = limitRateList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(l1)){ if (CollUtil.isNotEmpty(l1)){
@@ -254,7 +269,11 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> line = this.getLineList(list,param.getIsUpToGrid(),param.getVoltageLevel()); Map<String,List<String>> lineMap = this.getLineMap(list, param.getIsUpToGrid(), param.getVoltageLevel());
List<String> lineList = lineMap.values().stream()
.flatMap(List::stream)
.distinct()
.collect(Collectors.toList());
//获取数据 //获取数据
EvaluationLevelVo vo1 = new EvaluationLevelVo(); EvaluationLevelVo vo1 = new EvaluationLevelVo();
vo1.setTargetName(DicDataEnum.FREQUENCY_DEV.getName()); vo1.setTargetName(DicDataEnum.FREQUENCY_DEV.getName());
@@ -266,11 +285,11 @@ public class GridServiceImpl implements IGridService {
vo4.setTargetName(DicDataEnum.phase_Voltage.getName()); vo4.setTargetName(DicDataEnum.phase_Voltage.getName());
EvaluationLevelVo vo5 = new EvaluationLevelVo(); EvaluationLevelVo vo5 = new EvaluationLevelVo();
vo5.setTargetName(DicDataEnum.FLICKER.getName()); vo5.setTargetName(DicDataEnum.FLICKER.getName());
if (CollUtil.isNotEmpty(line)) { if (CollUtil.isNotEmpty(lineList)) {
List<RStatDataVD> list1 = getList1(line,param.getStartTime(),param.getEndTime()); List<RStatDataVD> list1 = getList1(lineList,param.getStartTime(),param.getEndTime());
List<RStatDataVD> list2 = getList2(line,param.getStartTime(),param.getEndTime()); List<RStatDataVD> list2 = getList2(lineList,param.getStartTime(),param.getEndTime());
List<RStatDataVD> list3 = getList3(line,param.getStartTime(),param.getEndTime()); List<RStatDataVD> list3 = getList3(lineList,param.getStartTime(),param.getEndTime());
List<RStatDataPltDPO> list4 = getList4(line,param.getStartTime(),param.getEndTime()); List<RStatDataPltDPO> list4 = getList4(lineList,param.getStartTime(),param.getEndTime());
if (CollUtil.isNotEmpty(list1)) { if (CollUtil.isNotEmpty(list1)) {
List<Double> d = list1.stream().map(o->o.getFreqDev().doubleValue()).collect(Collectors.toList()); List<Double> d = list1.stream().map(o->o.getFreqDev().doubleValue()).collect(Collectors.toList());
double avg = d.stream().collect(Collectors.averagingDouble(x->x)); double avg = d.stream().collect(Collectors.averagingDouble(x->x));
@@ -314,7 +333,11 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> line = this.getLineList(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());
//按月获取时间集合 //按月获取时间集合
LocalDate currentDate = LocalDate.now(); LocalDate currentDate = LocalDate.now();
// 获取当前年份 // 获取当前年份
@@ -328,7 +351,7 @@ public class GridServiceImpl implements IGridService {
vo.setTime(month.toString()); vo.setTime(month.toString());
vo.setTargetList(Arrays.asList(DicDataEnum.FREQUENCY_DEV.getName(),DicDataEnum.VOLTAGE_DEV.getName(),DicDataEnum.THD_V.getName(),DicDataEnum.phase_Voltage.getName(),DicDataEnum.FLICKER.getName())); vo.setTargetList(Arrays.asList(DicDataEnum.FREQUENCY_DEV.getName(),DicDataEnum.VOLTAGE_DEV.getName(),DicDataEnum.THD_V.getName(),DicDataEnum.phase_Voltage.getName(),DicDataEnum.FLICKER.getName()));
//获取监测点越限集合 //获取监测点越限集合
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(line,firstDayOfMonth,lastDayOfMonth); List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,firstDayOfMonth,lastDayOfMonth);
if (CollUtil.isNotEmpty(overLimitList)) { if (CollUtil.isNotEmpty(overLimitList)) {
long freqDev = overLimitList.stream().filter(obj -> obj.getFreqDevOvertime() > 0).count(); long freqDev = overLimitList.stream().filter(obj -> obj.getFreqDevOvertime() > 0).count();
long vDev = overLimitList.stream().filter(obj -> obj.getVoltageDevOvertime() > 0).count(); long vDev = overLimitList.stream().filter(obj -> obj.getVoltageDevOvertime() > 0).count();
@@ -354,20 +377,23 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> line = this.getLineList(list, param.getIsUpToGrid(),null); Map<String,List<String>> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null);
if (CollUtil.isNotEmpty(line)) { List<String> lineList = lineMap.values().stream()
.flatMap(List::stream)
.distinct()
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(lineList)) {
//获取监测点越限集合 //获取监测点越限集合
List<RStatLimitTargetDPO> overLimitList = rStatLimitTargetDMapper.getSumTarget(line,param.getStartTime(),param.getEndTime()); List<RStatLimitTargetDPO> overLimitList = rStatLimitTargetDMapper.getSumTarget(lineList,param.getStartTime(),param.getEndTime());
//获取部门 //获取部门
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData(); List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData();
Map<String, DeptGetChildrenMoreDTO> deptLineMap = list.stream().collect(Collectors.toMap(DeptGetChildrenMoreDTO::getUnitId, Function.identity()));
deptList.forEach(item->{ deptList.forEach(item->{
if (deptLineMap.containsKey(item.getId())) { if (lineMap.containsKey(item.getId())) {
EvaluationLevelVo.EvaluationDetail detail = new EvaluationLevelVo.EvaluationDetail(); EvaluationLevelVo.EvaluationDetail detail = new EvaluationLevelVo.EvaluationDetail();
detail.setDeptId(item.getId()); detail.setDeptId(item.getId());
detail.setDeptName(item.getName()); detail.setDeptName(item.getName());
if (CollUtil.isNotEmpty(deptLineMap.get(item.getId()).getLineBaseList())) { if (CollUtil.isNotEmpty(lineMap.get(item.getId()))) {
List<String> ll = deptLineMap.get(item.getId()).getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> ll = lineMap.get(item.getId());
detail.setOnlineNum(ll.size()); detail.setOnlineNum(ll.size());
//筛选当前部门下监测点的超标数据 //筛选当前部门下监测点的超标数据
List<RStatLimitTargetDPO> list2 = overLimitList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList()); List<RStatLimitTargetDPO> list2 = overLimitList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList());
@@ -439,11 +465,15 @@ public class GridServiceImpl implements IGridService {
deptGetLineParam.setServerName("harmonic-boot"); deptGetLineParam.setServerName("harmonic-boot");
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点集合 //获取监测点集合
List<String> line = this.getLineList(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<BaseLineInfo> baseLineInfos = generalDeviceInfoClient.getBaseLineInfo(line).getData(); List<BaseLineInfo> baseLineInfos = generalDeviceInfoClient.getBaseLineInfo(lineList).getData();
//获取越限详情 //获取越限详情
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(line,param.getStartTime(),param.getEndTime()); List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,param.getStartTime(),param.getEndTime());
Map<String, RStatLimitRateDPO> map = overLimitList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId,Function.identity())); Map<String, RStatLimitRateDPO> map = overLimitList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId,Function.identity()));
baseLineInfos.forEach(item->{ baseLineInfos.forEach(item->{
EvaluationLevelVo.QualifiedDetail qualifiedDetail = new EvaluationLevelVo.QualifiedDetail(); EvaluationLevelVo.QualifiedDetail qualifiedDetail = new EvaluationLevelVo.QualifiedDetail();
@@ -715,25 +745,28 @@ public class GridServiceImpl implements IGridService {
* @param type * @param type
* @return * @return
*/ */
public List<String> getLineList(List<DeptGetChildrenMoreDTO> list, Integer type, String voltage) { public Map<String,List<String>> getLineMap(List<DeptGetChildrenMoreDTO> list, Integer type, String voltage) {
// 默认不过滤 Map<String,List<String>> map = new HashMap<>();
Predicate<LineDevGetDTO> uploadFilter = item -> true; list.forEach(it->{
if (Objects.equals(type, 1)) { // 默认不过滤
uploadFilter = item -> Objects.equals(item.getIsUpToGrid(), 1); Predicate<LineDevGetDTO> uploadFilter = item -> true;
} if (Objects.equals(type, 1)) {
uploadFilter = item -> Objects.equals(item.getIsUpToGrid(), 1);
}
Predicate<LineDevGetDTO> voltageFilter = item -> true; 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); voltageFilter = item -> Objects.equals(item.getVoltageLevel(), voltage);
} }
// 组合两个过滤条件 // 组合两个过滤条件
Predicate<LineDevGetDTO> combinedFilter = uploadFilter.and(voltageFilter); Predicate<LineDevGetDTO> combinedFilter = uploadFilter.and(voltageFilter);
return list.stream() map.put(it.getUnitId(),it.getLineBaseList().stream()
.flatMap(item -> item.getLineBaseList().stream()) .filter(combinedFilter)
.filter(combinedFilter) .map(LineDevGetDTO::getPointId)
.map(LineDevGetDTO::getPointId) .distinct()
.distinct() .collect(Collectors.toList()));
.collect(Collectors.toList()); });
return map;
} }
/** /**