1.冀北电网一张图-暂态水平调整
This commit is contained in:
@@ -21,10 +21,10 @@ public class GridDiagramVO {
|
||||
private List<?> gwInfo;
|
||||
|
||||
@ApiModelProperty(name = "data", value = "总信息")
|
||||
private Double data;
|
||||
private List<Double> data;
|
||||
|
||||
@ApiModelProperty(name = "gwData", value = "国网总信息")
|
||||
private Double gwData;
|
||||
private List<Double> gwData;
|
||||
@Data
|
||||
public static class LineStatistics {
|
||||
@ApiModelProperty(name = "orgId", value = "单位id")
|
||||
@@ -138,4 +138,32 @@ public class GridDiagramVO {
|
||||
@ApiModelProperty(name = "onLineRate", value = "数据在线率")
|
||||
private Float onLineRate;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class AreaData {
|
||||
|
||||
@ApiModelProperty(name = "orgId", value = "单位id")
|
||||
private String orgId;
|
||||
|
||||
@ApiModelProperty(name = "orgName", value = "单位名称")
|
||||
private String orgName;
|
||||
|
||||
@ApiModelProperty(name = "lineNum", value = "监测点个数")
|
||||
private Integer lineNum;
|
||||
|
||||
@ApiModelProperty(name = "lineList", value = "监测点集合")
|
||||
private List<String> lineList;
|
||||
|
||||
@ApiModelProperty(name = "alarm", value = "告警监测点个数")
|
||||
private Integer alarm;
|
||||
|
||||
@ApiModelProperty(name = "onLineNumList", value = "告警监测点信息")
|
||||
private List<String> alarmList;
|
||||
|
||||
@ApiModelProperty(name = "subNum", value = "变电站个数")
|
||||
private Integer subNum;
|
||||
|
||||
@ApiModelProperty(name = "deviceNum", value = "终端个数")
|
||||
private Integer deviceNum;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@
|
||||
inner join pq_substation sub on sub.id = substation.id
|
||||
where device.Dev_Model = 1
|
||||
and point.state = 1
|
||||
and device.Run_Flag = 0
|
||||
and device.Dev_Data_Type in
|
||||
<foreach collection="list" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
|
||||
@@ -300,13 +300,12 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
||||
|
||||
List<String> lineAllIds = collect.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
List<String> gwLineAllIds = collect.stream().filter(x->1==x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
|
||||
List<RmpEventDetailPO> list = this.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
List<RmpEventDetailPO> list1 = this.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.in(CollUtil.isNotEmpty(lineAllIds), RmpEventDetailPO::getMeasurementPointId, lineAllIds)
|
||||
.in(CollUtil.isNotEmpty(param.getIds()), RmpEventDetailPO::getEventType, param.getIds())
|
||||
.ge(StrUtil.isNotBlank(param.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||
.le(StrUtil.isNotBlank(param.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||
);
|
||||
List<RmpEventDetailPO> list =list1.stream().filter(x->param.getIds().contains(x.getEventType())).collect(Collectors.toList());
|
||||
|
||||
Map<String, DeptGetChildrenMoreDTO> deptLineMap = deptGetChildrenMoreDTOS.stream().collect(Collectors.toMap(DeptGetChildrenMoreDTO::getUnitId, Function.identity()));
|
||||
GridDiagramVO.LineStatistics lineStatistics;
|
||||
@@ -330,9 +329,8 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
||||
gwInfo.add(gwLineStatistics);
|
||||
}
|
||||
}
|
||||
gridDiagramVO.setData(setData(gridDiagramVO, lineAllIds, list));
|
||||
gridDiagramVO.setGwData(setData(gridDiagramVO, gwLineAllIds, list));
|
||||
setData(gridDiagramVO, gwLineAllIds, list);
|
||||
gridDiagramVO.setData(setData(lineAllIds, list1));
|
||||
gridDiagramVO.setGwData(setData(gwLineAllIds, list1));
|
||||
gridDiagramVO.setInfo(info);
|
||||
gridDiagramVO.setGwInfo(gwInfo);
|
||||
return gridDiagramVO;
|
||||
@@ -395,16 +393,29 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
||||
}
|
||||
|
||||
|
||||
private Double setData(GridDiagramVO gridDiagramVO, List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
|
||||
List<Double> asGwDouble = list.stream()
|
||||
private List<Double> setData(List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
|
||||
List<Double> info=new ArrayList<>();
|
||||
long count90 = list.stream()
|
||||
.filter(x -> ObjectUtil.isNotNull(x.getSeverity()))
|
||||
.filter(x -> gwLineAllIds.contains(x.getMeasurementPointId()))
|
||||
.map(RmpEventDetailPO::getSeverity).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(asGwDouble)){
|
||||
return asGwDouble.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
|
||||
.filter(x -> 0.9 < x.getFeatureAmplitude())
|
||||
.map(RmpEventDetailPO::getFeatureAmplitude).count();
|
||||
long count50 = list.stream()
|
||||
.filter(x -> ObjectUtil.isNotNull(x.getSeverity()))
|
||||
.filter(x -> gwLineAllIds.contains(x.getMeasurementPointId()))
|
||||
.filter(x -> 0.5 < x.getFeatureAmplitude())
|
||||
.map(RmpEventDetailPO::getFeatureAmplitude).count();
|
||||
if(count90>0){
|
||||
info.add(NumberUtil.round(count90*100.0/list.size(),2).doubleValue());
|
||||
}else {
|
||||
return 0.0;
|
||||
info.add(0.0);
|
||||
}
|
||||
if(count50>0){
|
||||
info.add(NumberUtil.round(count50*100.0/list.size(),2).doubleValue());
|
||||
}else {
|
||||
info.add(0.0);
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.njcn.harmonic.pojo.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class RStatLimitTargetVO {
|
||||
/**
|
||||
* 监测点ID合格率的变电站/装置/母线/线路序号
|
||||
*/
|
||||
private String lineId;
|
||||
|
||||
/**
|
||||
* 频率偏差越限次数
|
||||
*/
|
||||
private Integer flickerAllTime=0;
|
||||
|
||||
/**
|
||||
* 电压偏差越限次数
|
||||
*/
|
||||
private Integer freqDevOvertime=0;
|
||||
|
||||
/**
|
||||
* 电压不平衡度越限次数
|
||||
*/
|
||||
private Integer voltageDevOvertime=0;
|
||||
|
||||
/**
|
||||
* 闪变越限次数
|
||||
*/
|
||||
private Integer ubalanceOvertime=0;
|
||||
|
||||
/**
|
||||
* 电压谐波畸变率越限次数
|
||||
*/
|
||||
private Integer uaberranceOvertime=0;
|
||||
|
||||
/**
|
||||
* 负序电流限值次数
|
||||
*/
|
||||
private Integer iNegOvertime=0;
|
||||
|
||||
/**
|
||||
* 电压谐波含有率越限次数
|
||||
*/
|
||||
private Integer uharmOvertime=0;
|
||||
|
||||
/**
|
||||
* 电流谐波幅值越限次数
|
||||
*/
|
||||
private Integer iharmOvertime=0;
|
||||
|
||||
/**
|
||||
* 间谐波电压限值次数
|
||||
*/
|
||||
private Integer inuharmOvertime=0;
|
||||
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionGridDiagramDTO;
|
||||
@@ -11,7 +12,9 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
import com.njcn.harmonic.service.IRMpTargetWarnDService;
|
||||
import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
@@ -40,6 +43,9 @@ public class GridDiagramHarmController extends BaseController {
|
||||
private final IRMpTargetWarnDService irMpTargetWarnDService;
|
||||
private final PollutionSubstationService pollutionSubstationService;
|
||||
private final RStatLimitService rStatLimitService;
|
||||
private final IRStatLimitTargetDService targetDService;
|
||||
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getSubLineGiveAnAlarm")
|
||||
@@ -84,4 +90,24 @@ public class GridDiagramHarmController extends BaseController {
|
||||
List<GridDiagramVO.LineData> gridDiagramDevData = rStatLimitService.getGridDiagramLineData(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevData, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getGridDiagramAreaData")
|
||||
@ApiOperation("区域基本信息(监测点,终端,变电站等)")
|
||||
public HttpResult<List<GridDiagramVO.AreaData>> getGridDiagramAreaData(@RequestBody DeviceInfoParam.BusinessParam param) {
|
||||
String methodDescribe = getMethodDescribe("getGridDiagramAreaData");
|
||||
List<GridDiagramVO.AreaData> gridDiagramDevData = rStatLimitService.getGridDiagramAreaData(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevData, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getGridDiagramAreaData")
|
||||
@ApiOperation("监测点告警越线天数详细信息")
|
||||
public HttpResult<RStatLimitTargetVO> getGridDiagramAreaData(@RequestBody StatisticsBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getGridDiagramAreaData");
|
||||
RStatLimitTargetVO gridDiagramDevData = targetDService.getGridDiagramTargetData(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevData, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.harmonic.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -59,4 +60,8 @@ public interface RStatLimitTargetDMapper extends BaseMapper<RStatLimitTargetDPO>
|
||||
List<RStatLimitTargetDPO> getSumTarget(@Param("ids") List<String> ids,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
RStatLimitTargetVO getSumTargetDetails(@Param("ids") List<String> ids,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
from (
|
||||
SELECT
|
||||
my_index,
|
||||
sum( all_time ) AS allCount
|
||||
sum( all_time )+sum( flicker_all_time )AS allCount
|
||||
FROM
|
||||
r_stat_limit_target_d
|
||||
<where>
|
||||
@@ -282,4 +282,93 @@
|
||||
group by
|
||||
my_index
|
||||
</select>
|
||||
<select id="getSumTargetDetails" resultType="com.njcn.harmonic.pojo.vo.RStatLimitTargetVO">
|
||||
SELECT
|
||||
my_index AS lineId,
|
||||
SUM( all_time ) AS allTime,
|
||||
SUM( flicker_overtime ) AS flickerOvertime,
|
||||
SUM( flicker_all_time ) AS flickerAllTime,
|
||||
SUM( freq_dev_overtime ) AS freqDevOvertime,
|
||||
SUM( voltage_dev_overtime ) AS voltageDevOvertime,
|
||||
SUM( ubalance_overtime ) AS ubalanceOvertime,
|
||||
SUM( uaberrance_overtime ) AS uaberranceOvertime,
|
||||
SUM( i_neg_overtime ) AS iNegOvertime,
|
||||
sum(if((uharm_2_overtime+
|
||||
uharm_3_overtime+
|
||||
uharm_4_overtime+
|
||||
uharm_5_overtime+
|
||||
uharm_6_overtime+
|
||||
uharm_7_overtime+
|
||||
uharm_8_overtime+
|
||||
uharm_9_overtime+
|
||||
uharm_10_overtime+
|
||||
uharm_11_overtime+
|
||||
uharm_12_overtime+
|
||||
uharm_13_overtime+
|
||||
uharm_14_overtime+
|
||||
uharm_15_overtime+
|
||||
uharm_16_overtime+
|
||||
uharm_17_overtime+
|
||||
uharm_18_overtime+
|
||||
uharm_19_overtime+
|
||||
uharm_20_overtime+
|
||||
uharm_21_overtime+
|
||||
uharm_22_overtime+
|
||||
uharm_23_overtime+
|
||||
uharm_24_overtime+
|
||||
uharm_25_overtime)>0,1,0))as uharmOvertime,
|
||||
sum(if((iharm_2_overtime+
|
||||
iharm_3_overtime+
|
||||
iharm_4_overtime+
|
||||
iharm_5_overtime+
|
||||
iharm_6_overtime+
|
||||
iharm_7_overtime+
|
||||
iharm_8_overtime+
|
||||
iharm_9_overtime+
|
||||
iharm_10_overtime+
|
||||
iharm_11_overtime+
|
||||
iharm_12_overtime+
|
||||
iharm_13_overtime+
|
||||
iharm_14_overtime+
|
||||
iharm_15_overtime+
|
||||
iharm_16_overtime+
|
||||
iharm_17_overtime+
|
||||
iharm_18_overtime+
|
||||
iharm_19_overtime+
|
||||
iharm_20_overtime+
|
||||
iharm_21_overtime+
|
||||
iharm_22_overtime+
|
||||
iharm_23_overtime+
|
||||
iharm_24_overtime+
|
||||
iharm_25_overtime)>0,1,0)) as iharmOvertime,
|
||||
sum(if((inuharm_1_overtime+
|
||||
inuharm_2_overtime+
|
||||
inuharm_3_overtime+
|
||||
inuharm_4_overtime+
|
||||
inuharm_5_overtime+
|
||||
inuharm_6_overtime+
|
||||
inuharm_7_overtime+
|
||||
inuharm_8_overtime+
|
||||
inuharm_9_overtime+
|
||||
inuharm_10_overtime+
|
||||
inuharm_11_overtime+
|
||||
inuharm_12_overtime+
|
||||
inuharm_13_overtime+
|
||||
inuharm_14_overtime+
|
||||
inuharm_15_overtime+
|
||||
inuharm_16_overtime)>0,1,0)) as inuharmOvertime
|
||||
FROM
|
||||
r_stat_limit_target_d
|
||||
<where>
|
||||
and time_id between #{startTime} and #{endTime}
|
||||
<if test=" ids != null and ids.size > 0">
|
||||
AND my_index IN
|
||||
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
my_index
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.njcn.harmonic.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -23,4 +25,11 @@ public interface IRStatLimitTargetDService extends IService<RStatLimitTargetDPO>
|
||||
*/
|
||||
List<String> getLinesTarget(StatSubstationBizBaseParam param);
|
||||
|
||||
|
||||
/**
|
||||
* 根据监测点查询一个月各指标越线超标天数
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
RStatLimitTargetVO getGridDiagramTargetData(StatisticsBizBaseParam param);
|
||||
}
|
||||
|
||||
@@ -2,19 +2,19 @@ package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.device.biz.pojo.dto.SubGetBase;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.device.pq.api.LineIntegrityClient;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.harmonic.mapper.RMpTargetWarnDMapper;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO;
|
||||
import com.njcn.harmonic.service.IRMpTargetWarnDService;
|
||||
import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
@@ -46,7 +46,8 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
|
||||
private final IRStatLimitTargetDService targetDService;
|
||||
private final LineIntegrityClient lineIntegrityClient;
|
||||
@Override
|
||||
public GridDiagramVO getSubLineGiveAnAlarm(StatSubstationBizBaseParam param) {
|
||||
//获取电压等级
|
||||
@@ -74,15 +75,22 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
List<String> lineIDS = deptGetChildrenMoreDTOS.stream()
|
||||
.flatMap(x -> x.getStationIds().stream().flatMap(l -> l.getUnitChildrenList().stream()))
|
||||
.collect(Collectors.toList());
|
||||
//根据r_stat_limit_target_d来判断是否告警allTime flicker_overtime
|
||||
|
||||
|
||||
List<RMpTargetWarnDPO> list = this.list(new QueryWrapper<RMpTargetWarnDPO>()
|
||||
.select("measurement_point_id,sum(is_warn) as isWarn")
|
||||
.in(CollUtil.isNotEmpty(lineIDS), "measurement_point_id", lineIDS)
|
||||
.ge(StrUtil.isNotBlank(param.getStartTime()), "data_date", DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||
.le(StrUtil.isNotBlank(param.getEndTime()), "data_date", DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||
.groupBy("measurement_point_id")
|
||||
);
|
||||
List<String> integrityList =new ArrayList<>();
|
||||
//根据r_stat_limit_target_d来判断是否告警allTime flicker_overtime
|
||||
List<String> linesTarget=new ArrayList<>();
|
||||
if(CollUtil.isNotEmpty(lineIDS)){
|
||||
StatSubstationBizBaseParam baseParam=new StatSubstationBizBaseParam();
|
||||
baseParam.setIds(lineIDS);
|
||||
baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString());
|
||||
baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString());
|
||||
linesTarget.addAll(targetDService.getLinesTarget(baseParam));
|
||||
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(lineIDS,
|
||||
DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString(),
|
||||
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString()).getData();
|
||||
integrityList.addAll(integrityDS.stream().filter(x->0==x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
|
||||
Map<String, DeptGetSubStationDTO.Info> deptLineMap = deptGetChildrenMoreDTOS.stream().collect(Collectors.toMap(DeptGetSubStationDTO.Info::getUnitId, Function.identity()));
|
||||
@@ -99,7 +107,7 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
List<SubGetBase> subBaseList = deptLineMap.get(datum.getId()).getStationIds();
|
||||
List<GridDiagramVO.StatisticsData> statisticsData = new ArrayList<>();
|
||||
List<GridDiagramVO.StatisticsData> gwStatisticsData = new ArrayList<>();
|
||||
getSubStationStatisticsData(statisticsData, gwStatisticsData, subBaseList, voltageIds, list);
|
||||
getSubStationStatisticsData(statisticsData, gwStatisticsData, subBaseList, voltageIds, linesTarget,integrityList);
|
||||
lineStatistics.setData(statisticsData);
|
||||
gwLineStatistics.setData(gwStatisticsData);
|
||||
|
||||
@@ -116,7 +124,8 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
List<GridDiagramVO.StatisticsData> gwStatisticsData,
|
||||
List<SubGetBase> subBaseList,
|
||||
List<String> voltageIds,
|
||||
List<RMpTargetWarnDPO> list
|
||||
List<String> list,
|
||||
List<String> integrityList
|
||||
) {
|
||||
GridDiagramVO.StatisticsData data;
|
||||
for (String voltageId : voltageIds) {
|
||||
@@ -143,8 +152,10 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
} 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());
|
||||
List<String> collect=new ArrayList<>();
|
||||
collect.addAll(list.stream().filter(d -> line.contains(d)).collect(Collectors.toList()));
|
||||
collect.addAll(integrityList.stream().filter(d -> line.contains(d)).collect(Collectors.toList()));
|
||||
|
||||
if (CollUtil.isNotEmpty(collect)) {
|
||||
num.getAndIncrement();
|
||||
alarm.addAll(collect);
|
||||
@@ -152,7 +163,7 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
|
||||
});
|
||||
data.setNumTwo(num.get());
|
||||
data.setNumTwoList(alarm);
|
||||
data.setNumTwoList(alarm.stream().distinct().collect(Collectors.toList()));
|
||||
if (i == 0) {
|
||||
statisticsData.add(data);
|
||||
} else {
|
||||
@@ -172,16 +183,18 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
List<String> alarm = new ArrayList<>();
|
||||
subBaseList.stream().forEach(x -> {
|
||||
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());
|
||||
List<String> alarmList=new ArrayList<>();
|
||||
alarmList.addAll(list.stream().filter(d -> line.contains(d)).collect(Collectors.toList()));
|
||||
alarmList.addAll(integrityList.stream().filter(d -> line.contains(d)).collect(Collectors.toList()));
|
||||
if (CollUtil.isNotEmpty(alarmList)) {
|
||||
num.getAndIncrement();
|
||||
alarm.addAll(alarmList);
|
||||
alarm.addAll(alarmList.stream().distinct().collect(Collectors.toList()));
|
||||
}
|
||||
});
|
||||
data.setNumTwo(num.get());
|
||||
data.setNumTwoList(alarm);
|
||||
statisticsData.add(data);
|
||||
//国网监测点
|
||||
data = new GridDiagramVO.StatisticsData();
|
||||
data.setNumOne(subBaseList.stream()
|
||||
.filter(x -> 1 == x.getIsUpToGrid())
|
||||
@@ -195,11 +208,12 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
||||
List<String> gwAlarm = new ArrayList<>();
|
||||
subBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).forEach(x -> {
|
||||
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());
|
||||
List<String> alarmList=new ArrayList<>();
|
||||
alarmList.addAll(list.stream().filter(d -> line.contains(d)).collect(Collectors.toList()));
|
||||
alarmList.addAll(integrityList.stream().filter(d -> line.contains(d)).collect(Collectors.toList()));
|
||||
if (CollUtil.isNotEmpty(alarmList)) {
|
||||
gwNum.getAndIncrement();
|
||||
gwAlarm.addAll(alarmList);
|
||||
gwAlarm.addAll(alarmList.stream().distinct().collect(Collectors.toList()));
|
||||
}
|
||||
});
|
||||
data.setNumTwo(gwNum.get());
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -24,4 +28,11 @@ public class RStatLimitTargetDServiceImpl extends ServiceImpl<RStatLimitTargetDM
|
||||
public List<String> getLinesTarget(StatSubstationBizBaseParam param) {
|
||||
return this.baseMapper.getLinesTarget(param.getIds(),param.getStartTime(),param.getEndTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public RStatLimitTargetVO getGridDiagramTargetData(StatisticsBizBaseParam param) {
|
||||
return this.baseMapper.getSumTargetDetails(Arrays.asList(param.getId()),
|
||||
DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString(),
|
||||
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,4 +26,11 @@ public interface RStatLimitService {
|
||||
List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds);
|
||||
|
||||
List<GridDiagramVO.LineData> getGridDiagramLineData(DeviceInfoParam.BusinessParam deviceInfoParam);
|
||||
|
||||
/**
|
||||
* 区域基本信息(监测点,终端,变电站等)
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
List<GridDiagramVO.AreaData> getGridDiagramAreaData(DeviceInfoParam.BusinessParam param);
|
||||
}
|
||||
|
||||
@@ -13,15 +13,14 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalTree;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
||||
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
|
||||
import com.njcn.system.pojo.enums.StatisticsEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -31,7 +30,6 @@ import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
@@ -47,6 +45,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
private final RStatLimitTargetDMapper rStatLimitTargetDMapper;
|
||||
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||
private final LineIntegrityClient lineIntegrityClient;
|
||||
private final IRStatLimitTargetDService targetDService;
|
||||
|
||||
@Override
|
||||
public List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds) {
|
||||
@@ -137,6 +136,48 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
return info;
|
||||
}
|
||||
|
||||
@Override
|
||||
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;
|
||||
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<>());
|
||||
}
|
||||
info.add(areaData);
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlinerateVO> onlineRateByDevIds,List<RStatLimitTargetDPO> limitTargetList, GridDiagramVO.LineData lineData) {
|
||||
//监测完整率
|
||||
List<RStatIntegrityD> integrityDS = onIntegrityByIds.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
||||
|
||||
Reference in New Issue
Block a user