1.冀北电网一张图-变电站统计电网侧统计

2.公共方法增加点电网侧信息
3.修改区域监测点终端等信息接口
This commit is contained in:
wr
2024-05-21 17:12:57 +08:00
parent 1b86deea2d
commit c41586dcc6
13 changed files with 124 additions and 34 deletions

View File

@@ -101,10 +101,10 @@ public class GridDiagramHarmController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getGridDiagramAreaData")
@PostMapping("/getGridDiagramTargetData")
@ApiOperation("监测点告警越线天数详细信息")
public HttpResult<RStatLimitTargetVO> getGridDiagramAreaData(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getGridDiagramAreaData");
public HttpResult<RStatLimitTargetVO> getGridDiagramTargetData(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getGridDiagramTargetData");
RStatLimitTargetVO gridDiagramDevData = targetDService.getGridDiagramTargetData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevData, methodDescribe);
}

View File

@@ -659,6 +659,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
public GridDiagramVO getPollutionAlarmData(StatSubstationBizBaseParam param) {
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(param.getId());
deptGetLineParam.setPowerFlag(0);
List<DeptGetSubStationDTO.Info> deptGetChildrenMoreDTOS = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData();
//获取全部变电站信息
List<SubGetBase> collect = deptGetChildrenMoreDTOS.stream().flatMap(x -> x.getStationIds().stream()).collect(Collectors.toList());
@@ -739,6 +740,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
map.put("I",dicDataFeignClient.getDicDataByCode(DicDataEnum.I_ALL.getCode()).getData().getId());
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(param.getId());
deptGetLineParam.setPowerFlag(0);
List<DeptGetSubStationDTO.Info> deptGetChildrenMoreDTOS = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData();
//获取全部变电站信息
List<SubGetBase> collect = deptGetChildrenMoreDTOS.stream().flatMap(x -> x.getStationIds().stream()).collect(Collectors.toList());
@@ -777,6 +779,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
@Override
public List<List<String>> getPollutionAlarmList(GridDiagramParam param) {
List<List<String>> info = new ArrayList<>();
param.getDeviceInfoParam().setPowerFlag(0);
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param.getDeviceInfoParam()).getData();
List<String> subIds = data.stream().flatMap(x -> x.getSubIndexes().stream()).collect(Collectors.toList());
List<RStatPollutionSubstationM> substationMlist = pollutionSubstationMMapper.selectList(new LambdaQueryWrapper<RStatPollutionSubstationM>()

View File

@@ -70,6 +70,7 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
List<Dept> data = deptFeignClient.getDirectSonSelf(param.getId()).getData();
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(param.getId());
deptGetLineParam.setPowerFlag(0);
List<DeptGetSubStationDTO.Info> deptGetChildrenMoreDTOS = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData();
List<String> lineIDS = deptGetChildrenMoreDTOS.stream()

View File

@@ -7,6 +7,9 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineIntegrityClient;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
@@ -29,6 +32,9 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -46,6 +52,9 @@ public class RStatLimitServiceImpl implements RStatLimitService {
private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final LineIntegrityClient lineIntegrityClient;
private final IRStatLimitTargetDService targetDService;
private final CommTerminalGeneralClient commTerminalGeneralClient;
@Override
public List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds) {
@@ -140,38 +149,77 @@ public class RStatLimitServiceImpl implements RStatLimitService {
public List<GridDiagramVO.AreaData> getGridDiagramAreaData(DeviceInfoParam.BusinessParam param) {
List<GridDiagramVO.AreaData> info = new ArrayList<>();
GridDiagramVO.AreaData areaData ;
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
List<String> integrityList;
List<String> linesTarget;
//监测点总数
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalAllDeviceInfoAsDept(param).getData();
//在线
List<GeneralDeviceDTO> onData = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
Map<String, GeneralDeviceDTO> onMap = onData.stream().collect(Collectors.toMap(GeneralDeviceDTO::getIndex, Function.identity()));
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(param.getDeptIndex());
deptGetLineParam.setPowerFlag(0);
//变电站公共方法
List<DeptGetSubStationDTO.Info> deptGetChildrenMoreDTOS = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData();
Map<String, DeptGetSubStationDTO.Info> deptLineMap = deptGetChildrenMoreDTOS.stream().collect(Collectors.toMap(DeptGetSubStationDTO.Info::getUnitId, Function.identity()));
List<String> line = data.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
StatSubstationBizBaseParam baseParam=new StatSubstationBizBaseParam();
baseParam.setIds(line);
baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString());
baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString());
List<String> linesTarget=targetDService.getLinesTarget(baseParam);
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(line,
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData();
List<String> integrityDS0 = integrityDS.stream().filter(x -> 0 == x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList());
for (GeneralDeviceDTO datum : data) {
areaData = new GridDiagramVO.AreaData();
areaData.setOrgId(datum.getIndex());
areaData.setOrgName(datum.getName());
areaData.setLineNum(datum.getLineIndexes().size());
areaData.setLineList(datum.getLineIndexes());
areaData.setSubNum(datum.getSubIndexes().size());
areaData.setDeviceNum(datum.getDeviceIndexes().size());
if(CollUtil.isNotEmpty(datum.getLineIndexes())){
integrityList =new ArrayList<>();
//根据r_stat_limit_target_d来判断是否告警allTime flicker_overtime
StatSubstationBizBaseParam baseParam=new StatSubstationBizBaseParam();
baseParam.setIds(datum.getLineIndexes());
baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString());
baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString());
linesTarget=targetDService.getLinesTarget(baseParam);
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(datum.getLineIndexes(),
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData();
integrityList.addAll(integrityDS.stream().filter(x->0==x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList()));
List<String> collect=new ArrayList<>();
collect.addAll(linesTarget.stream().filter(d -> datum.getLineIndexes().contains(d)).collect(Collectors.toList()));
collect.addAll(integrityList.stream().filter(d -> datum.getLineIndexes().contains(d)).collect(Collectors.toList()));
List<String> alarm = collect.stream().distinct().collect(Collectors.toList());
areaData.setAlarm(alarm.size());
areaData.setAlarmList(alarm);
}else {
areaData.setAlarm(0);
areaData.setAlarmList(new ArrayList<>());
if(onMap.containsKey(datum.getIndex())){
GeneralDeviceDTO dto = onMap.get(datum.getIndex());
areaData.setOnlineNum(dto.getLineIndexes().size());
areaData.setOnlineList(dto.getLineIndexes());
areaData.setOnDevice(dto.getDeviceIndexes().size());
if (deptLineMap.containsKey(datum.getIndex())) {
DeptGetSubStationDTO.Info deptSub = deptLineMap.get(datum.getIndex());
areaData.setSubNum(deptSub.getStationIds().size());
AtomicLong num = new AtomicLong();
List<String> alarm = new ArrayList<>();
deptSub.getStationIds().stream().forEach(x -> {
List<String> lineIds = new ArrayList<>();
//0全部 1国网
if (ObjectUtil.isNull(param.getMonitorFlag())) {
lineIds.addAll(x.getUnitChildrenList());
} else {
if (0 == param.getMonitorFlag()) {
lineIds.addAll(x.getUnitChildrenList());
}else {
lineIds.addAll(x.getGwUnitChildrenList());
}
}
List<String> collect = new ArrayList<>();
collect.addAll(linesTarget.stream().filter(d -> lineIds.contains(d)).collect(Collectors.toList()));
collect.addAll(integrityDS0.stream().filter(d -> lineIds.contains(d)).collect(Collectors.toList()));
if (CollUtil.isNotEmpty(collect)) {
num.getAndIncrement();
alarm.addAll(collect);
}
});
areaData.setAlarmSubNum(Math.toIntExact(num.get()));
areaData.setAlarmSubList(alarm.stream().distinct().collect(Collectors.toList()));
}
List<String> lineAlarm = new ArrayList<>();
lineAlarm.addAll(linesTarget.stream().filter(d -> datum.getLineIndexes().contains(d)).collect(Collectors.toList()));
lineAlarm.addAll(integrityDS0.stream().filter(d -> datum.getLineIndexes().contains(d)).collect(Collectors.toList()));
areaData.setAlarm(lineAlarm.stream().distinct().collect(Collectors.toList()).size());
areaData.setAlarmList(lineAlarm.stream().distinct().collect(Collectors.toList()));
}
info.add(areaData);
}