辽宁功能调整
This commit is contained in:
@@ -20,7 +20,7 @@ public enum LineBaseEnum {
|
||||
PROVINCE_LEVEL(1, "省份"),
|
||||
GD_LEVEL(2, "供电公司"),
|
||||
SUB_LEVEL(3, "变电站"),
|
||||
DEVICE_LEVEL(4, "设备"),
|
||||
DEVICE_LEVEL(4, "终端"),
|
||||
SUB_V_LEVEL(5, "母线"),
|
||||
LINE_LEVEL(6, "监测点"),
|
||||
USER_LEVEL(7,"用户"),
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.njcn.device.pq.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: cdf
|
||||
* @CreateTime: 2025-04-25
|
||||
* @Description: 区分电网侧非电网侧信息台账信息
|
||||
*/
|
||||
@Data
|
||||
public class MonitorPowerDTO {
|
||||
|
||||
private List<MonitorBase> userMonitorList;
|
||||
|
||||
private List<MonitorBase> powerMonitorList;
|
||||
|
||||
|
||||
private List<MonitorBase> userStationList;
|
||||
|
||||
private List<MonitorBase> powerStationList;
|
||||
|
||||
@Data
|
||||
public static class MonitorBase{
|
||||
|
||||
private String id;
|
||||
|
||||
private String pid;
|
||||
|
||||
private String pids;
|
||||
|
||||
private String name;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
private String objId;
|
||||
|
||||
private String bigObjType;
|
||||
|
||||
private String smallObjType;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ public class OverLimitLineDTO {
|
||||
|
||||
private String lineObjectName;
|
||||
|
||||
private String objId;
|
||||
|
||||
private String monitorNumber;
|
||||
|
||||
private String subName;
|
||||
|
||||
@@ -738,7 +738,7 @@
|
||||
A1.Name lineName,
|
||||
C1.Name lineScale,
|
||||
C2.Name loadType,
|
||||
D.Obj_Name lineObjectName,
|
||||
D.Obj_Id objId,
|
||||
D.Monitor_Id monitorNumber,
|
||||
A4.Name subName,
|
||||
C3.Name subScale,
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.njcn.device.pq.enums.LineBaseEnum;
|
||||
import com.njcn.device.pq.mapper.*;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
|
||||
import com.njcn.device.pq.pojo.dto.MonitorPowerDTO;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||
import com.njcn.device.pq.pojo.param.*;
|
||||
@@ -772,6 +773,8 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
||||
return pollutionLineInfoDTOList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
|
||||
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());
|
||||
|
||||
@@ -230,6 +230,12 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
if (CollectionUtil.isNotEmpty(generalDeviceDTOList)) {
|
||||
// 创建集合
|
||||
List<TerminalTree> taiZhang = new ArrayList<>();
|
||||
// 获取用户
|
||||
UserReportParam userReportParam = new UserReportParam();
|
||||
List<UserLedgerVO> userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData();
|
||||
userReportPOList = userReportPOList.stream().filter(it -> StrUtil.isNotBlank(it.getStationId())).collect(Collectors.toList());
|
||||
Map<String, UserLedgerVO> userMap = userReportPOList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity()));
|
||||
|
||||
// 遍历集合
|
||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||
// 创建实体类
|
||||
@@ -253,10 +259,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
Map<String,List<TerminalTree>> temMap = new HashMap<>();
|
||||
if(CollUtil.isNotEmpty(userLineList)) {
|
||||
Map<String, List<TerminalTree>> objMap = userLineList.stream().collect(Collectors.groupingBy(TerminalTree::getObjId));
|
||||
UserReportParam userReportParam = new UserReportParam();
|
||||
List<UserLedgerVO> userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData();
|
||||
userReportPOList = userReportPOList.stream().filter(it -> StrUtil.isNotBlank(it.getStationId())).collect(Collectors.toList());
|
||||
Map<String, UserLedgerVO> userMap = userReportPOList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity()));
|
||||
List<TerminalTree> temList = new ArrayList<>();
|
||||
objMap.forEach((objId, monitorList) -> {
|
||||
UserLedgerVO userLedgerVO = userMap.get(objId);
|
||||
@@ -275,7 +277,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
tree.setPids(String.valueOf(devSize));
|
||||
temList.add(tree);
|
||||
});
|
||||
|
||||
temMap = temList.stream().collect(Collectors.groupingBy(TerminalTree::getPid));
|
||||
}
|
||||
|
||||
|
||||
@@ -20,4 +20,7 @@ public class HarmonicPublicParam extends DeviceInfoParam.BusinessParam{
|
||||
|
||||
@ApiModelProperty(name = "type", value = "区分(0:pq 1:pms)")
|
||||
private Integer type=0;
|
||||
|
||||
@ApiModelProperty(name = "stationType", value = "(0:变电站 1:非变电站场站)")
|
||||
private Integer stationType;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,13 @@ public class SteadyQualifyVO implements Serializable {
|
||||
* 父级id集合
|
||||
*/
|
||||
@ApiModelProperty("父级id集合")
|
||||
private String pidS;
|
||||
private String pids;
|
||||
|
||||
@ApiModelProperty("排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty("监测对象id")
|
||||
private String objId;
|
||||
/**
|
||||
* 电压等级
|
||||
*/
|
||||
|
||||
@@ -112,12 +112,20 @@
|
||||
<artifactId>cs-device-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.njcn.platform</groupId>
|
||||
<artifactId>data-processing-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>supervision-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -50,7 +50,19 @@ public class PollutionSubstationController extends BaseController {
|
||||
public HttpResult<List<PollutionSubstationVO>> getPollutionSubstationData(@RequestBody @Validated PollutionSubstationQuryParam pollutionSubstationQuryParam) {
|
||||
String methodDescribe = getMethodDescribe ("getPollutionSubstationData");
|
||||
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, pollutionSubstationQuryParam);
|
||||
List<PollutionSubstationVO> list = pollutionSubstationService.getPollutionSubstationData (pollutionSubstationQuryParam);
|
||||
List<PollutionSubstationVO> list = pollutionSubstationService.getPollutionSubstationData(pollutionSubstationQuryParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult (CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getEnergyStationPollution")
|
||||
@ApiOperation("新能源场站污区图")
|
||||
@ApiImplicitParam(name = "pollutionSubstationQuryParam", value = "污染指标查询参数", required = true)
|
||||
public HttpResult<List<PollutionSubstationVO>> getEnergyStationPollution(@RequestBody @Validated PollutionSubstationQuryParam pollutionSubstationQuryParam) {
|
||||
String methodDescribe = getMethodDescribe ("getEnergyStationPollution");
|
||||
List<PollutionSubstationVO> list = pollutionSubstationService.getEnergyStationPollution(pollutionSubstationQuryParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult (CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,15 @@
|
||||
A.Pid,
|
||||
A.Pids,
|
||||
A.Name name,
|
||||
A.sort,
|
||||
C.Name voltageLevel,
|
||||
D.IP networkParam,
|
||||
C1.Name factoryName,
|
||||
A.Name lineName
|
||||
A.Name lineName,
|
||||
detail.obj_id
|
||||
FROM
|
||||
pq_line A,
|
||||
pq_line_detail detail,
|
||||
pq_voltage B,
|
||||
sys_dict_data C,
|
||||
pq_device D,
|
||||
@@ -25,6 +28,7 @@
|
||||
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND A.id = detail.id
|
||||
AND A.Pid = B.Id
|
||||
AND B.Scale = C.Id
|
||||
AND A.Pid = A1.Id
|
||||
@@ -37,7 +41,8 @@
|
||||
Id,
|
||||
Pid,
|
||||
Pids,
|
||||
Name
|
||||
Name,
|
||||
sort
|
||||
FROM
|
||||
pq_line
|
||||
WHERE
|
||||
|
||||
@@ -36,6 +36,10 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
||||
* @Date: 2022/10/13
|
||||
*/
|
||||
List<PollutionSubstationVO> getPollutionSubstationData(PollutionSubstationQuryParam pollutionSubstationQuryParam);
|
||||
|
||||
|
||||
List<PollutionSubstationVO> getEnergyStationPollution(PollutionSubstationQuryParam pollutionSubstationQuryParam);
|
||||
|
||||
/**
|
||||
* @Description: getDeptSubstationRelations
|
||||
* @Param: [param]
|
||||
|
||||
@@ -37,6 +37,9 @@ import com.njcn.harmonic.pojo.vo.OverAreaVO;
|
||||
import com.njcn.harmonic.pojo.vo.WarningSubstationVO;
|
||||
import com.njcn.harmonic.service.IAnalyzeService;
|
||||
import com.njcn.poi.excel.ExcelUtil;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
||||
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
@@ -83,6 +86,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
private final EventDetailFeignClient eventDetailFeignClient;
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||
|
||||
@Override
|
||||
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
|
||||
Page<OverAreaLimitVO> page = new Page<>();
|
||||
@@ -317,10 +322,17 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
.in("r_stat_limit_target_d.my_index", list).between("r_stat_limit_target_d.time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))));
|
||||
Map<String, List<RStatLimitTargetDPO>> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId));
|
||||
|
||||
|
||||
List<UserLedgerVO> userLedgerVOList = userLedgerFeignClient.selectUserList(new UserReportParam()).getData();
|
||||
Map<String,UserLedgerVO> userLedgerVOMap = userLedgerVOList.stream().collect(Collectors.toMap(UserLedgerVO::getId,Function.identity()));
|
||||
|
||||
for (OverLimitLineDTO vo : overLimitLineList) {
|
||||
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
||||
BeanUtil.copyProperties(vo, monitorOverLimitVO);
|
||||
MonitorOverLimitVO source = monMap.get(vo.getId()).get(0);
|
||||
UserLedgerVO userLedgerVO = userLedgerVOMap.getOrDefault(vo.getObjId(),null);
|
||||
monitorOverLimitVO.setLineObjectName(Objects.nonNull(userLedgerVO)?userLedgerVO.getProjectName():"/");
|
||||
monitorOverLimitVO.setOverDay(source.getOverDay());
|
||||
monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay());
|
||||
monitorOverLimitVO.setFreqOverDay(source.getFreqOverDay());
|
||||
|
||||
@@ -15,6 +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.enums.RunFlagEnum;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
@@ -28,9 +29,11 @@ import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
import com.njcn.device.pq.api.LineFeignClient;
|
||||
import com.njcn.device.pq.api.SubstationFeignClient;
|
||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||
import com.njcn.device.pq.pojo.dto.*;
|
||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.pq.pojo.po.LineDetail;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
@@ -45,6 +48,10 @@ import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
||||
import com.njcn.supervision.pojo.vo.user.NewUserReportVO;
|
||||
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
@@ -111,6 +118,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
||||
|
||||
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||
|
||||
/**
|
||||
* @param pollutionSubstationQuryParam
|
||||
* @Description: getPollutionSubstationData
|
||||
@@ -186,6 +195,32 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PollutionSubstationVO> getEnergyStationPollution(PollutionSubstationQuryParam pollutionSubstationQuryParam) {
|
||||
List<PollutionSubstationVO> result = new ArrayList<>();
|
||||
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||
deptGetLineParam.setDeptId(pollutionSubstationQuryParam.getDeptIndex());
|
||||
deptGetLineParam.setLineRunFlag(RunFlagEnum.RUNNING.getStatus());
|
||||
List<DeptGetChildrenMoreDTO> deptLineList = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||
if(CollUtil.isNotEmpty(deptLineList)){
|
||||
UserReportParam userReportParam = new UserReportParam();
|
||||
List<UserLedgerVO> userLedgerList = userLedgerFeignClient.selectUserList(userReportParam).getData();
|
||||
Map<String,UserLedgerVO> userMap = userLedgerList.stream().collect(Collectors.toMap(UserLedgerVO::getId,Function.identity()));
|
||||
|
||||
for(DeptGetChildrenMoreDTO dto : deptLineList){
|
||||
List<LineDevGetDTO> monitorList = dto.getLineBaseList();
|
||||
if(CollUtil.isEmpty(monitorList)){
|
||||
continue;
|
||||
}
|
||||
List<String> objIds = monitorList.stream().map(LineDevGetDTO::getObjId).distinct().collect(Collectors.toList());
|
||||
//List<UserLedgerVO>userLedgerList.stream().filter(it->objIds.contains(it.getId())).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: getDeptSubstationRelations
|
||||
* @Param: [param]
|
||||
@@ -201,8 +236,12 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||
return list;
|
||||
}
|
||||
|
||||
List<UserLedgerVO> userLedgerVOList = userLedgerFeignClient.selectUserList(new UserReportParam()).getData();
|
||||
Map<String,UserLedgerVO> userLedgerVOMap = userLedgerVOList.stream().collect(Collectors.toMap(UserLedgerVO::getId,Function.identity()));
|
||||
|
||||
if (harmonicPublicParam.getType() != 0) {
|
||||
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
||||
/* PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
||||
pmsDeviceInfoParam.setDeptIndex(harmonicPublicParam.getDeptIndex());
|
||||
//获取统计类型
|
||||
pmsDeviceInfoParam.setStatisticalType(harmonicPublicParam.getStatisticalType());
|
||||
@@ -246,7 +285,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
pollutionVO.setChildren(powersVO);
|
||||
}
|
||||
list.add(pollutionVO);
|
||||
});
|
||||
});*/
|
||||
|
||||
} else {
|
||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||
@@ -264,18 +303,48 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
pollutionVO.setName(name + "\n(" + temp.getLineIndexes().size() + ")");
|
||||
pollutionVO.setData(3.14159);
|
||||
setData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionVO, detpid);
|
||||
|
||||
|
||||
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
||||
subIndexes.forEach(subIndex -> {
|
||||
PollutionVO pollutionsubVO = new PollutionVO();
|
||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(subIndex).getData();
|
||||
String id = pollutionSubstationDTO.getId();
|
||||
pollutionsubVO.setId(id);
|
||||
pollutionsubVO.setName(pollutionSubstationDTO.getName());
|
||||
pollutionsubVO.setPid(temp.getIndex());
|
||||
pollutionsubVO.setData(3.14159);
|
||||
setSubData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionsubVO, id);
|
||||
subPollutionVO.add(pollutionsubVO);
|
||||
});
|
||||
|
||||
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(temp.getLineIndexes()).getData();
|
||||
if(CollUtil.isNotEmpty(lineDetailList)){
|
||||
List<LineDetail> userLedgerList = lineDetailList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||
List<LineDetail> powerLedgerList = lineDetailList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(userLedgerList)){
|
||||
List<String> objIds = userLedgerList.stream().map(LineDetail::getObjId).distinct().collect(Collectors.toList());
|
||||
objIds.forEach(obj->{
|
||||
PollutionVO pollutionsubVO = new PollutionVO();
|
||||
if(userLedgerVOMap.containsKey(obj)){
|
||||
UserLedgerVO userLedgerVO = userLedgerVOMap.get(obj);
|
||||
pollutionsubVO.setId(userLedgerVO.getId());
|
||||
pollutionsubVO.setName(userLedgerVO.getProjectName());
|
||||
pollutionsubVO.setPid(temp.getIndex());
|
||||
pollutionsubVO.setData(3.14159);
|
||||
setSubData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionsubVO, userLedgerVO.getId());
|
||||
subPollutionVO.add(pollutionsubVO);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if(CollUtil.isNotEmpty(powerLedgerList)){
|
||||
List<String> ids = powerLedgerList.stream().map(LineDetail::getId).collect(Collectors.toList());
|
||||
List<Line> lineList = lineFeignClient.getBaseLineList(ids).getData();
|
||||
List<String> subIds = lineList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).distinct().collect(Collectors.toList());
|
||||
List<Line> subList = lineFeignClient.getBaseLineList(subIds).getData();
|
||||
subList.forEach(station->{
|
||||
PollutionVO pollutionsubVO = new PollutionVO();
|
||||
pollutionsubVO.setId(station.getId());
|
||||
pollutionsubVO.setName(station.getName());
|
||||
pollutionsubVO.setPid(temp.getIndex());
|
||||
pollutionsubVO.setData(3.14159);
|
||||
setSubData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionsubVO, station.getId());
|
||||
subPollutionVO.add(pollutionsubVO);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
pollutionVO.setChildren(subPollutionVO);
|
||||
list.add(pollutionVO);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalTree;
|
||||
import com.njcn.harmonic.mapper.SteadyQualifyMapper;
|
||||
import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
@@ -18,12 +19,16 @@ import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.service.SteadyQualifyService;
|
||||
import com.njcn.harmonic.utils.PubUtils;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
||||
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -41,25 +46,29 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
|
||||
private final IRStatLimitRateDService rateDService;
|
||||
|
||||
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||
|
||||
@Override
|
||||
public List<SteadyQualifyVO> getSteadyQualifyData(DeviceInfoParam.BusinessParam steadyParam) {
|
||||
List<SteadyQualifyVO> steadyQualifyList = new ArrayList<>();
|
||||
|
||||
UserReportParam userReportParam = new UserReportParam();
|
||||
List<UserLedgerVO> userLedgerList = userLedgerFeignClient.selectUserList(userReportParam).getData();
|
||||
Map<String, UserLedgerVO> userMap = userLedgerList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity()));
|
||||
|
||||
//按照条件获取实际运行终端综合信息
|
||||
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyParam).getData();
|
||||
//组装监测点Top层集合
|
||||
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||
if (CollectionUtils.isEmpty(lineIndexes)) {
|
||||
if (CollectionUtils.isEmpty(generalDeviceDTO.getLineIndexes())) {
|
||||
continue;
|
||||
}
|
||||
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
||||
steadyQualifyVO.setId(generalDeviceDTO.getIndex());
|
||||
steadyQualifyVO.setName(generalDeviceDTO.getName());
|
||||
// List<SteadyQualifyVO> lineData = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
|
||||
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(generalDeviceDTO.getLineIndexes(), steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||
//组装子集级数据树
|
||||
List<SteadyQualifyVO> treeList = getTreeData(qualifiesRate, lineIndexes);
|
||||
List<SteadyQualifyVO> treeList = getTreeData(qualifiesRate, generalDeviceDTO,userMap);
|
||||
if (CollectionUtil.isNotEmpty(treeList)) {
|
||||
List<SteadyQualifyVO> flicker = treeList.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> freqOffset = treeList.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList());
|
||||
@@ -205,20 +214,10 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
/**
|
||||
* 获取父级每层数据
|
||||
*/
|
||||
private List<SteadyQualifyVO> getTreeData(List<SteadyQualifyDTO> qualifiesRate, List<String> lineIndexes) {
|
||||
private List<SteadyQualifyVO> getTreeData(List<SteadyQualifyDTO> qualifiesRate, GeneralDeviceDTO generalDeviceDTO,Map<String, UserLedgerVO> userMap) {
|
||||
//监测点集合
|
||||
List<SteadyQualifyVO> monitorList = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
|
||||
//母线集合
|
||||
List<SteadyQualifyVO> busBarList = steadyQualifyMapper.getLineInfoByList(monitorList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
|
||||
//终端集合
|
||||
List<SteadyQualifyVO> deviceList = steadyQualifyMapper.getLineInfoByList(busBarList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
|
||||
//变电站集合
|
||||
List<SteadyQualifyVO> substationList = steadyQualifyMapper.getLineInfoByList(deviceList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
|
||||
//供电公司集合
|
||||
List<SteadyQualifyVO> powerCompanyList = steadyQualifyMapper.getLineInfoByList(substationList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
|
||||
|
||||
// List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||
monitorList.forEach(steadyQualifyVO -> {
|
||||
List<SteadyQualifyVO> treeMonitorList = steadyQualifyMapper.getSteadyQualifyData(generalDeviceDTO.getLineIndexes());
|
||||
treeMonitorList.forEach(steadyQualifyVO -> {
|
||||
SteadyQualifyVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, steadyQualifyVO.getId());
|
||||
steadyQualifyVO.setFlicker(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFlicker()));
|
||||
steadyQualifyVO.setFreqOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFreqOffset()));
|
||||
@@ -229,21 +228,85 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicCurrent()));
|
||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
||||
});
|
||||
setChildesList(substationList, monitorList);
|
||||
setFatherDistortion(substationList);
|
||||
|
||||
powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList());
|
||||
setFatherDistortion(powerCompanyList);
|
||||
List<SteadyQualifyVO> userLineList = treeMonitorList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> otherLineList = treeMonitorList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
|
||||
|
||||
Map<String,List<SteadyQualifyVO>> temMap = new HashMap<>();
|
||||
if(CollUtil.isNotEmpty(userLineList)) {
|
||||
Map<String, List<SteadyQualifyVO>> objMap = userLineList.stream().collect(Collectors.groupingBy(SteadyQualifyVO::getObjId));
|
||||
List<SteadyQualifyVO> temList = new ArrayList<>();
|
||||
objMap.forEach((objId, monitorList) -> {
|
||||
UserLedgerVO userLedgerVO = userMap.get(objId);
|
||||
SteadyQualifyVO tree = new SteadyQualifyVO();
|
||||
tree.setPid(userLedgerVO.getStationId());
|
||||
tree.setId(userLedgerVO.getId());
|
||||
tree.setChildren(monitorList);
|
||||
tree.setName(userLedgerVO.getProjectName());
|
||||
setFatherDistortion(tree,monitorList);
|
||||
temList.add(tree);
|
||||
});
|
||||
temMap = temList.stream().collect(Collectors.groupingBy(SteadyQualifyVO::getPid));
|
||||
}
|
||||
//变电站集合
|
||||
List<SteadyQualifyVO> substationList = steadyQualifyMapper.getLineInfoByList(generalDeviceDTO.getSubIndexes());
|
||||
//供电公司集合
|
||||
List<SteadyQualifyVO> powerCompanyList = steadyQualifyMapper.getLineInfoByList(generalDeviceDTO.getGdIndexes());
|
||||
|
||||
dealChildrenData(substationList,otherLineList,temMap,true);
|
||||
|
||||
dealChildrenData(powerCompanyList,substationList,temMap,false);
|
||||
|
||||
return powerCompanyList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 处理变电站
|
||||
*
|
||||
* @param targetData
|
||||
* @param childrenData
|
||||
* @param isLine
|
||||
*/
|
||||
private void dealChildrenData(List<SteadyQualifyVO> targetData, List<SteadyQualifyVO> childrenData, Map<String,List<SteadyQualifyVO>> userLineMap, boolean isLine) {
|
||||
// 创建一个map集合,用于封装对象
|
||||
Map<String, List<SteadyQualifyVO>> groupLine;
|
||||
if (isLine) {
|
||||
// 通过stream流分组
|
||||
groupLine = childrenData.stream().collect(Collectors.groupingBy(terminalTree -> {
|
||||
// 获取父id字符串,通过 逗号 分割 成一个数组
|
||||
String[] pid = terminalTree.getPids().split(StrUtil.COMMA);
|
||||
return pid[LineBaseEnum.SUB_LEVEL.getCode()];
|
||||
}));
|
||||
} else {
|
||||
groupLine = childrenData.stream().collect(Collectors.groupingBy(SteadyQualifyVO::getPid));
|
||||
}
|
||||
//变电站
|
||||
targetData.forEach(terminalTree -> {
|
||||
List<SteadyQualifyVO> terminalTrees = new ArrayList<>();
|
||||
if(groupLine.containsKey(terminalTree.getId())) {
|
||||
terminalTrees.addAll(groupLine.get(terminalTree.getId()).stream().sorted(Comparator.comparing(SteadyQualifyVO::getSort)).collect(Collectors.toList()));
|
||||
}
|
||||
if (isLine) {
|
||||
//变电站集合
|
||||
if(userLineMap.containsKey(terminalTree.getId())){
|
||||
List<SteadyQualifyVO> userList = userLineMap.get(terminalTree.getId());
|
||||
terminalTrees.addAll(userList);
|
||||
}
|
||||
terminalTree.setChildren(terminalTrees);
|
||||
} else {
|
||||
terminalTree.setChildren(terminalTrees);
|
||||
}
|
||||
setFatherDistortion(terminalTree,terminalTrees);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算父级合格率
|
||||
*/
|
||||
private void setFatherDistortion(List<SteadyQualifyVO> list) {
|
||||
list.forEach(steadyQualifyVO -> {
|
||||
List<SteadyQualifyVO> children = steadyQualifyVO.getChildren();
|
||||
private void setFatherDistortion(SteadyQualifyVO steadyQualifyVO,List<SteadyQualifyVO> children) {
|
||||
List<SteadyQualifyVO> flicker = children.stream().filter(child -> !Objects.equals(child.getFlicker(), 3.14159)).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> freqOffset = children.stream().filter(child -> !Objects.equals(child.getFreqOffset(), 3.14159)).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> voltageOffset = children.stream().filter(child -> !Objects.equals(child.getVoltageOffset(), 3.14159)).collect(Collectors.toList());
|
||||
@@ -276,7 +339,6 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
if (!CollectionUtils.isEmpty(InterHarmonic)) {
|
||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(NumberUtil.round(InterHarmonic.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -289,12 +351,14 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
private void setChildesList(List<SteadyQualifyVO> item, List<SteadyQualifyVO> childes) {
|
||||
Map<String, List<SteadyQualifyVO>> groupLine;
|
||||
groupLine = childes.stream().collect(Collectors.groupingBy(steadyQualifyVO -> {
|
||||
String[] pid = steadyQualifyVO.getPidS().split(",");
|
||||
String[] pid = steadyQualifyVO.getPids().split(",");
|
||||
return pid[LineBaseEnum.SUB_LEVEL.getCode()];
|
||||
}));
|
||||
item.stream().peek(steadyQualifyVO -> {
|
||||
if (!CollectionUtils.isEmpty(groupLine.get(steadyQualifyVO.getId()))) {
|
||||
steadyQualifyVO.setChildren(groupLine.get(steadyQualifyVO.getId()));
|
||||
setFatherDistortion(steadyQualifyVO,steadyQualifyVO.getChildren());
|
||||
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
@@ -671,7 +735,6 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
||||
});
|
||||
setChildesList(substationList, monitorList);
|
||||
setFatherDistortion(substationList);
|
||||
|
||||
|
||||
return substationList;
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.njcn.harmonic.service.report;
|
||||
|
||||
import com.njcn.harmonic.pojo.param.ReportSearchParam;
|
||||
import com.njcn.harmonic.pojo.po.ExcelRptTemp;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public interface CnCustomReportService {
|
||||
|
||||
|
||||
/**
|
||||
* 根据id获取模板
|
||||
* @author qijian
|
||||
* @date 2022/10/18
|
||||
*/
|
||||
void getCustomReport(ReportSearchParam reportSearchParam, HttpServletResponse response);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user