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

@@ -1,8 +1,10 @@
package com.njcn.device.biz.pojo.param;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
@@ -30,6 +32,13 @@ public class DeptGetLineParam {
private Boolean monitorStateRunning=true;
@ApiModelProperty(name = "isUpToGrid",value = "0.非送国网 1.需要送国网的")
private Integer isUpToGrid;
private Integer isUpToGrid;
/**
* 0-电网侧
* 1-非电网侧
*/
@ApiModelProperty("电网侧标识")
@Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
private Integer powerFlag;
}

View File

@@ -154,6 +154,12 @@ public class GridDiagramVO {
@ApiModelProperty(name = "lineList", value = "监测点集合")
private List<String> lineList;
@ApiModelProperty(name = "onlineNum", value = "在线监测点个数")
private Integer onlineNum;
@ApiModelProperty(name = "onlineList", value = "在线监测点集合")
private List<String> onlineList;
@ApiModelProperty(name = "alarm", value = "告警监测点个数")
private Integer alarm;
@@ -163,7 +169,17 @@ public class GridDiagramVO {
@ApiModelProperty(name = "subNum", value = "变电站个数")
private Integer subNum;
@ApiModelProperty(name = "alarmSubNum", value = "告警变电站数量")
private Integer alarmSubNum;
@ApiModelProperty(name = "alarmSubList", value = "告警变电站监测点数量")
private List<String> alarmSubList;
@ApiModelProperty(name = "deviceNum", value = "终端个数")
private Integer deviceNum;
@ApiModelProperty(name = "onDevice", value = "在线终端数量")
private Integer onDevice;
}
}

View File

@@ -55,6 +55,7 @@ public class GridDiagramController extends BaseController {
@ApiOperation("变电站趋势分析")
public HttpResult<Map<String, Long>> getGridDiagramSubTendency(@RequestBody GridDiagramParam param){
String methodDescribe = getMethodDescribe("getGridDiagramSubTendency");
param.getDeviceInfoParam().setPowerFlag(0);
Map<String, Long> gridDiagramDevTendency = gridDiagramService.getGridDiagramDevTendency(param,3);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevTendency, methodDescribe);
}

View File

@@ -76,7 +76,7 @@ public interface DeptLineMapper extends BaseMapper<DeptLine> {
List<TerminalGetBase> orgSubStationGet(@Param("list")List<Integer> devType);
List<TerminalGetBase.Extend> orgSubStationInfoGet(@Param("list")List<Integer> devType);
List<TerminalGetBase.Extend> orgSubStationInfoGet(@Param("list")List<Integer> devType,@Param("powerFlag")Integer powerFlag);
List<String> getLineIdByDeptIds(@Param("deptIds")List<String> deptIds,@Param("runFlag")List<Integer> runFlag,@Param("dataType")List<Integer> dataType);

View File

@@ -115,6 +115,9 @@
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="powerFlag!=null ">
and lineDetail.Power_Flag = #{powerFlag}
</if>
</select>
<select id="getLineIdByDeptIds" resultType="string">
select

View File

@@ -107,7 +107,7 @@ public interface DeptLineService extends IService<DeptLine> {
Map<String, List<TerminalGetBase>> orgSubStationGet(List<Integer> devType);
List<TerminalGetBase.Extend> orgSubStationInfoGet(List<Integer> devType);
List<TerminalGetBase.Extend> orgSubStationInfoGet(List<Integer> devType,Integer powerFlag);
List<SubGetBase> getSubStationList(SubstationParam substationParam);

View File

@@ -221,7 +221,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
public List<DeptGetSubStationDTO.Info> deptSubStationInfo(DeptGetLineParam deptGetLineParam) {
List<DeptGetSubStationDTO.Info> result = new ArrayList<>();
List<DeptGetBase> temDept = getDeptChildrenByParent(deptGetLineParam);
List<TerminalGetBase.Extend> anExtends = deptLineService.orgSubStationInfoGet(filterDataTypeNew(deptGetLineParam.getServerName()));
List<TerminalGetBase.Extend> anExtends = deptLineService.orgSubStationInfoGet(filterDataTypeNew(deptGetLineParam.getServerName()),deptGetLineParam.getPowerFlag());
Map<String, List<TerminalGetBase.Extend>> orgSub = anExtends.stream().collect(Collectors.groupingBy(TerminalGetBase::getUnitId));
Map<String, String> deptNameMap = temDept.stream().collect(Collectors.toMap(DeptGetBase::getUnitId, DeptGetBase::getUnitName));
temDept.forEach(item -> {

View File

@@ -122,8 +122,8 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
}
@Override
public List<TerminalGetBase.Extend> orgSubStationInfoGet(List<Integer> devType) {
return deptLineMapper.orgSubStationInfoGet(devType);
public List<TerminalGetBase.Extend> orgSubStationInfoGet(List<Integer> devType,Integer powerFlag) {
return deptLineMapper.orgSubStationInfoGet(devType, powerFlag);
}
@Override

View File

@@ -1,8 +1,10 @@
package com.njcn.harmonic.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import java.util.List;
@@ -27,4 +29,11 @@ public class StatSubstationBizBaseParam extends StatisticsBizBaseParam {
@ApiModelProperty("页面尺寸")
private Integer pageSize;
/**
* 0-电网侧
* 1-非电网侧
*/
@ApiModelProperty("电网侧标识")
@Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
private Integer powerFlag;
}

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);
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 {
areaData.setAlarm(0);
areaData.setAlarmList(new ArrayList<>());
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);
}