Merge remote-tracking branch 'origin/liaoning' into liaoning
This commit is contained in:
@@ -20,7 +20,7 @@ public enum LineBaseEnum {
|
|||||||
PROVINCE_LEVEL(1, "省份"),
|
PROVINCE_LEVEL(1, "省份"),
|
||||||
GD_LEVEL(2, "供电公司"),
|
GD_LEVEL(2, "供电公司"),
|
||||||
SUB_LEVEL(3, "变电站"),
|
SUB_LEVEL(3, "变电站"),
|
||||||
DEVICE_LEVEL(4, "设备"),
|
DEVICE_LEVEL(4, "终端"),
|
||||||
SUB_V_LEVEL(5, "母线"),
|
SUB_V_LEVEL(5, "母线"),
|
||||||
LINE_LEVEL(6, "监测点"),
|
LINE_LEVEL(6, "监测点"),
|
||||||
USER_LEVEL(7,"用户"),
|
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 lineObjectName;
|
||||||
|
|
||||||
|
private String objId;
|
||||||
|
|
||||||
private String monitorNumber;
|
private String monitorNumber;
|
||||||
|
|
||||||
private String subName;
|
private String subName;
|
||||||
|
|||||||
@@ -56,6 +56,10 @@ public class DeviceParam {
|
|||||||
@NotNull(message = "前置机索引不能为空")
|
@NotNull(message = "前置机索引不能为空")
|
||||||
private String nodeId;
|
private String nodeId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "nodeId",value = "所属前置机机进程",required = true)
|
||||||
|
@NotNull(message = "所属前置机机进程不能为空")
|
||||||
|
private Integer processNum;
|
||||||
|
|
||||||
@ApiModelProperty(name = "series",value = "装置识别码,采用3ds加密")
|
@ApiModelProperty(name = "series",value = "装置识别码,采用3ds加密")
|
||||||
private String series;
|
private String series;
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,13 @@ public class NodeParam {
|
|||||||
@NotNull(message = "前置机支持最大装置数不可为空")
|
@NotNull(message = "前置机支持最大装置数不可为空")
|
||||||
private Integer nodeDevNum;
|
private Integer nodeDevNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前置机支持最大进程数量
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(name = "nodeDevNum",value = "前置机支持最大进程数量")
|
||||||
|
@NotNull(message = "前置机支持最大进程数量")
|
||||||
|
private Integer maxProcessNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排序
|
* 排序
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -131,6 +132,8 @@ public class DeviceVO implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "sort",value = "排序",required = true)
|
@ApiModelProperty(name = "sort",value = "排序",required = true)
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
@ApiModelProperty(value = "所属前置机机进程")
|
||||||
|
private Integer processNum;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty(name = "subVoltageVOList",value = "母线集合")
|
@ApiModelProperty(name = "subVoltageVOList",value = "母线集合")
|
||||||
|
|||||||
@@ -738,7 +738,7 @@
|
|||||||
A1.Name lineName,
|
A1.Name lineName,
|
||||||
C1.Name lineScale,
|
C1.Name lineScale,
|
||||||
C2.Name loadType,
|
C2.Name loadType,
|
||||||
D.Obj_Name lineObjectName,
|
D.Obj_Id objId,
|
||||||
D.Monitor_Id monitorNumber,
|
D.Monitor_Id monitorNumber,
|
||||||
A4.Name subName,
|
A4.Name subName,
|
||||||
C3.Name subScale,
|
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.mapper.*;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
|
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.PollutionParamDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||||
import com.njcn.device.pq.pojo.param.*;
|
import com.njcn.device.pq.pojo.param.*;
|
||||||
@@ -772,6 +773,8 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
return pollutionLineInfoDTOList;
|
return pollutionLineInfoDTOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
|
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
|
||||||
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());
|
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());
|
||||||
|
|||||||
@@ -290,37 +290,37 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
coderM3d(deviceDetail, false);
|
coderM3d(deviceDetail, false);
|
||||||
deviceMapper.insert(deviceDetail);
|
deviceMapper.insert(deviceDetail);
|
||||||
//添加装置进程号
|
//添加装置进程号
|
||||||
Node nodeById = nodeService.getNodeById(deviceDetail.getNodeId());
|
// Node nodeById = nodeService.getNodeById(deviceDetail.getNodeId());
|
||||||
List<Device> devices = deviceMapper.selectList(new QueryWrapper<Device>().lambda().eq(Device::getNodeId, deviceDetail.getNodeId()));
|
// List<Device> devices = deviceMapper.selectList(new QueryWrapper<Device>().lambda().eq(Device::getNodeId, deviceDetail.getNodeId()));
|
||||||
Integer maxNodeDevNum = nodeById.getNodeDevNum();
|
// Integer maxNodeDevNum = nodeById.getNodeDevNum();
|
||||||
Integer maxProcessNum = nodeById.getMaxProcessNum();
|
// Integer maxProcessNum = nodeById.getMaxProcessNum();
|
||||||
if (devices.size() >= maxNodeDevNum) {
|
// if (devices.size() >= maxNodeDevNum) {
|
||||||
throw new BusinessException(PvDeviceResponseEnum.OVER_LIMIT);
|
// throw new BusinessException(PvDeviceResponseEnum.OVER_LIMIT);
|
||||||
}
|
// }
|
||||||
List<String> deviceIdList = devices.stream().map(Device::getId).collect(Collectors.toList());
|
// List<String> deviceIdList = devices.stream().map(Device::getId).collect(Collectors.toList());
|
||||||
List<DeviceProcess> deviceProcessList = deviceProcessService.lambdaQuery().in(DeviceProcess::getId, deviceIdList).list();
|
// List<DeviceProcess> deviceProcessList = deviceProcessService.lambdaQuery().in(DeviceProcess::getId, deviceIdList).list();
|
||||||
Map<Integer, Integer> processCountMap = null;
|
// Map<Integer, Integer> processCountMap = null;
|
||||||
if (Objects.nonNull(maxProcessNum)) {
|
// if (Objects.nonNull(maxProcessNum)) {
|
||||||
processCountMap = new HashMap<>();
|
// processCountMap = new HashMap<>();
|
||||||
for (int i = 0; i < maxProcessNum; i++) {
|
// for (int i = 0; i < maxProcessNum; i++) {
|
||||||
Integer processNum = i + 1;
|
// Integer processNum = i + 1;
|
||||||
long count = deviceProcessList.stream().filter(temp -> Objects.equals(temp.getProcessNo(), processNum)).count();
|
// long count = deviceProcessList.stream().filter(temp -> Objects.equals(temp.getProcessNo(), processNum)).count();
|
||||||
Integer processCount = Math.toIntExact(count);
|
// Integer processCount = Math.toIntExact(count);
|
||||||
processCountMap.put(processNum, processCount);
|
// processCountMap.put(processNum, processCount);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}else{
|
// }else{
|
||||||
processCountMap = new HashMap<>();
|
// processCountMap = new HashMap<>();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
//获取数量最少的线程号
|
// //获取数量最少的线程号
|
||||||
Optional<Integer> minKey = processCountMap.entrySet()
|
// Optional<Integer> minKey = processCountMap.entrySet()
|
||||||
.stream()
|
// .stream()
|
||||||
.min(Comparator.comparingInt(e -> e.getValue()))
|
// .min(Comparator.comparingInt(e -> e.getValue()))
|
||||||
.map(Map.Entry::getKey);
|
// .map(Map.Entry::getKey);
|
||||||
DeviceProcess deviceProcess = new DeviceProcess();
|
DeviceProcess deviceProcess = new DeviceProcess();
|
||||||
deviceProcess.setId(device.getId());
|
deviceProcess.setId(device.getId());
|
||||||
deviceProcess.setProcessNo(minKey.orElse(1));
|
deviceProcess.setProcessNo(deviceParam.getProcessNum());
|
||||||
deviceProcessService.saveOrUpdate(deviceProcess);
|
deviceProcessService.saveOrUpdate(deviceProcess);
|
||||||
//装置功能
|
//装置功能
|
||||||
List<DictData> funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData();
|
List<DictData> funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData();
|
||||||
@@ -469,7 +469,6 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
LineDetail lineDetail = new LineDetail();
|
LineDetail lineDetail = new LineDetail();
|
||||||
BeanUtils.copyProperties(lineParam, lineDetail);
|
BeanUtils.copyProperties(lineParam, lineDetail);
|
||||||
lineDetail.setId(line.getId());
|
lineDetail.setId(line.getId());
|
||||||
|
|
||||||
//判断国网监测点id
|
//判断国网监测点id
|
||||||
if (StrUtil.isNotBlank(lineDetail.getMonitorId())) {
|
if (StrUtil.isNotBlank(lineDetail.getMonitorId())) {
|
||||||
lineDetail.setMonitorFlag(1);
|
lineDetail.setMonitorFlag(1);
|
||||||
@@ -1224,6 +1223,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
//decoderM3d(deviceDetail);
|
//decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(obj.getId());
|
deviceVO.setDevIndex(obj.getId());
|
||||||
|
DeviceProcess deviceProcess = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, obj.getId()).one();
|
||||||
|
if(Objects.nonNull(deviceProcess)){
|
||||||
|
deviceVO.setProcessNum(deviceProcess.getProcessNo());
|
||||||
|
}
|
||||||
|
|
||||||
lineLambdaQueryWrapper.clear();
|
lineLambdaQueryWrapper.clear();
|
||||||
lineLambdaQueryWrapper.eq(Line::getPid, obj.getId())
|
lineLambdaQueryWrapper.eq(Line::getPid, obj.getId())
|
||||||
@@ -1320,6 +1323,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
//decoderM3d(deviceDetail);
|
//decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(device.getId());
|
deviceVO.setDevIndex(device.getId());
|
||||||
|
DeviceProcess deviceProcess = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, device.getId()).one();
|
||||||
|
if(Objects.nonNull(deviceProcess)){
|
||||||
|
deviceVO.setProcessNum(deviceProcess.getProcessNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
deviceVO.setSubVoltageVOList(subvList);
|
deviceVO.setSubVoltageVOList(subvList);
|
||||||
deviceVOList.add(deviceVO);
|
deviceVOList.add(deviceVO);
|
||||||
@@ -1371,6 +1379,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
//decoderM3d(deviceDetail);
|
//decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(device.getId());
|
deviceVO.setDevIndex(device.getId());
|
||||||
|
DeviceProcess deviceProcess = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, device.getId()).one();
|
||||||
|
if(Objects.nonNull(deviceProcess)){
|
||||||
|
deviceVO.setProcessNum(deviceProcess.getProcessNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
deviceVO.setSubVoltageVOList(subVoltageVOS);
|
deviceVO.setSubVoltageVOList(subVoltageVOS);
|
||||||
deviceVOList.add(deviceVO);
|
deviceVOList.add(deviceVO);
|
||||||
@@ -1508,10 +1521,6 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
deleteMonitoringPoints(pointIds,logsList);
|
deleteMonitoringPoints(pointIds,logsList);
|
||||||
|
|
||||||
// 2. 通知设备重启
|
// 2. 通知设备重启
|
||||||
/* String[] pids = getById(busbarId).getPids().split(",");
|
|
||||||
if (pids.length > 4) {
|
|
||||||
askRestartDevice(pids[4], DeviceRebootType.LEDGER_MODIFY);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteMonitoringPoints(List<String> pointIds,List<Line> logsList) {
|
private void deleteMonitoringPoints(List<String> pointIds,List<Line> logsList) {
|
||||||
|
|||||||
@@ -230,6 +230,12 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
if (CollectionUtil.isNotEmpty(generalDeviceDTOList)) {
|
if (CollectionUtil.isNotEmpty(generalDeviceDTOList)) {
|
||||||
// 创建集合
|
// 创建集合
|
||||||
List<TerminalTree> taiZhang = new ArrayList<>();
|
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) {
|
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||||
// 创建实体类
|
// 创建实体类
|
||||||
@@ -253,10 +259,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
Map<String,List<TerminalTree>> temMap = new HashMap<>();
|
Map<String,List<TerminalTree>> temMap = new HashMap<>();
|
||||||
if(CollUtil.isNotEmpty(userLineList)) {
|
if(CollUtil.isNotEmpty(userLineList)) {
|
||||||
Map<String, List<TerminalTree>> objMap = userLineList.stream().collect(Collectors.groupingBy(TerminalTree::getObjId));
|
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<>();
|
List<TerminalTree> temList = new ArrayList<>();
|
||||||
objMap.forEach((objId, monitorList) -> {
|
objMap.forEach((objId, monitorList) -> {
|
||||||
UserLedgerVO userLedgerVO = userMap.get(objId);
|
UserLedgerVO userLedgerVO = userMap.get(objId);
|
||||||
@@ -275,7 +277,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
tree.setPids(String.valueOf(devSize));
|
tree.setPids(String.valueOf(devSize));
|
||||||
temList.add(tree);
|
temList.add(tree);
|
||||||
});
|
});
|
||||||
|
|
||||||
temMap = temList.stream().collect(Collectors.groupingBy(TerminalTree::getPid));
|
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)")
|
@ApiModelProperty(name = "type", value = "区分(0:pq 1:pms)")
|
||||||
private Integer type=0;
|
private Integer type=0;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "stationType", value = "(0:变电站 1:非变电站场站)")
|
||||||
|
private Integer stationType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,13 @@ public class SteadyQualifyVO implements Serializable {
|
|||||||
* 父级id集合
|
* 父级id集合
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("父级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>
|
<artifactId>cs-device-api</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.njcn.platform</groupId>
|
<groupId>com.njcn.platform</groupId>
|
||||||
<artifactId>data-processing-api</artifactId>
|
<artifactId>data-processing-api</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.njcn</groupId>
|
||||||
|
<artifactId>supervision-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -50,7 +50,19 @@ public class PollutionSubstationController extends BaseController {
|
|||||||
public HttpResult<List<PollutionSubstationVO>> getPollutionSubstationData(@RequestBody @Validated PollutionSubstationQuryParam pollutionSubstationQuryParam) {
|
public HttpResult<List<PollutionSubstationVO>> getPollutionSubstationData(@RequestBody @Validated PollutionSubstationQuryParam pollutionSubstationQuryParam) {
|
||||||
String methodDescribe = getMethodDescribe ("getPollutionSubstationData");
|
String methodDescribe = getMethodDescribe ("getPollutionSubstationData");
|
||||||
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, pollutionSubstationQuryParam);
|
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);
|
return HttpResultUtil.assembleCommonResponseResult (CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,12 +9,15 @@
|
|||||||
A.Pid,
|
A.Pid,
|
||||||
A.Pids,
|
A.Pids,
|
||||||
A.Name name,
|
A.Name name,
|
||||||
|
A.sort,
|
||||||
C.Name voltageLevel,
|
C.Name voltageLevel,
|
||||||
D.IP networkParam,
|
D.IP networkParam,
|
||||||
C1.Name factoryName,
|
C1.Name factoryName,
|
||||||
A.Name lineName
|
A.Name lineName,
|
||||||
|
detail.obj_id
|
||||||
FROM
|
FROM
|
||||||
pq_line A,
|
pq_line A,
|
||||||
|
pq_line_detail detail,
|
||||||
pq_voltage B,
|
pq_voltage B,
|
||||||
sys_dict_data C,
|
sys_dict_data C,
|
||||||
pq_device D,
|
pq_device D,
|
||||||
@@ -25,6 +28,7 @@
|
|||||||
<foreach item="item" collection="list" separator="," open="(" close=")">
|
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
AND A.id = detail.id
|
||||||
AND A.Pid = B.Id
|
AND A.Pid = B.Id
|
||||||
AND B.Scale = C.Id
|
AND B.Scale = C.Id
|
||||||
AND A.Pid = A1.Id
|
AND A.Pid = A1.Id
|
||||||
@@ -37,7 +41,8 @@
|
|||||||
Id,
|
Id,
|
||||||
Pid,
|
Pid,
|
||||||
Pids,
|
Pids,
|
||||||
Name
|
Name,
|
||||||
|
sort
|
||||||
FROM
|
FROM
|
||||||
pq_line
|
pq_line
|
||||||
WHERE
|
WHERE
|
||||||
|
|||||||
@@ -36,6 +36,10 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
|||||||
* @Date: 2022/10/13
|
* @Date: 2022/10/13
|
||||||
*/
|
*/
|
||||||
List<PollutionSubstationVO> getPollutionSubstationData(PollutionSubstationQuryParam pollutionSubstationQuryParam);
|
List<PollutionSubstationVO> getPollutionSubstationData(PollutionSubstationQuryParam pollutionSubstationQuryParam);
|
||||||
|
|
||||||
|
|
||||||
|
List<PollutionSubstationVO> getEnergyStationPollution(PollutionSubstationQuryParam pollutionSubstationQuryParam);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: getDeptSubstationRelations
|
* @Description: getDeptSubstationRelations
|
||||||
* @Param: [param]
|
* @Param: [param]
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ import com.njcn.harmonic.pojo.vo.OverAreaVO;
|
|||||||
import com.njcn.harmonic.pojo.vo.WarningSubstationVO;
|
import com.njcn.harmonic.pojo.vo.WarningSubstationVO;
|
||||||
import com.njcn.harmonic.service.IAnalyzeService;
|
import com.njcn.harmonic.service.IAnalyzeService;
|
||||||
import com.njcn.poi.excel.ExcelUtil;
|
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.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
@@ -83,6 +86,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
private final EventDetailFeignClient eventDetailFeignClient;
|
private final EventDetailFeignClient eventDetailFeignClient;
|
||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
|
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
|
||||||
Page<OverAreaLimitVO> page = new Page<>();
|
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())),
|
.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()))));
|
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))));
|
||||||
Map<String, List<RStatLimitTargetDPO>> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId));
|
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) {
|
for (OverLimitLineDTO vo : overLimitLineList) {
|
||||||
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
||||||
BeanUtil.copyProperties(vo, monitorOverLimitVO);
|
BeanUtil.copyProperties(vo, monitorOverLimitVO);
|
||||||
MonitorOverLimitVO source = monMap.get(vo.getId()).get(0);
|
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.setOverDay(source.getOverDay());
|
||||||
monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay());
|
monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay());
|
||||||
monitorOverLimitVO.setFreqOverDay(source.getFreqOverDay());
|
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.enums.response.CommonResponseEnum;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
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.dto.*;
|
||||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
import com.njcn.device.pms.api.MonitorClient;
|
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.GeneralDeviceInfoClient;
|
||||||
import com.njcn.device.pq.api.LineFeignClient;
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
import com.njcn.device.pq.api.SubstationFeignClient;
|
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.dto.*;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
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.po.LineDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.harmonic.constant.Param;
|
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.PollutionVO;
|
||||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
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.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
@@ -111,6 +118,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
||||||
|
|
||||||
|
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param pollutionSubstationQuryParam
|
* @param pollutionSubstationQuryParam
|
||||||
* @Description: getPollutionSubstationData
|
* @Description: getPollutionSubstationData
|
||||||
@@ -186,6 +195,32 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
return result;
|
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
|
* @Description: getDeptSubstationRelations
|
||||||
* @Param: [param]
|
* @Param: [param]
|
||||||
@@ -201,8 +236,12 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||||
return list;
|
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) {
|
if (harmonicPublicParam.getType() != 0) {
|
||||||
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
/* PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
||||||
pmsDeviceInfoParam.setDeptIndex(harmonicPublicParam.getDeptIndex());
|
pmsDeviceInfoParam.setDeptIndex(harmonicPublicParam.getDeptIndex());
|
||||||
//获取统计类型
|
//获取统计类型
|
||||||
pmsDeviceInfoParam.setStatisticalType(harmonicPublicParam.getStatisticalType());
|
pmsDeviceInfoParam.setStatisticalType(harmonicPublicParam.getStatisticalType());
|
||||||
@@ -246,7 +285,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
pollutionVO.setChildren(powersVO);
|
pollutionVO.setChildren(powersVO);
|
||||||
}
|
}
|
||||||
list.add(pollutionVO);
|
list.add(pollutionVO);
|
||||||
});
|
});*/
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||||
@@ -264,18 +303,48 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
pollutionVO.setName(name + "\n(" + temp.getLineIndexes().size() + ")");
|
pollutionVO.setName(name + "\n(" + temp.getLineIndexes().size() + ")");
|
||||||
pollutionVO.setData(3.14159);
|
pollutionVO.setData(3.14159);
|
||||||
setData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionVO, detpid);
|
setData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionVO, detpid);
|
||||||
|
|
||||||
|
|
||||||
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
||||||
subIndexes.forEach(subIndex -> {
|
|
||||||
|
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();
|
PollutionVO pollutionsubVO = new PollutionVO();
|
||||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(subIndex).getData();
|
if(userLedgerVOMap.containsKey(obj)){
|
||||||
String id = pollutionSubstationDTO.getId();
|
UserLedgerVO userLedgerVO = userLedgerVOMap.get(obj);
|
||||||
pollutionsubVO.setId(id);
|
pollutionsubVO.setId(userLedgerVO.getId());
|
||||||
pollutionsubVO.setName(pollutionSubstationDTO.getName());
|
pollutionsubVO.setName(userLedgerVO.getProjectName());
|
||||||
pollutionsubVO.setPid(temp.getIndex());
|
pollutionsubVO.setPid(temp.getIndex());
|
||||||
pollutionsubVO.setData(3.14159);
|
pollutionsubVO.setData(3.14159);
|
||||||
setSubData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionsubVO, id);
|
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);
|
subPollutionVO.add(pollutionsubVO);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
pollutionVO.setChildren(subPollutionVO);
|
pollutionVO.setChildren(subPollutionVO);
|
||||||
list.add(pollutionVO);
|
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.enums.LineBaseEnum;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
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.mapper.SteadyQualifyMapper;
|
||||||
import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO;
|
import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
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.IRStatLimitRateDService;
|
||||||
import com.njcn.harmonic.service.SteadyQualifyService;
|
import com.njcn.harmonic.service.SteadyQualifyService;
|
||||||
import com.njcn.harmonic.utils.PubUtils;
|
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 lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,25 +46,29 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|||||||
|
|
||||||
private final IRStatLimitRateDService rateDService;
|
private final IRStatLimitRateDService rateDService;
|
||||||
|
|
||||||
|
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SteadyQualifyVO> getSteadyQualifyData(DeviceInfoParam.BusinessParam steadyParam) {
|
public List<SteadyQualifyVO> getSteadyQualifyData(DeviceInfoParam.BusinessParam steadyParam) {
|
||||||
List<SteadyQualifyVO> steadyQualifyList = new ArrayList<>();
|
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();
|
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyParam).getData();
|
||||||
//组装监测点Top层集合
|
//组装监测点Top层集合
|
||||||
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
||||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
if (CollectionUtils.isEmpty(generalDeviceDTO.getLineIndexes())) {
|
||||||
if (CollectionUtils.isEmpty(lineIndexes)) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
||||||
steadyQualifyVO.setId(generalDeviceDTO.getIndex());
|
steadyQualifyVO.setId(generalDeviceDTO.getIndex());
|
||||||
steadyQualifyVO.setName(generalDeviceDTO.getName());
|
steadyQualifyVO.setName(generalDeviceDTO.getName());
|
||||||
// List<SteadyQualifyVO> lineData = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
|
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(generalDeviceDTO.getLineIndexes(), steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||||
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
|
||||||
//组装子集级数据树
|
//组装子集级数据树
|
||||||
List<SteadyQualifyVO> treeList = getTreeData(qualifiesRate, lineIndexes);
|
List<SteadyQualifyVO> treeList = getTreeData(qualifiesRate, generalDeviceDTO,userMap);
|
||||||
if (CollectionUtil.isNotEmpty(treeList)) {
|
if (CollectionUtil.isNotEmpty(treeList)) {
|
||||||
List<SteadyQualifyVO> flicker = treeList.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
|
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());
|
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> treeMonitorList = steadyQualifyMapper.getSteadyQualifyData(generalDeviceDTO.getLineIndexes());
|
||||||
//母线集合
|
treeMonitorList.forEach(steadyQualifyVO -> {
|
||||||
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 -> {
|
|
||||||
SteadyQualifyVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, steadyQualifyVO.getId());
|
SteadyQualifyVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, steadyQualifyVO.getId());
|
||||||
steadyQualifyVO.setFlicker(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFlicker()));
|
steadyQualifyVO.setFlicker(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFlicker()));
|
||||||
steadyQualifyVO.setFreqOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFreqOffset()));
|
steadyQualifyVO.setFreqOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFreqOffset()));
|
||||||
@@ -229,21 +228,85 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|||||||
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicCurrent()));
|
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicCurrent()));
|
||||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
||||||
});
|
});
|
||||||
setChildesList(substationList, monitorList);
|
|
||||||
setFatherDistortion(substationList);
|
|
||||||
|
|
||||||
powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList());
|
List<SteadyQualifyVO> userLineList = treeMonitorList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||||
setFatherDistortion(powerCompanyList);
|
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;
|
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) {
|
private void setFatherDistortion(SteadyQualifyVO steadyQualifyVO,List<SteadyQualifyVO> children) {
|
||||||
list.forEach(steadyQualifyVO -> {
|
|
||||||
List<SteadyQualifyVO> children = steadyQualifyVO.getChildren();
|
|
||||||
List<SteadyQualifyVO> flicker = children.stream().filter(child -> !Objects.equals(child.getFlicker(), 3.14159)).collect(Collectors.toList());
|
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> 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());
|
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)) {
|
if (!CollectionUtils.isEmpty(InterHarmonic)) {
|
||||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(NumberUtil.round(InterHarmonic.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()));
|
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) {
|
private void setChildesList(List<SteadyQualifyVO> item, List<SteadyQualifyVO> childes) {
|
||||||
Map<String, List<SteadyQualifyVO>> groupLine;
|
Map<String, List<SteadyQualifyVO>> groupLine;
|
||||||
groupLine = childes.stream().collect(Collectors.groupingBy(steadyQualifyVO -> {
|
groupLine = childes.stream().collect(Collectors.groupingBy(steadyQualifyVO -> {
|
||||||
String[] pid = steadyQualifyVO.getPidS().split(",");
|
String[] pid = steadyQualifyVO.getPids().split(",");
|
||||||
return pid[LineBaseEnum.SUB_LEVEL.getCode()];
|
return pid[LineBaseEnum.SUB_LEVEL.getCode()];
|
||||||
}));
|
}));
|
||||||
item.stream().peek(steadyQualifyVO -> {
|
item.stream().peek(steadyQualifyVO -> {
|
||||||
if (!CollectionUtils.isEmpty(groupLine.get(steadyQualifyVO.getId()))) {
|
if (!CollectionUtils.isEmpty(groupLine.get(steadyQualifyVO.getId()))) {
|
||||||
steadyQualifyVO.setChildren(groupLine.get(steadyQualifyVO.getId()));
|
steadyQualifyVO.setChildren(groupLine.get(steadyQualifyVO.getId()));
|
||||||
|
setFatherDistortion(steadyQualifyVO,steadyQualifyVO.getChildren());
|
||||||
|
|
||||||
}
|
}
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -671,7 +735,6 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|||||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
||||||
});
|
});
|
||||||
setChildesList(substationList, monitorList);
|
setChildesList(substationList, monitorList);
|
||||||
setFatherDistortion(substationList);
|
|
||||||
|
|
||||||
|
|
||||||
return 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