1.pms电能质量综合评估功能兼容

This commit is contained in:
2024-11-06 11:13:18 +08:00
parent 7b6099e2dc
commit a608b3850c
24 changed files with 213 additions and 92 deletions

View File

@@ -6,7 +6,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;

View File

@@ -6,7 +6,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.harmonic.pojo.param.PVOverviewParam;
import com.njcn.harmonic.service.majornetwork.PVOverviewService;
import com.njcn.web.controller.BaseController;

View File

@@ -24,7 +24,8 @@
data_v
<where>
timeId between to_date(#{param.startTime},'yyyy-mm-DD hh24:mi:ss') and to_date(#{param.endTime},'yyyy-mm-DD hh24:mi:ss')
and phasic_type!='T'
and pha
sic_type!='T'
and lineid = #{param.lineId}
group by timeid,PHASIC_TYPE
order by timeId asc

View File

@@ -3,10 +3,9 @@ package com.njcn.harmonic.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.dto.PollutionGridDiagramDTO;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.param.RunManageParam;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
@@ -15,7 +14,6 @@ import com.njcn.harmonic.pojo.po.RStatPollutionSubstationM;
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
import com.njcn.harmonic.pojo.vo.PollutionVO;
import com.njcn.harmonic.pojo.vo.SubstationVo;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
@@ -58,7 +56,7 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
/**
* @Description: getLineInfoById
* @Param: [param]
* @return: java.util.List<com.njcn.device.pq.pojo.dto.PollutionLineDTO>
* @return: java.util.List<com.njcn.device.biz.pojo.dto.PollutionLineDTO>
* @Author: clam
* @Date: 2022/11/3
*/

View File

@@ -1,12 +1,19 @@
package com.njcn.harmonic.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.biz.commApi.CommLineClient;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.harmonic.mapper.RStatComassesDMapper;
@@ -16,6 +23,10 @@ import com.njcn.harmonic.pojo.po.day.RStatComassesDPO;
import com.njcn.harmonic.pojo.vo.ComAssessVO;
import com.njcn.harmonic.service.ComAssessService;
import com.njcn.harmonic.utils.HarmonicComAssesUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -26,6 +37,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @version 1.0.0
@@ -39,6 +51,10 @@ public class ComAssessServiceImpl extends ServiceImpl<RStatComassesDMapper, RSta
private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final HarmonicComAssesUtil comAssesUtil;
private final LineFeignClient lineFeignClient;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final CommLineClient commLineClient;
private final DicDataFeignClient dicDataFeignClient;
@Override
public List<ComAssessVO> getComAccessData(DeviceInfoParam.BusinessParam comAccessParam) {
@@ -46,66 +62,140 @@ public class ComAssessServiceImpl extends ServiceImpl<RStatComassesDMapper, RSta
List<String> lineList = new ArrayList<>();
//监测点信息
List<PollutionLineDTO> lineInfo = new ArrayList<>();
//按部门分类的实际运行终端综合信息
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(comAccessParam).getData();
deviceDataList.forEach(dept->{
lineList.addAll(dept.getLineIndexes());
});
if (!CollectionUtils.isEmpty(lineList)){
PollutionParamDTO paramDTO = new PollutionParamDTO();
paramDTO.setLineList(lineList);
lineInfo = lineFeignClient.getLineInfo(paramDTO).getData();
}
Map<String,List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
//查询所有信息
List<PQSComAssesPO> comAccessData = getComAccessData(lineList, comAccessParam.getSearchBeginTime(), comAccessParam.getSearchEndTime());
//按变电站分类的实际运行终端综合信息
String systemType = commTerminalGeneralClient.isPqOrPms().getData();
if(systemType.equals("pq")) {
//按部门分类的实际运行终端综合信息
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(comAccessParam).getData();
deviceDataList.forEach(dept -> {
lineList.addAll(dept.getLineIndexes());
});
if (!CollectionUtils.isEmpty(lineList)) {
PollutionParamDTO paramDTO = new PollutionParamDTO();
paramDTO.setLineList(lineList);
lineInfo = lineFeignClient.getLineInfo(paramDTO).getData();
}
Map<String, List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
//查询所有信息
List<PQSComAssesPO> comAccessData = getComAccessData(lineList, comAccessParam.getSearchBeginTime(), comAccessParam.getSearchEndTime());
//按变电站分类的实际运行终端综合信息
// List<GeneralDeviceDTO> subDataList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(comAccessParam).getData();
if (!CollectionUtils.isEmpty(deviceDataList)) {
for(GeneralDeviceDTO dept : deviceDataList){
if(CollectionUtils.isEmpty(dept.getLineIndexes())){
continue;
}
ComAssessVO comAssessVO = new ComAssessVO();
comAssessVO.setName(dept.getName());
comAssessVO.setMonitors(dept.getLineIndexes().size());
if (!CollectionUtils.isEmpty(deviceDataList)) {
for (GeneralDeviceDTO dept : deviceDataList) {
if (CollectionUtils.isEmpty(dept.getLineIndexes())) {
continue;
}
ComAssessVO comAssessVO = new ComAssessVO();
comAssessVO.setName(dept.getName());
comAssessVO.setMonitors(dept.getLineIndexes().size());
List<ComAssessDTO> childrenDTOS = new ArrayList<>();
List<ComAssessVO> children=new ArrayList<>();
if (!CollectionUtils.isEmpty(dept.getSubIndexes())) {
dept.getSubIndexes().forEach(sub -> {
//获取变电站信息
List<PollutionLineDTO> l1 = map.get(sub);
ComAssessVO child = new ComAssessVO();
child.setName(l1.get(0).getSubstation());
child.setMonitors(l1.size());
//监测点id
List<String> lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
List<PQSComAssesPO> collect = comAccessData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
setResults(collect,childrenDTOS);
float allComAss = comAssesUtil.getAllComAss(childrenDTOS);
String lv = getLevel(allComAss);
child.setData(allComAss);
child.setLevel(lv);
children.add(child);
});
List<ComAssessDTO> childrenDTOS = new ArrayList<>();
List<ComAssessVO> children = new ArrayList<>();
if (!CollectionUtils.isEmpty(dept.getSubIndexes())) {
dept.getSubIndexes().forEach(sub -> {
//获取变电站信息
List<PollutionLineDTO> l1 = map.get(sub);
ComAssessVO child = new ComAssessVO();
child.setName(l1.get(0).getSubstation());
child.setMonitors(l1.size());
//监测点id
List<String> lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
List<PQSComAssesPO> collect = comAccessData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
setResults(collect, childrenDTOS);
float allComAss = comAssesUtil.getAllComAss(childrenDTOS);
String lv = getLevel(allComAss);
child.setData(allComAss);
child.setLevel(lv);
children.add(child);
});
}
List<String> lineIds = dept.getLineIndexes();
List<PQSComAssesPO> collect = comAccessData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
List<ComAssessDTO> dtos = new ArrayList<>();
setResults(collect, dtos);
float allComAss = comAssesUtil.getAllComAss(dtos);
String lv = getLevel(allComAss);
comAssessVO.setData(allComAss);
comAssessVO.setLevel(lv);
comAssessVO.setChildren(children);
comAssessVOList.add(comAssessVO);
}
List<String> lineIds = dept.getLineIndexes();
List<PQSComAssesPO> collect = comAccessData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
List<ComAssessDTO> dtos = new ArrayList<>();
setResults(collect,dtos);
float allComAss = comAssesUtil.getAllComAss(dtos);
String lv = getLevel(allComAss);
comAssessVO.setData(allComAss);
comAssessVO.setLevel(lv);
comAssessVO.setChildren(children);
comAssessVOList.add(comAssessVO);
};
;
}
List<ComAssessVO> list = comAssessVOList.stream().sorted(Comparator.comparing(ComAssessVO::getData).reversed()).collect(Collectors.toList());
return list;
}else {
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(), DicDataTypeEnum.LINE_STATE.getCode()).getData();
PmsDeviceInfoParam param = new PmsDeviceInfoParam();
param.setDeptIndex(comAccessParam.getDeptIndex());
SimpleDTO simpleDTO = new SimpleDTO();
simpleDTO.setId(dictData.getId());
param.setMonitorState(Stream.of(simpleDTO).collect(Collectors.toList()));
param.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> deviceDataList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(param).getData();
deviceDataList.forEach(dept -> {
lineList.addAll(dept.getMonitorIdList());
});
if (!CollectionUtils.isEmpty(lineList)) {
lineInfo = commLineClient.getLineInfo(lineList).getData();
}
Map<String, List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
//查询所有信息
List<PQSComAssesPO> comAccessData = getComAccessData(lineList, comAccessParam.getSearchBeginTime(), comAccessParam.getSearchEndTime());
//按变电站分类的实际运行终端综合信息
if (!CollectionUtils.isEmpty(deviceDataList)) {
for (PmsGeneralDeviceDTO dept : deviceDataList) {
if (CollectionUtils.isEmpty(dept.getMonitorIdList())) {
continue;
}
ComAssessVO comAssessVO = new ComAssessVO();
comAssessVO.setName(dept.getName());
comAssessVO.setMonitors(dept.getMonitorIdList().size());
List<ComAssessDTO> childrenDTOS = new ArrayList<>();
List<ComAssessVO> children = new ArrayList<>();
if (!CollectionUtils.isEmpty(dept.getPowerrIdList())) {
dept.getPowerrIdList().forEach(sub -> {
//获取变电站信息
List<PollutionLineDTO> l1 = map.get(sub);
ComAssessVO child = new ComAssessVO();
child.setName(l1.get(0).getSubstation());
child.setMonitors(l1.size());
//监测点id
List<String> lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
List<PQSComAssesPO> collect = comAccessData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
setResults(collect, childrenDTOS);
float allComAss = comAssesUtil.getAllComAss(childrenDTOS);
String lv = getLevel(allComAss);
child.setData(allComAss);
child.setLevel(lv);
children.add(child);
});
}
List<String> lineIds = dept.getMonitorIdList();
List<PQSComAssesPO> collect = comAccessData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
List<ComAssessDTO> dtos = new ArrayList<>();
setResults(collect, dtos);
float allComAss = comAssesUtil.getAllComAss(dtos);
String lv = getLevel(allComAss);
comAssessVO.setData(allComAss);
comAssessVO.setLevel(lv);
comAssessVO.setChildren(children);
comAssessVOList.add(comAssessVO);
}
;
}
List<ComAssessVO> list = comAssessVOList.stream().sorted(Comparator.comparing(ComAssessVO::getData).reversed()).collect(Collectors.toList());
return list;
}
List<ComAssessVO> list = comAssessVOList.stream().sorted(Comparator.comparing(ComAssessVO::getData).reversed()).collect(Collectors.toList());
return list;
}
//设置保留四位小数

View File

@@ -11,7 +11,7 @@ import com.njcn.common.config.GeneralInfo;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.harmonic.constant.Param;

View File

@@ -15,10 +15,7 @@ import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.dto.*;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
@@ -59,7 +56,6 @@ import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
@@ -523,7 +519,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
/**
* @Description: getLineInfoById
* @Param: [param]
* @return: java.util.List<com.njcn.device.pq.pojo.dto.PollutionLineDTO>
* @return: java.util.List<com.njcn.device.biz.pojo.dto.PollutionLineDTO>
* @Author: clam
* @Date: 2022/11/3
*/

View File

@@ -1,7 +1,7 @@
package com.njcn.harmonic.service.majornetwork;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.harmonic.pojo.param.PVOverviewParam;
import java.util.List;

View File

@@ -16,7 +16,7 @@ import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.harmonic.mapper.RStatPollutionSubstationDPOMapper;
import com.njcn.harmonic.mapper.majornetwork.PVOverviewMapper;
import com.njcn.harmonic.pojo.param.PVOverviewParam;