1.冀北电网一张图,变电站,终端,监测点接口,添加监测点id信息

This commit is contained in:
wr
2024-05-13 16:34:02 +08:00
parent 2638679df3
commit 0037a6a5b6
8 changed files with 130 additions and 59 deletions

View File

@@ -178,4 +178,18 @@ public class DeviceInfoParam implements Serializable {
}
@Data
@EqualsAndHashCode(callSuper = true)
public static class GridDiagram extends BusinessParam{
@ApiModelProperty("查询总数监测点")
private List<String> coutList;
@ApiModelProperty("查询告警监测点")
private List<String> alarmList;
@ApiModelProperty("是否是冀北电网一张图树 0:否 1:是")
private Integer type;
}
}

View File

@@ -112,4 +112,7 @@ public class AreaLineInfoVO implements Serializable {
@ApiModelProperty(name = "tail",value = "总数")
private Integer tail;
@ApiModelProperty(name = "type",value = "冀北电网一张图类型信息")
private Integer type;
}

View File

@@ -46,9 +46,15 @@ public class GridDiagramVO {
@ApiModelProperty(name = "num", value = "监测点个数")
private Integer num;
@ApiModelProperty(name = "num", value = "在线监测点")
@ApiModelProperty(name = "numList", value = "监测点集合")
private List<String> numList;
@ApiModelProperty(name = "onLineNum", value = "在线监测点数")
private Integer onLineNum;
@ApiModelProperty(name = "onLineNumList", value = "在线监测点集合")
private List<String> onLineNumList;
@ApiModelProperty(name = "onLineRate", value = "数据在线率")
private Float onLineRate;
@@ -62,9 +68,14 @@ public class GridDiagramVO {
@ApiModelProperty(name = "numOne", value = "数据")
private Long numOne;
@ApiModelProperty(name = "numOneList", value = "数据集合")
private List<String> numOneList;
@ApiModelProperty(name = "numTwo", value = "数据")
private Long numTwo;
@ApiModelProperty(name = "numTwoList", value = "数据集合")
private List<String> numTwoList;
}
@Data
public static class DeviceData {

View File

@@ -159,11 +159,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
//终端id集合
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData();
lineStatisticsData.setNum(lineIds.size());
lineStatisticsData.setOnLineNum(onLineNumIds.size());
onLineAndIntegrity(lineIds, onIntegrityByIds, devIds, onlineRateByDevIds, lineStatisticsData);
statisticsData.add(lineStatisticsData);
gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIds, lineIds, onLineNumIds);
}
@@ -174,9 +170,15 @@ public class GridDiagramServiceImpl implements GridDiagramService {
List<String> lineIdsAll = lineBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll);
}
private void gridDiagramAdd(List<GridDiagramVO.LineStatisticsData> statisticsData, List<RStatOnlinerateD> onlineRateByDevIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIdsAll, List<String> lineIdsAll, List<String> onLineNumAll) {
GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData();
lineStatisticsData.setNum(lineIdsAll.size());
lineStatisticsData.setNumList(lineIdsAll);
lineStatisticsData.setOnLineNum(onLineNumAll.size());
lineStatisticsData.setOnLineNumList(onLineNumAll);
onLineAndIntegrity(lineIdsAll, onIntegrityByIds, devIdsAll, onlineRateByDevIds, lineStatisticsData);
statisticsData.add(lineStatisticsData);
}
@@ -191,11 +193,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
//终端id集合
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData();
lineStatisticsData.setNum(lineIds.size());
lineStatisticsData.setOnLineNum(onLineNumIds.size());
onLineAndIntegrity(lineIds, onIntegrityByIds, devIds, onlineRateByDevIds, lineStatisticsData);
statisticsData.add(lineStatisticsData);
gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIds, lineIds, onLineNumIds);
}
private void gwStatisticsDataOtherList(List<GridDiagramVO.LineStatisticsData> statisticsData, List<LineDevGetDTO> lineBaseList, List<RStatOnlinerateD> onlineRateByDevIds, List<RStatIntegrityD> onIntegrityByIds) {
@@ -204,11 +202,8 @@ public class GridDiagramServiceImpl implements GridDiagramService {
//监测点集合
List<String> lineIdsAll = lineBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag() && 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData();
lineStatisticsData.setNum(lineIdsAll.size());
lineStatisticsData.setOnLineNum(onLineNumAll.size());
onLineAndIntegrity(lineIdsAll, onIntegrityByIds, devIdsAll, onlineRateByDevIds, lineStatisticsData);
statisticsData.add(lineStatisticsData);
gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll);
}
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlinerateD> onlineRateByDevIds, GridDiagramVO.LineStatisticsData lineStatisticsData) {
@@ -460,8 +455,10 @@ public class GridDiagramServiceImpl implements GridDiagramService {
//todo 1国网信息
long count = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getDevId).distinct().count();
data.setNumOne(count);
data.setNumOneList(lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()));
long count1 = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count();
data.setNumTwo(count1);
data.setNumTwoList(lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()));
if (i == 0) {
statisticsData.add(data);
} else {
@@ -469,16 +466,24 @@ public class GridDiagramServiceImpl implements GridDiagramService {
}
}
}
//numOne 在线 numTwo 在线
data = new GridDiagramVO.StatisticsData();
data.setNumOne(lineBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count());
data.setNumOneList(lineBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()));
data.setNumTwo(lineBaseList.stream()
.filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count());
data.setNumTwoList(lineBaseList.stream()
.filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()));
statisticsData.add(data);
data = new GridDiagramVO.StatisticsData();
data.setNumOne(lineBaseList.stream()
.filter(x -> 1==x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().count());
data.setNumOneList(lineBaseList.stream()
.filter(x -> 1==x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()));
data.setNumTwo(lineBaseList.stream()
.filter(x -> 1 == x.getComFlag()&&1==x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().count());
data.setNumTwoList(lineBaseList.stream()
.filter(x -> 1 == x.getComFlag()&&1==x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()));
gwStatisticsData.add(data);
}

View File

@@ -42,7 +42,7 @@ public class AreaInfoController extends BaseController {
@PostMapping("/getAreaLineInfo")
@ApiOperation("获取监测点区域信息")
@ApiImplicitParam(name = "deviceInfoParam", value = "参数体", required = true)
public HttpResult<List<AreaSubLineVO>> getAreaLineInfo(@RequestBody @Validated DeviceInfoParam.BusinessParam deviceInfoParam) {
public HttpResult<List<AreaSubLineVO>> getAreaLineInfo(@RequestBody @Validated DeviceInfoParam.GridDiagram deviceInfoParam) {
String methodDescribe = getMethodDescribe("getAreaLineInfo");
List<AreaSubLineVO> res = areaInfoService.getAreaLineInfo(deviceInfoParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);

View File

@@ -20,7 +20,7 @@ public interface AreaInfoService {
* @author cdf
* @date 2022/6/29
*/
List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.BusinessParam deviceInfoParam);
List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.GridDiagram deviceInfoParam);
/**

View File

@@ -45,14 +45,30 @@ public class AreaInfoServiceImpl implements AreaInfoService {
private final EventDetailService eventDetailService;
@Override
public List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.BusinessParam deviceInfoParam) {
public List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.GridDiagram deviceInfoParam) {
List<AreaSubLineVO> resultVOList = new ArrayList<>();
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
List<String> lineIds =new ArrayList<>();
if(1==deviceInfoParam.getType()){
if(CollectionUtil.isNotEmpty(deviceInfoParam.getCoutList())){
lineIds.addAll(deviceInfoParam.getCoutList());
}
if(CollectionUtil.isNotEmpty(deviceInfoParam.getAlarmList())){
lineIds.addAll(deviceInfoParam.getAlarmList());
}
}else{
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
lineIds.addAll(generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()));
}
if (CollectionUtil.isNotEmpty(lineIds)) {
List<AreaLineInfoVO> resList = lineFeignClient.getBaseLineAreaInfo(lineIds).getData();
if(CollectionUtil.isNotEmpty(deviceInfoParam.getCoutList())){
resList.stream().filter(x->deviceInfoParam.getCoutList().contains(x.getLineId())).forEach(x->x.setType(0));
}
if(CollectionUtil.isNotEmpty(deviceInfoParam.getAlarmList())){
resList.stream().filter(x->deviceInfoParam.getAlarmList().contains(x.getLineId())).forEach(x->x.setType(1));
}
//查询监测点未处理暂态事件
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()

View File

@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author wr
@@ -85,7 +85,6 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
);
Map<String, DeptGetSubStationDTO.Info> deptLineMap = deptGetChildrenMoreDTOS.stream().collect(Collectors.toMap(DeptGetSubStationDTO.Info::getUnitId, Function.identity()));
GridDiagramVO.LineStatistics lineStatistics;
GridDiagramVO.LineStatistics gwLineStatistics;
@@ -122,74 +121,97 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
GridDiagramVO.StatisticsData data;
for (String voltageId : voltageIds) {
for (int i = 0; i < 2; i++) {
data=new GridDiagramVO.StatisticsData();
data = new GridDiagramVO.StatisticsData();
int finalI = i;
long count = subBaseList.stream()
.filter(x -> getIsUpToGrid(finalI,x,voltageId))
.filter(x -> getIsUpToGrid(finalI, x, voltageId))
.map(SubGetBase::getId)
.distinct()
.count();
data.setNumOne(count);
data.setNumOneList(subBaseList.stream()
.filter(x -> getIsUpToGrid(finalI, x, voltageId))
.flatMap(x -> x.getUnitChildrenList().stream()).distinct().collect(Collectors.toList()));
AtomicLong num= new AtomicLong();
subBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).forEach(x -> {
List<String> line=new ArrayList<>();
//0全部 1国网
if(finalI==0){
line.addAll(x.getUnitChildrenList());
}else{
line.addAll(x.getGwUnitChildrenList());
}
int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum();
if (sum > 0) {
num.getAndIncrement();
}
});
AtomicLong num = new AtomicLong();
List<String> alarm = new ArrayList<>();
subBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).forEach(x -> {
List<String> line = new ArrayList<>();
//0全部 1国网
if (finalI == 0) {
line.addAll(x.getUnitChildrenList());
} else {
line.addAll(x.getGwUnitChildrenList());
}
List<String> collect = list.stream().filter(d -> line.contains(d.getMeasurementPointId()))
.filter(d -> d.getIsWarn() > 0).map(RMpTargetWarnDPO::getMeasurementPointId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(collect)) {
num.getAndIncrement();
alarm.addAll(collect);
}
});
data.setNumTwo(num.get());
if(i==0){
data.setNumTwoList(alarm);
if (i == 0) {
statisticsData.add(data);
}else{
} else {
gwStatisticsData.add(data);
}
}
}
//总数信息
data = new GridDiagramVO.StatisticsData();
data.setNumOne( subBaseList.stream()
.map(SubGetBase::getId)
.distinct()
.count());
AtomicLong num= new AtomicLong();
data.setNumOne(subBaseList.stream()
.map(SubGetBase::getId)
.distinct()
.count());
data.setNumOneList(subBaseList.stream()
.flatMap(x -> x.getUnitChildrenList().stream()).distinct().collect(Collectors.toList()));
AtomicLong num = new AtomicLong();
List<String> alarm = new ArrayList<>();
subBaseList.stream().forEach(x -> {
List<String> line=x.getUnitChildrenList();
int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum();
if (sum > 0) {
List<String> line = x.getUnitChildrenList();
List<String> alarmList = list.stream().filter(d -> line.contains(d.getMeasurementPointId()))
.filter(d -> d.getIsWarn() > 0).map(RMpTargetWarnDPO::getMeasurementPointId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(alarmList)) {
num.getAndIncrement();
alarm.addAll(alarmList);
}
});
data.setNumTwo(num.get());
data.setNumTwoList(alarm);
statisticsData.add(data);
data = new GridDiagramVO.StatisticsData();
data.setNumOne(subBaseList.stream()
.filter(x -> 1 == x.getIsUpToGrid())
.map(SubGetBase::getId)
.distinct()
.count());
AtomicLong gwNum= new AtomicLong();
.filter(x -> 1 == x.getIsUpToGrid())
.map(SubGetBase::getId)
.distinct()
.count());
data.setNumOneList(subBaseList.stream()
.filter(x -> 1 == x.getIsUpToGrid())
.flatMap(x -> x.getUnitChildrenList().stream()).distinct().collect(Collectors.toList()));
AtomicLong gwNum = new AtomicLong();
List<String> gwAlarm = new ArrayList<>();
subBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).forEach(x -> {
List<String> line=x.getUnitChildrenList();
int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum();
if (sum > 0) {
List<String> line = x.getGwUnitChildrenList();
List<String> alarmList = list.stream().filter(d -> line.contains(d.getMeasurementPointId()))
.filter(d -> d.getIsWarn() > 0).map(RMpTargetWarnDPO::getMeasurementPointId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(alarmList)) {
gwNum.getAndIncrement();
gwAlarm.addAll(alarmList);
}
});
data.setNumTwo(gwNum.get());
data.setNumTwoList(gwAlarm);
gwStatisticsData.add(data);
}
private Boolean getIsUpToGrid(Integer type, SubGetBase subGetBase, String voltageId) {
//0全部 1国网上送监测点
if(type == 0){
if (type == 0) {
return voltageId.equals(subGetBase.getVoltageLevel());
}else{
} else {
return voltageId.equals(subGetBase.getVoltageLevel()) && 1 == subGetBase.getIsUpToGrid();
}
}