代码调整

This commit is contained in:
2023-11-15 11:45:49 +08:00
parent 8bef9db9c8
commit c2ec0bfcf2
54 changed files with 1309 additions and 245 deletions

View File

@@ -23,5 +23,8 @@ public class DeptGetLineParam {
@ApiModelProperty(name = "serverName",value = "系统类型 0.event-boot 1.harmonic-boot")
private String serverName;
@ApiModelProperty(name = "systemType",value = "0.只返回主网的监测点信息; 1.只返回配网的监测点信息; null、2.返回主网配网两种监测点信息")
private Integer systemType;
}

View File

@@ -1,36 +0,0 @@
//package com.njcn.device.pms.pojo.po;
//
//import com.baomidou.mybatisplus.annotation.TableId;
//import com.baomidou.mybatisplus.annotation.TableName;
//import com.njcn.db.bo.BaseEntity;
//import lombok.Data;
//import lombok.EqualsAndHashCode;
//
///**
// * pms-device
// * 母线
// * @author cdf
// * @date 2022/10/26
// */
//@Data
//@EqualsAndHashCode(callSuper = true)
//@TableName("pms_generatrix")
//public class Generatrix extends BaseEntity {
//
// private static final long serialVersionUID = 1L;
//
// @TableId
// private String generatrixId;
//
// private String generatrixName;
//
// private String statationId;
//
// private String statationName;
//
// private String scale;
//
// private Integer status;
//
//
//}

View File

@@ -40,6 +40,13 @@ public class GeneratrixWire extends BaseEntity {
private Integer status;
/**
* 关联中台的母线id
*/
private String relationId;
@TableField(exist = false)
private String orgId;
}

View File

@@ -6,11 +6,12 @@ import java.io.Serializable;
/**
* (PmsMonitor)实体类
*
* 实体用 Monitor(后面删除这个类)
* @author yzh
* @since 2022-10-14 10:23:20
*/
@Data
@Deprecated
public class PmsMonitorPO implements Serializable {
private static final long serialVersionUID = -72537315596058339L;
/**

View File

@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
/**
* <p>
*
* pms电站表
* </p>
*
* @author hongawen
@@ -69,4 +69,11 @@ public class StatationStat extends BaseEntity {
/**
* 关联中台的母线id
*/
private String relationId;
}

View File

@@ -86,7 +86,7 @@ public class CommTerminalController extends BaseController {
}
/**
* 根据单位获取监测点信息
* 根据单位获取层级单位的监测点信息
* @author cdf
* @date 2023/5/10
*/

View File

@@ -109,6 +109,9 @@ public class CommTerminalServiceImpl implements CommTerminalService {
@Override
public List<DeptGetChildrenMoreDTO> deptGetLine(DeptGetLineParam deptGetLineParam) {
if (Objects.isNull(deptGetLineParam.getSystemType())) {
deptGetLineParam.setSystemType(2);
}
List<DeptGetChildrenMoreDTO> result = new ArrayList<>();
List<DeptGetBase> temDept = getDeptChildrenByParent(deptGetLineParam);
//电压等级
@@ -116,13 +119,20 @@ public class CommTerminalServiceImpl implements CommTerminalService {
Map<String, DictData> mapVoltage = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
//监测点状态
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData();
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>().eq(Monitor::getStatus, 1).eq(Monitor::getMonitorState, dictData.getId()));
Map<String, List<Monitor>> map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getOrgId));
Map<String, List<Monitor>> map = new HashMap<>();
if (deptGetLineParam.getSystemType() == 0 || deptGetLineParam.getSystemType() == 2) {
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>().eq(Monitor::getStatus, 1).eq(Monitor::getMonitorState, dictData.getId()));
map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getOrgId));
}
//TODO 配网数据量巨大,暂时注释
//List<PmsMonitorBaseDTO> pmsMonitorBaseDTOList = distributionMonitorMapper.getDisMonitorAllList(null, 0);
//Map<String, List<PmsMonitorBaseDTO>> mapPms = pmsMonitorBaseDTOList.stream().collect(Collectors.groupingBy(PmsMonitorBaseDTO::getOrgId));
/* Map<String, List<PmsMonitorBaseDTO>> mapPms = new HashMap<>();
if (deptGetLineParam.getSystemType() == 1 || deptGetLineParam.getSystemType() == 2) {
List<PmsMonitorBaseDTO> pmsMonitorBaseDTOList = distributionMonitorMapper.getDisMonitorAllList(null, 0);
mapPms = pmsMonitorBaseDTOList.stream().collect(Collectors.groupingBy(PmsMonitorBaseDTO::getOrgId));
}
Map<String, List<PmsMonitorBaseDTO>> finalMapPms = mapPms;*/
Map<String, List<Monitor>> finalMap = map;
temDept.forEach(item -> {
DeptGetChildrenMoreDTO deptGetChildrenMoreDTO = new DeptGetChildrenMoreDTO();
deptGetChildrenMoreDTO.setUnitId(item.getUnitId());
@@ -133,34 +143,39 @@ public class CommTerminalServiceImpl implements CommTerminalService {
List<LineDevGetDTO> lineList = new ArrayList<>();
List<LineDevGetDTO> lineListPw = new ArrayList<>();
deptIds.forEach(i -> {
if (map.containsKey(i)) {
map.get(i).forEach(it -> {
LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
lineDevGetDTO.setPointId(it.getId());
lineDevGetDTO.setInterval(it.getStatisticalInterval());
lineDevGetDTO.setDevId(it.getTerminalId());
lineDevGetDTO.setType(1);
lineDevGetDTO.setLineType(1);
lineDevGetDTO.setLineTag(it.getMonitorTag());
lineDevGetDTO.setVoltageLevel(mapVoltage.get(it.getVoltageLevel()).getValue());
lineList.add(lineDevGetDTO);
});
if (deptGetLineParam.getSystemType() == 0 || deptGetLineParam.getSystemType() == 2) {
if (finalMap.containsKey(i)) {
finalMap.get(i).forEach(it -> {
LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
lineDevGetDTO.setPointId(it.getId());
lineDevGetDTO.setInterval(it.getStatisticalInterval());
lineDevGetDTO.setDevId(it.getTerminalId());
lineDevGetDTO.setType(1);
lineDevGetDTO.setLineType(1);
lineDevGetDTO.setLineTag(it.getMonitorTag());
lineDevGetDTO.setVoltageLevel(mapVoltage.get(it.getVoltageLevel()).getValue());
lineList.add(lineDevGetDTO);
});
}
}
/* if (mapPms.containsKey(i)) {
mapPms.get(i).forEach(it -> {
LineDevGetDTO lineDevGetDTOPms = new LineDevGetDTO();
lineDevGetDTOPms.setPointId(it.getMonitorId());
lineDevGetDTOPms.setInterval(10);
lineDevGetDTOPms.setDevId(it.getTerminalId());
lineDevGetDTOPms.setType(1);
lineDevGetDTOPms.setLineType(it.getLineType());
lineDevGetDTOPms.setVoltageLevel(mapVoltage.get(it.getVoltageLevel()).getValue());
lineListPw.add(lineDevGetDTOPms);
});
/* if (deptGetLineParam.getSystemType() == 1 || deptGetLineParam.getSystemType() == 2) {
if (finalMapPms.containsKey(i)) {
finalMapPms.get(i).forEach(it -> {
LineDevGetDTO lineDevGetDTOPms = new LineDevGetDTO();
lineDevGetDTOPms.setPointId(it.getMonitorId());
lineDevGetDTOPms.setInterval(10);
lineDevGetDTOPms.setDevId(it.getTerminalId());
lineDevGetDTOPms.setType(1);
lineDevGetDTOPms.setLineType(it.getLineType());
lineDevGetDTOPms.setVoltageLevel(mapVoltage.get(it.getVoltageLevel()).getValue());
lineListPw.add(lineDevGetDTOPms);
});
}
}*/
});
deptGetChildrenMoreDTO.setLineBaseList(lineList);
//deptGetChildrenMoreDTO.setPwMonitorIds(lineListPw);
deptGetChildrenMoreDTO.setPwMonitorIds(lineListPw);
}
result.add(deptGetChildrenMoreDTO);
});
@@ -198,8 +213,8 @@ public class CommTerminalServiceImpl implements CommTerminalService {
lineList.addAll(map.get(i).stream().map(StatationStat::getPowerId).distinct().collect(Collectors.toList()));
}
if(statationAndMonitorMap.containsKey(i)){
statationList.addAll(statationAndMonitorMap.get(i).stream().filter(x->x.getPowerId()!=null).map(PmsStatationStatInfoDTO::getMonitorId).collect(Collectors.toList()));
if (statationAndMonitorMap.containsKey(i)) {
statationList.addAll(statationAndMonitorMap.get(i).stream().filter(x -> x.getPowerId() != null).map(PmsStatationStatInfoDTO::getMonitorId).collect(Collectors.toList()));
}
/*if (mapPms.containsKey(i)) {
lineListPw.addAll(mapPms.get(i).stream().map(PmsMonitorBaseDTO::getPowerrId).distinct().collect(Collectors.toList()));
@@ -245,7 +260,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
if (map.containsKey(i)) {
lineList.addAll(map.get(i).stream().map(GeneratrixWire::getId).collect(Collectors.toList()));
}
if(wireAndMonitorMap.containsKey(i)){
if (wireAndMonitorMap.containsKey(i)) {
wireAndMonitorList.addAll(wireAndMonitorMap.get(i).stream().map(GeneratrixWire::getId).collect(Collectors.toList()));
}
/* if (mapPms.containsKey(i)) {
@@ -307,7 +322,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
lineDevGetDTO.setType(0);
lineDevGetDTO.setUpdateTime(dev.getUpdateTime());
lineDevGetDTO.setComFlag(dev.getComFlag());
if(type == 1) {
if (type == 1) {
if (finalMonitorMap.containsKey(dev.getId())) {
lineDevGetDTO.setMonitorIds(finalMonitorMap.get(dev.getId()).stream().map(Monitor::getId).distinct().collect(Collectors.toList()));
}
@@ -523,20 +538,20 @@ public class CommTerminalServiceImpl implements CommTerminalService {
@Override
public List<String> getOneMonitorIds() {
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData();
if(Objects.isNull(dictData)){
throw new BusinessException("监测点状态字典为空");
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData();
if (Objects.isNull(dictData)) {
throw new BusinessException("监测点状态字典为空");
}
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(Monitor::getId).eq(Monitor::getMonitorState,dictData.getId());
lambdaQueryWrapper.select(Monitor::getId).eq(Monitor::getMonitorState, dictData.getId());
List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper);
return monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
}
@Override
public List<CommLineDetailDTO> getRunMonitorList() {
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData();
if(Objects.isNull(dictData)){
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData();
if (Objects.isNull(dictData)) {
throw new BusinessException("监测点状态字典为空");
}
return null;
@@ -544,6 +559,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
/**
* 获取单个监测点信息
*
* @author cdf
* @date 2023/10/12
*/
@@ -552,7 +568,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
Monitor monitor = monitorMapper.selectById(monitorId);
if(Objects.nonNull(monitor)){
if (Objects.nonNull(monitor)) {
lineDevGetDTO.setPointName(monitor.getName());
lineDevGetDTO.setInterval(monitor.getStatisticalInterval());
lineDevGetDTO.setDevId(monitor.getTerminalId());
@@ -561,23 +577,23 @@ public class CommTerminalServiceImpl implements CommTerminalService {
}
LambdaQueryWrapper<DistributionMonitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DistributionMonitor::getMonitorId,monitorId);
lambdaQueryWrapper.eq(DistributionMonitor::getMonitorId, monitorId);
DistributionMonitor distributionMonitor = distributionMonitorMapper.selectOne(lambdaQueryWrapper);
if(Objects.nonNull(distributionMonitor)){
if (Objects.nonNull(distributionMonitor)) {
DictData dictDataSort = dicDataFeignClient.getDicDataById(distributionMonitor.getMonitorSort()).getData();
if(DicDataEnum.TWO_LINE.getCode().equals(dictDataSort.getCode())){
if (DicDataEnum.TWO_LINE.getCode().equals(dictDataSort.getCode())) {
//二类
PowerDistributionarea powerDistributionarea = powerDistributionareaMapper.selectById(monitorId);
if(Objects.nonNull(powerDistributionarea)){
if (Objects.nonNull(powerDistributionarea)) {
lineDevGetDTO.setPointName(powerDistributionarea.getName());
lineDevGetDTO.setInterval(distributionMonitor.getStatisticalInterval());
lineDevGetDTO.setDevId(distributionMonitor.getTerminalId());
lineDevGetDTO.setVoltageLevel(powerDistributionarea.getVoltageLevel());
return lineDevGetDTO;
}
}else if(DicDataEnum.THREE_LINE.getCode().equals(dictDataSort.getCode())){
if(distributionMonitor.getIfPowerUser() == 1){
} else if (DicDataEnum.THREE_LINE.getCode().equals(dictDataSort.getCode())) {
if (distributionMonitor.getIfPowerUser() == 1) {
//发电用户
PowerGenerationUser powerGenerationUser = powerGenerationUserMapper.selectById(monitorId);
lineDevGetDTO.setPointName(powerGenerationUser.getName());
@@ -585,7 +601,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
lineDevGetDTO.setDevId(distributionMonitor.getTerminalId());
lineDevGetDTO.setVoltageLevel(powerGenerationUser.getVoltageLevel());
return lineDevGetDTO;
}else {
} else {
PowerClient powerClient = powerClientMapper.selectById(monitorId);
lineDevGetDTO.setPointName(powerClient.getName());
lineDevGetDTO.setInterval(distributionMonitor.getStatisticalInterval());
@@ -601,7 +617,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
@Override
public List<StatisticsMonitor> getStatisticsMonitor(StatisticsBizBaseParam param) {
List<StatisticsMonitor> info=new ArrayList<>();
List<StatisticsMonitor> info = new ArrayList<>();
//部门信息
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getId(), Stream.of(0, 1).collect(Collectors.toList())).getData();
List<DictData> voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
@@ -613,35 +629,35 @@ public class CommTerminalServiceImpl implements CommTerminalService {
PowerDistributionarea::getVoltageLevel,
PowerDistributionarea::getApLoadType,
PowerDistributionarea::getPhotovoltaicCapacity
)
)
.eq(PowerDistributionarea::getStatus, 1)
.ge(StrUtil.isNotBlank(param.getStartTime()), PowerDistributionarea::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
.le(StrUtil.isNotBlank(param.getEndTime()), PowerDistributionarea::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
);
List<DictData> dictDatas = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
Map<String,String> map=new HashMap<>();
Map<String, String> map = new HashMap<>();
for (DictData dictDatum : dictDatas) {
if(DicDataEnum.ONSHORE_WIND.getCode().equals(dictDatum.getCode())){
map.put("fd",dictDatum.getId());
if (DicDataEnum.ONSHORE_WIND.getCode().equals(dictDatum.getCode())) {
map.put("fd", dictDatum.getId());
}
if(DicDataEnum.POWER_STATION.getCode().equals(dictDatum.getCode())){
map.put("gfdz",dictDatum.getId());
if (DicDataEnum.POWER_STATION.getCode().equals(dictDatum.getCode())) {
map.put("gfdz", dictDatum.getId());
}
if(DicDataEnum.ELECTRIFIED_RAILWAYS.getCode().equals(dictDatum.getCode())){
map.put("dq",dictDatum.getId());
if (DicDataEnum.ELECTRIFIED_RAILWAYS.getCode().equals(dictDatum.getCode())) {
map.put("dq", dictDatum.getId());
}
if(DicDataEnum.SMELT_LOAD.getCode().equals(dictDatum.getCode())){
map.put("yl",dictDatum.getId());
if (DicDataEnum.SMELT_LOAD.getCode().equals(dictDatum.getCode())) {
map.put("yl", dictDatum.getId());
}
if(DicDataEnum.DISTRIBUTED_PHOTOVOLTAICS.getCode().equals(dictDatum.getCode())){
map.put("gf",dictDatum.getId());
if (DicDataEnum.DISTRIBUTED_PHOTOVOLTAICS.getCode().equals(dictDatum.getCode())) {
map.put("gf", dictDatum.getId());
}
}
// 过滤出传入id的子单位id
List<DeptDTO> directDeptInfos = deptInfos.stream()
.filter(deptDTO -> deptDTO.getPid().equals(param.getId()))
.collect(Collectors.toList());
List<Monitor> monitorsNew ;
List<Monitor> monitorsNew;
List<PowerDistributionarea> distributionNew;
if (CollectionUtil.isEmpty(directDeptInfos)) {
//没有直接子部门,获取当前部门所有信息
@@ -651,7 +667,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
monitorsNew = monitors.stream().filter(x -> x.getOrgId().equals(dept.get(0).getCode())).collect(Collectors.toList());
distributionNew = distributionList.stream().filter(x -> x.getOrgId().equals(dept.get(0).getCode())).collect(Collectors.toList());
statisticsMonitorAdd(Arrays.asList(dept.get(0).getCode()),voltageList,monitorsNew,distributionNew,map,info);
statisticsMonitorAdd(Arrays.asList(dept.get(0).getCode()), voltageList, monitorsNew, distributionNew, map, info);
} else {
// 遍历子单位id
for (DeptDTO deptDTO : directDeptInfos) {
@@ -665,40 +681,40 @@ public class CommTerminalServiceImpl implements CommTerminalService {
.distinct()
.collect(Collectors.toList());
deptIdList.add(deptDTO.getCode());
monitorsNew = monitors.stream().filter(x->deptIdList.contains(x.getOrgId())).collect(Collectors.toList());
monitorsNew = monitors.stream().filter(x -> deptIdList.contains(x.getOrgId())).collect(Collectors.toList());
distributionNew = distributionList.stream().filter(x -> deptIdList.contains(x.getOrgId())).collect(Collectors.toList());
statisticsMonitorAdd(deptIdList,voltageList,monitorsNew,distributionNew,map,info);
statisticsMonitorAdd(deptIdList, voltageList, monitorsNew, distributionNew, map, info);
}
}
return info;
}
public List<StatisticsMonitor> statisticsMonitorAdd(List<String> deptIdList,List<DictData> voltageList ,List<Monitor> monitorsNew,List<PowerDistributionarea> list,Map<String,String> map,List<StatisticsMonitor> info){
public List<StatisticsMonitor> statisticsMonitorAdd(List<String> deptIdList, List<DictData> voltageList, List<Monitor> monitorsNew, List<PowerDistributionarea> list, Map<String, String> map, List<StatisticsMonitor> info) {
Map<String, List<Monitor>> monitorMap = monitorsNew.stream().collect(Collectors.groupingBy(x -> x.getOrgId() + "_" + x.getVoltageLevel()));
Map<String, List<PowerDistributionarea>> distributionMap = list.stream().collect(Collectors.groupingBy(x -> x.getOrgId() + "_" + x.getVoltageLevel()));
for (String s : deptIdList) {
for (DictData dictData : voltageList) {
StatisticsMonitor monitor=new StatisticsMonitor();
monitor.setOrgId(s );
StatisticsMonitor monitor = new StatisticsMonitor();
monitor.setOrgId(s);
monitor.setVoltageLevel(dictData.getId());
monitor.setGeneratrixSum(0);
String key = s + "_" + dictData.getId();
if(monitorMap.containsKey(key)){
if (monitorMap.containsKey(key)) {
List<Monitor> monitors = monitorMap.get(s + "_" + dictData.getId());
monitor.setLineNum(Math.toIntExact(monitors.stream().map(Monitor::getLineId).distinct().count()));
monitor.setPhotovoltaicLineNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("gf"))).map(Monitor::getLineId).distinct().count()));
monitor.setWindPowerNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).map(Monitor::getId).distinct().count()));
monitor.setPvNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("gfdz"))).map(Monitor::getId).distinct().count()));
monitor.setSmeltingLoadNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("yl"))).map(Monitor::getId).distinct().count()));
monitor.setElectricTrackNum(Math.toIntExact(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("dq"))).map(Monitor::getId).distinct().count()));
monitor.setWindPowerCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setPvCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setSmeltingLoadCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setElectricTrackCapacity(monitors.stream().filter(x->x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setPhotovoltaicLineNum(Math.toIntExact(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("gf"))).map(Monitor::getLineId).distinct().count()));
monitor.setWindPowerNum(Math.toIntExact(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("fd"))).map(Monitor::getId).distinct().count()));
monitor.setPvNum(Math.toIntExact(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("gfdz"))).map(Monitor::getId).distinct().count()));
monitor.setSmeltingLoadNum(Math.toIntExact(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("yl"))).map(Monitor::getId).distinct().count()));
monitor.setElectricTrackNum(Math.toIntExact(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("dq"))).map(Monitor::getId).distinct().count()));
monitor.setWindPowerCapacity(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setPvCapacity(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setSmeltingLoadCapacity(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
monitor.setElectricTrackCapacity(monitors.stream().filter(x -> x.getMonitorTag().equals(map.get("fd"))).mapToDouble(Monitor::getStandShortCapacity).sum());
}else{
} else {
monitor.setLineNum(0);
monitor.setPhotovoltaicLineNum(0);
monitor.setWindPowerNum(0);
@@ -711,16 +727,16 @@ public class CommTerminalServiceImpl implements CommTerminalService {
monitor.setElectricTrackCapacity(0.0);
}
if(distributionMap.containsKey(key)){
List<PowerDistributionarea> distributionAreaList= distributionMap.get(key);
if (distributionMap.containsKey(key)) {
List<PowerDistributionarea> distributionAreaList = distributionMap.get(key);
int size = distributionAreaList.size();
monitor.setPlatformNum(size);
monitor.setPhotovoltaicCourtsNum(distributionAreaList.stream().filter(x->x.getApLoadType().equals(map.get("gf"))).map(PowerDistributionarea::getId).distinct().collect(Collectors.toList()).size());
monitor.setPhotovoltaicCourtsNum(distributionAreaList.stream().filter(x -> x.getApLoadType().equals(map.get("gf"))).map(PowerDistributionarea::getId).distinct().collect(Collectors.toList()).size());
//获取分布式光伏总容量
double sum = distributionAreaList.stream().mapToDouble(PowerDistributionarea::getPhotovoltaicCapacity).sum();
double v = sum / size * 0.25;
monitor.setExceedCourtscapNum(distributionAreaList.stream().filter(x->x.getPhotovoltaicCapacity()>v).distinct().collect(Collectors.toList()).size());
}else{
monitor.setExceedCourtscapNum(distributionAreaList.stream().filter(x -> x.getPhotovoltaicCapacity() > v).distinct().collect(Collectors.toList()).size());
} else {
monitor.setPlatformNum(0);
monitor.setPhotovoltaicCourtsNum(0);
monitor.setExceedCourtscapNum(0);

View File

@@ -81,9 +81,6 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
*/
@Override
public Map<String, List<String>> getLineByDeptRelation(Integer devDataType) {
Map<String, List<String>> map = new HashMap<> ();
List<DeptLine> deptLines = deptLineMapper.getLineByDeptRelation(devDataType);
Map<String, List<String>> collect = deptLines.stream ( ).collect (Collectors.groupingBy (DeptLine::getId, Collectors.mapping (DeptLine::getLineId,Collectors.toList ())));

View File

@@ -361,11 +361,14 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
@Override
public List<DeptGetChildrenDTO> deptMonitor(DeptGetLineParam param) {
if (Objects.isNull(param)) {
param.setSystemType(2);
}
//返回主网和配网监测信息
List<DeptGetChildrenDTO> deviceInfos = new ArrayList<>();
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getDeptId(), Stream.of(0, 1).collect(Collectors.toList())).getData();
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData();
if(Objects.isNull(dictData)){
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData();
if (Objects.isNull(dictData)) {
throw new BusinessException("监测点状态字典为空");
}
for (DeptDTO deptInfo : deptInfos) {
@@ -377,7 +380,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
List<DeptDTO> dept = deptInfos.stream()
.filter(deptDTO -> deptDTO.getId().equals(deptInfo.getId()))
.collect(Collectors.toList());
deviceInfos.add(getPmsMonitor(dept.get(0),dictData, Collections.singletonList(dept.get(0).getCode())));
deviceInfos.add(getPmsMonitor(dept.get(0), dictData, Collections.singletonList(dept.get(0).getCode()),param.getSystemType()));
} else {
List<String> deptIdList = new ArrayList<>();
for (DeptDTO deptDTO : directDeptInfos) {
@@ -386,13 +389,13 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
.filter(d -> d.getPids().contains(deptDTO.getId()))
.collect(Collectors.toList());
//形成需要查询监测点的部门索引
deptIdList.addAll( descendantDeptDTO.stream()
deptIdList.addAll(descendantDeptDTO.stream()
.map(DeptDTO::getCode)
.distinct()
.collect(Collectors.toList()));
deptIdList.add(deptDTO.getCode());
}
deviceInfos.add(getPmsMonitor(deptInfo, dictData,deptIdList));
deviceInfos.add(getPmsMonitor(deptInfo, dictData, deptIdList,param.getSystemType()));
}
}
return deviceInfos;
@@ -426,13 +429,13 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
@Override
public List<Overlimit> getAllLineOverLimit() {
return overlimitMapper.selectList(null);
return overlimitMapper.selectList(null);
}
@Override
public Map<String, List<String>> getLineBySubstationRelation(Integer devDataType) {
//获取主网监测点信息
if(devDataType==0){
if (devDataType == 0) {
List<Monitor> list = this.list();
return list.stream()
.collect(Collectors.groupingBy(Monitor::getPowerrId, Collectors.mapping(Monitor::getId, Collectors.toList())));
@@ -447,7 +450,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
List<DictData> connect = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_CONNECT.getCode()).getData();
Map<String, String> connectMap = connect.stream().collect(Collectors.toMap(DictData::getId, DictData::getValue));
LineDTO lineDTO = this.baseMapper.selectLineDetail(id);
if(voltageMap.containsKey(lineDTO.getVoltageLevel())&&connectMap.containsKey(lineDTO.getPtType())){
if (voltageMap.containsKey(lineDTO.getVoltageLevel()) && connectMap.containsKey(lineDTO.getPtType())) {
lineDTO.setVoltageLevel(voltageMap.get(lineDTO.getVoltageLevel()));
lineDTO.setPtType(connectMap.get(lineDTO.getPtType()));
return lineDTO;
@@ -460,7 +463,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
*/
@Override
public List<LineDTO> getLineDetailBatch(List<String> ids) {
if(CollectionUtil.isEmpty(ids)){
if (CollectionUtil.isEmpty(ids)) {
return null;
}
List<LineDTO> lineDTOS = this.baseMapper.selectLineDetailBatch(ids);
@@ -468,16 +471,16 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
Map<String, List<LineDTO>> lineVoltageMap = lineDTOS.stream().collect(Collectors.groupingBy(LineDTO::getVoltageLevel));
List<DictData> voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map<String, String> voltageMap = voltageList.stream().collect(Collectors.toMap(DictData::getId, DictData::getValue));
lineVoltageMap.forEach((key,lineData) -> {
String voltage= voltageMap.get(key);
lineVoltageMap.forEach((key, lineData) -> {
String voltage = voltageMap.get(key);
lineData = lineData.stream().peek(line -> line.setVoltageLevel(voltage)).collect(Collectors.toList());
});
//接线方式
Map<String, List<LineDTO>> linePtTypeMap = lineDTOS.stream().collect(Collectors.groupingBy(LineDTO::getPtType));
List<DictData> connect = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_CONNECT.getCode()).getData();
Map<String, String> connectMap = connect.stream().collect(Collectors.toMap(DictData::getId, DictData::getValue));
linePtTypeMap.forEach((key,lineData)->{
String ptType= connectMap.get(key);
linePtTypeMap.forEach((key, lineData) -> {
String ptType = connectMap.get(key);
lineData = lineData.stream().peek(line -> line.setPtType(ptType)).collect(Collectors.toList());
});
return lineDTOS;
@@ -491,7 +494,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
* @param deptIdList
* @return
*/
private DeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO,DictData dictData, List<String> deptIdList) {
private DeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO, DictData dictData, List<String> deptIdList, Integer systemType) {
DeptGetChildrenDTO pmsDeptGetChildrenDTO = new DeptGetChildrenDTO();
pmsDeptGetChildrenDTO.setDeptId(deptDTO.getCode());
if (deptDTO.getType() == 0) {
@@ -502,14 +505,23 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
pmsDeptGetChildrenDTO.setDeptChildren(deptIdList);
if (CollUtil.isNotEmpty(deptIdList)) {
//主网监测点
List<Monitor> monitorList = this.list(new LambdaQueryWrapper<Monitor>()
.select(Monitor::getId)
.eq(Monitor::getMonitorState,dictData.getId())
.in(CollUtil.isNotEmpty(deptIdList), Monitor::getOrgId, deptIdList));
//配网监测点
List<PmsMonitorBaseDTO> pwMonitorList = iDistributionMonitorService.getMonitorByCondition(deptIdList, null);
pmsDeptGetChildrenDTO.setLineIds(monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList()));
pmsDeptGetChildrenDTO.setPwMonitorIds(pwMonitorList.stream().map(PmsMonitorBaseDTO::getMonitorId).distinct().collect(Collectors.toList()));
if (systemType == 0 || systemType == 2) {
List<Monitor> monitorList = this.list(new LambdaQueryWrapper<Monitor>()
.select(Monitor::getId)
.eq(Monitor::getMonitorState, dictData.getId())
.in(CollUtil.isNotEmpty(deptIdList), Monitor::getOrgId, deptIdList));
pmsDeptGetChildrenDTO.setLineIds(monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList()));
}else {
pmsDeptGetChildrenDTO.setLineIds(new ArrayList<>());
}
if (systemType == 1 || systemType == 2) {
//配网监测点
List<PmsMonitorBaseDTO> pwMonitorList = iDistributionMonitorService.getMonitorByCondition(deptIdList, null);
pmsDeptGetChildrenDTO.setPwMonitorIds(pwMonitorList.stream().map(PmsMonitorBaseDTO::getMonitorId).distinct().collect(Collectors.toList()));
}else {
pmsDeptGetChildrenDTO.setPwMonitorIds(new ArrayList<>());
}
} else {
pmsDeptGetChildrenDTO.setLineIds(new ArrayList<>());
pmsDeptGetChildrenDTO.setPwMonitorIds(new ArrayList<>());
@@ -682,9 +694,9 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
}
//判断是否操作过该条记录
LineBak lineBak = lineBakMapper.selectOne(new LambdaQueryWrapper<LineBak>().eq(LineBak::getLineId,oracleTerminalExcel.getId()));
LineBak lineBak = lineBakMapper.selectOne(new LambdaQueryWrapper<LineBak>().eq(LineBak::getLineId, oracleTerminalExcel.getId()));
DeviceBak deviceBak = deviceBakMapper.selectOne(new LambdaQueryWrapper<DeviceBak>().eq(DeviceBak::getDevId,oracleTerminalExcel.getDeviceId()));
DeviceBak deviceBak = deviceBakMapper.selectOne(new LambdaQueryWrapper<DeviceBak>().eq(DeviceBak::getDevId, oracleTerminalExcel.getDeviceId()));
//单位
@@ -749,7 +761,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
pmsTerminalPO.setDeviceModel(devTypelDicMap.get(oracleTerminalExcel.getDevType()).getId());
} else {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典装置类型不存在,请确认后重试"));
continue;
continue;
}
@@ -785,9 +797,9 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
pmsTerminalPO.setPort(oracleTerminalExcel.getPort().toString());
pmsTerminalPO.setIsUpToGrid(0);
if(manDicMap.containsKey(oracleTerminalExcel.getManufacturer())){
if (manDicMap.containsKey(oracleTerminalExcel.getManufacturer())) {
pmsTerminalPO.setManufacture(manDicMap.get(oracleTerminalExcel.getManufacturer()).getId());
}else {
} else {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典制造厂商不存在,请确认后重试"));
continue;
}
@@ -800,7 +812,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
deviceBakPO.setDevId(oracleTerminalExcel.getDeviceId());
deviceBakMapper.insert(deviceBakPO);
} else {
if(Objects.isNull(deviceBak)) {
if (Objects.isNull(deviceBak)) {
pmsTerminalPO.setId(pmsTerminal.getId());
DeviceBak deviceBakPO = new DeviceBak();
deviceBakPO.setId(pmsTerminal.getId());
@@ -808,13 +820,13 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
deviceBakMapper.insert(deviceBakPO);
terminalMapper.updateById(pmsTerminalPO);
devId = pmsTerminal.getId();
}else if(Objects.isNull(pmsTerminal)){
} else if (Objects.isNull(pmsTerminal)) {
terminalMapper.deleteById(deviceBak.getId());
pmsTerminalPO.setId(deviceBak.getId());
terminalMapper.insert(pmsTerminalPO);
devId = pmsTerminalPO.getId();
}else {
} else {
devId = pmsTerminal.getId();
}
@@ -841,7 +853,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
if (voltageLevelMap.containsKey(dicVoltagePms)) {
DictData temVoltage = voltageLevelMap.get(dicVoltagePms);
generatrixWirePO.setScale(temVoltage.getId());
}else {
} else {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典母线电压等级不存在,请确认后重试"));
continue;
}
@@ -973,19 +985,19 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
lineBakPO.setId(monitorPO.getId());
lineBakPO.setLineId(oracleTerminalExcel.getId());
lineBakMapper.insert(lineBakPO);
}else {
if(Objects.isNull(lineBak)){
} else {
if (Objects.isNull(lineBak)) {
LineBak lineBakPO = new LineBak();
lineBakPO.setId(monitor.getId());
lineBakPO.setLineId(oracleTerminalExcel.getId());
lineBakMapper.insert(lineBakPO);
monitorMapper.updateById(monitorPO);
}else if(Objects.isNull(monitor)){
} else if (Objects.isNull(monitor)) {
monitorMapper.deleteById(lineBak.getId());
overlimitMapper.deleteById(lineBak.getId());
monitorPO.setId(lineBak.getId());
monitorMapper.insert(monitorPO);
}else{
} else {
monitorMapper.deleteById(monitor.getId());
overlimitMapper.deleteById(monitor.getId());
monitorPO.setId(lineBak.getId());