1.全景增加技术监督计划调整

2.增加暂态列表信息和监测点评估信息
This commit is contained in:
wr
2025-12-12 15:01:29 +08:00
parent 601a78246e
commit a6d2d6ed47
18 changed files with 273 additions and 51 deletions

View File

@@ -99,4 +99,9 @@ public class PollutionLineInfoDTO {
* 监测点名称
*/
private String lineName;
/**
* 实际安装位置
*/
private String actualArea;
}

View File

@@ -77,4 +77,7 @@ public class RunManageParam extends BaseParam implements Serializable {
@ApiModelProperty(name = "evaluate", value = "评价")
private String evaluate;
@ApiModelProperty(name = "ids", value = "监测点id集合")
private List<String> ids;
}

View File

@@ -36,6 +36,9 @@ public class GridDiagramProVO {
@ApiModelProperty(name = "integrityRate", value = "数据完整率")
private Float integrityRate;
@ApiModelProperty(name = "onLineRate", value = "数据在线率")
private Float onLineRate;
}
}

View File

@@ -1,7 +1,10 @@
package com.njcn.device.pq.pojo.vo.dataClean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author: cdf
* @CreateTime: 2025-03-31
@@ -78,4 +81,71 @@ public class DetailAbnormalVO {
//限值
private float overLimitValue;
}
@Data
public static class Assess {
/**
* 频率偏差
*/
@ApiModelProperty("频率偏差")
private Double freqData = 3.14159;
@ApiModelProperty("频率偏差限值")
private Float freqLimit = 3.14159F;
@ApiModelProperty("频率偏差信息")
private List<DetailLimitInnerVO> freqDataList;
/**
* 电压偏差上
*/
@ApiModelProperty("电压上偏差")
private Double vDevData = 3.14159;
@ApiModelProperty("电压上偏差限值")
private Float vDevLimit = 3.14159F;
@ApiModelProperty("频率偏差信息")
private List<DetailLimitInnerVO> vDevDataList;
/**
* 电压偏差下
*/
@ApiModelProperty("电压下偏差")
private Double uDevData = 3.14159;
@ApiModelProperty("电压下偏差限值")
private Float uDevLimit = 3.14159F;
@ApiModelProperty("频率偏差信息")
private List<DetailLimitInnerVO> uDevDataList;
/**
* 总谐波畸变率
*/
@ApiModelProperty("总谐波畸变率")
private Double uaberranceData = 3.14159;
@ApiModelProperty("总谐波畸变率限值")
private Float uaberranceLimit = 3.14159F;
@ApiModelProperty("频率偏差信息")
private List<DetailLimitInnerVO> uaberranceDataList;
/**
* 三相电压不平衡度
*/
@ApiModelProperty("三相电压不平衡度")
private Double unbalanceData = 3.14159;
@ApiModelProperty("三相电压不平衡度限值")
private Float unbalanceLimit = 3.14159F;
@ApiModelProperty("频率偏差信息")
private List<DetailLimitInnerVO> unbalanceDataList;
/**
* 电压闪变
*/
@ApiModelProperty("电压闪变")
private Double flickerData = 3.14159;
@ApiModelProperty("电压闪变限值")
private Float flickerLimit = 3.14159F;
@ApiModelProperty("频率偏差信息")
private List<DetailLimitInnerVO> flickerDataList;
}
}

View File

@@ -141,5 +141,14 @@ public class DataVerifyController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/limitTableDetail")
@ApiOperation("监测点评价")
public HttpResult<DetailAbnormalVO.Assess> limitTableDetail(@RequestBody MonitorBaseParam monitorBaseParam) {
String methodDescribe = getMethodDescribe("limitTableDetail");
DetailAbnormalVO.Assess list = iDataVerifyService.limitTableDetail(monitorBaseParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -44,4 +44,5 @@ public interface IDataVerifyService extends IService<DataVerify> {
List<DetailAbnormalVO.DetailLimitInnerVO> monitorLimitTableDetail(MonitorBaseParam monitorBaseParam);
DetailAbnormalVO.Assess limitTableDetail(MonitorBaseParam monitorBaseParam);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.enums.common.ServerEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -331,7 +332,9 @@ public class CommTerminalServiceImpl implements CommTerminalService {
@Override
public List<String> getRunMonitorByDept(MonitorBaseParam monitorBaseParam) {
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(monitorBaseParam.getDeptId()).getData();
List<String> monitorIds = deptLineService.getLineByDeptIds(ids, monitorBaseParam.getManufacturer(), Arrays.asList(monitorBaseParam.getLineRunFlag()), Stream.of(0, 1, 2).collect(Collectors.toList()), monitorBaseParam.getObjType());
List<String> monitorIds = deptLineService.getLineByDeptIds(ids, monitorBaseParam.getManufacturer(),
ObjectUtil.isNotNull(monitorBaseParam.getLineRunFlag())? Arrays.asList(monitorBaseParam.getLineRunFlag()):null,
Stream.of(0, 1, 2).collect(Collectors.toList()), monitorBaseParam.getObjType());
return monitorIds;
}

View File

@@ -19,9 +19,12 @@ import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataLimitRateDetailDto;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.pojo.dto.PqReasonableRangeDto;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.enums.DeviceResponseEnum;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.line.mapper.LineMapper;
import com.njcn.device.overlimit.service.IOverLimitService;
import com.njcn.device.pq.mapper.DataVerifyMapper;
import com.njcn.device.pq.mapper.PqDataVerifyBakMapper;
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
@@ -45,6 +48,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -87,8 +91,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
private final DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final PqDataVerifyBakMapper pqDataVerifyBakMapper;
private final IOverLimitService overLimitService;
@Override
public VerifyMonitorVO getMonitorVerifyData(MonitorBaseParam monitorBaseParam) {
@@ -394,6 +397,88 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
return result;
}
@Override
public DetailAbnormalVO.Assess limitTableDetail(MonitorBaseParam monitorBaseParam) {
DetailAbnormalVO.Assess assess = new DetailAbnormalVO.Assess();
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
lineCountEvaluateParam.setLineId(Collections.singletonList(monitorBaseParam.getMonitorIds().get(0)));
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchBeginTime());
List<DataLimitRateDetailDto> dtoList = dataLimitRateDetailFeignClient.getRawData(lineCountEvaluateParam).getData();
Overlimit overLimitDataById = overLimitService.getOverLimitDataById(monitorBaseParam.getMonitorIds().get(0));
List<DetailAbnormalVO.DetailLimitInnerVO> freq = new ArrayList<>();
List<DetailAbnormalVO.DetailLimitInnerVO> voltage = new ArrayList<>();
List<DetailAbnormalVO.DetailLimitInnerVO> uaberrance = new ArrayList<>();
List<DetailAbnormalVO.DetailLimitInnerVO> ubalance = new ArrayList<>();
List<DetailAbnormalVO.DetailLimitInnerVO> flicker = new ArrayList<>();
for (DataLimitRateDetailDto dto : dtoList) {
dealJsonArr(new JSONArray(dto.getFreqDevOvertime()), freq, DicDataEnum.FREQUENCY_DEV.getCode(), null);
dealJsonArr(new JSONArray(dto.getVoltageDevOvertime()), voltage, DicDataEnum.VOLTAGE_DEV.getCode(), null);
dealJsonArr(new JSONArray(dto.getUaberranceOvertime()), uaberrance, DicDataEnum.THD_V.getCode(), null);
dealJsonArr(new JSONArray(dto.getUbalanceOvertime()), ubalance, DicDataEnum.phase_Voltage.getCode(), null);
dealJsonArr(new JSONArray(dto.getFlickerOvertime()), flicker, DicDataEnum.FLICKER.getCode(), null);
}
if (CollUtil.isNotEmpty(freq)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = freq.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setFreqData(Double.valueOf(val.getVal()));
assess.setFreqLimit(val.getOverLimitValue());
assess.setFreqDataList(collect);
} else {
assess.setFreqLimit(overLimitDataById.getFreqDev());
}
if (CollUtil.isNotEmpty(voltage)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = voltage.stream().filter(x->Double.valueOf(x.getVal()) > 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
if(CollUtil.isNotEmpty(collect)){
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setVDevData(Double.valueOf(val.getVal()));
assess.setVDevLimit(val.getOverLimitValue());
assess.setVDevDataList(collect);
}
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = voltage.stream().filter(x->Double.valueOf(x.getVal()) < 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal)).collect(Collectors.toList());
if(CollUtil.isNotEmpty(collect2)){
DetailAbnormalVO.DetailLimitInnerVO val2 = collect2.get(0);
assess.setUDevData(Double.valueOf(val2.getVal()));
assess.setUDevLimit(val2.getOverLimitValue());
assess.setUDevDataList(collect2);
}
}else{
assess.setVDevLimit(overLimitDataById.getVoltageDev());
assess.setUDevLimit(overLimitDataById.getUvoltageDev());
}
if (CollUtil.isNotEmpty(uaberrance)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = uaberrance.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setUaberranceData(Double.valueOf(val.getVal()));
assess.setUaberranceLimit(val.getOverLimitValue());
assess.setUaberranceDataList(collect);
}else {
assess.setUaberranceLimit(overLimitDataById.getUaberrance());
}
if (CollUtil.isNotEmpty(ubalance)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = ubalance.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setUnbalanceData(Double.valueOf(val.getVal()));
assess.setUnbalanceLimit(val.getOverLimitValue());
assess.setUnbalanceDataList(collect);
}else{
assess.setUnbalanceLimit(overLimitDataById.getUbalance());
}
if (CollUtil.isNotEmpty(flicker)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = flicker.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setFlickerData(Double.valueOf(val.getVal()));
assess.setFlickerLimit(val.getOverLimitValue());
assess.setFlickerDataList(collect);
}else {
assess.setFlickerLimit(overLimitDataById.getFlicker());
}
return assess;
}
private Map<String, DictData> getTargetMap() {
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
return dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));
@@ -572,8 +657,6 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
}
}
});
//谐波电压指标包含 各次谐波电压含有率 + 电压总谐波畸变率
HARMONIC_VOLTAGE.addAll(THD_V);
Map<String, Set<String>> overLimitCount = new HashMap<>();
overLimitCount.put(DicDataEnum.FLICKER.getCode() + SEPARATOR + DicDataEnum.FLICKER.getName(), FLICKER);

View File

@@ -472,7 +472,7 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
if (CollUtil.isNotEmpty(onlineRateDS)) {
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOnlineMin).sum();
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOfflineMin).sum();
if (offlineTime == 0) {
if ((onlineTime + offlineTime) == 0) {
return new BigDecimal(0);
}
return NumberUtil.round(Math.min(onlineTime * 100.0 / (onlineTime + offlineTime), 100), 2);

View File

@@ -13,6 +13,7 @@ import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.common.mapper.onlinerate.OnLineRateMapper;
import com.njcn.device.common.service.GeneralDeviceService;
import com.njcn.device.device.service.IDeviceService;
import com.njcn.device.line.mapper.LineDetailMapper;
@@ -26,6 +27,7 @@ import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.*;
import com.njcn.device.pq.pojo.vo.GridDiagramProVO;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
import com.njcn.device.pq.service.*;
import com.njcn.device.rstatintegrity.mapper.RStatIntegrityDMapper;
import com.njcn.system.api.DicDataFeignClient;
@@ -66,6 +68,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
private final LineService lineService;
private final DeptLineService deptLineService;
private final LineDetailMapper lineDetailMapper;
private final OnLineRateMapper onLineRateMapper;
@Override
public GridDiagramVO getGridDiagramMonitor(GridDiagramParam param) {
@@ -472,13 +475,16 @@ public class GridDiagramServiceImpl implements GridDiagramService {
GridDiagramProVO.Details details = new GridDiagramProVO.Details();
Stream<LineDetail> stream = lines.stream();
Stream<LineDetail> stream2 = lines.stream();
Stream<LineDetail> stream3 = lines.stream();
if (gwType != null) {
stream = stream.filter(x -> x.getMonitorFlag() == gwType);
stream2 = stream2.filter(x -> x.getMonitorFlag() == gwType);
stream3 = stream3.filter(x -> x.getMonitorFlag() == gwType);
}
if (powerFlag != null) {
stream = stream.filter(x -> x.getPowerFlag() == powerFlag);
stream2 = stream2.filter(x -> x.getPowerFlag() == powerFlag);
stream3 = stream3.filter(x -> x.getPowerFlag() == powerFlag);
}
//总监测点
List<String> ids = stream.map(LineDetail::getId).collect(Collectors.toList());
@@ -496,6 +502,23 @@ public class GridDiagramServiceImpl implements GridDiagramService {
} else {
details.setIntegrityRate(0.0f);
}
List<String> devIds = stream3.map(LineDetail::getMonitorName).collect(Collectors.toList());
if (CollUtil.isNotEmpty(devIds)) {
OnlineRateParam onlineRateParam = new OnlineRateParam();
onlineRateParam.setIds(devIds);
onlineRateParam.setStartTime(baseQueryParam.getStartTime());
onlineRateParam.setEndTime(baseQueryParam.getEndTime());
//获取所有终端在线率
List<RStatOnlineRateVO> onlineRateByDev = onLineRateMapper.getOnlineRateByDevIds(onlineRateParam);
if(CollUtil.isNotEmpty(onlineRateByDev)){
details.setOnLineRate(onlineRateByDev.get(0).getOnlineRate().floatValue());
}else{
details.setOnLineRate(0.0f);
}
} else {
details.setOnLineRate(0.0f);
}
return details;
}

View File

@@ -75,11 +75,16 @@ public class RunManageServiceImpl implements RunManageService {
@Override
public List<RunManageVO> getLineLedger(RunManageParam runManageParam) {
List<RunManageVO> resultList = new ArrayList<>();
List<String> lineIndexes ;
if(CollUtil.isNotEmpty(runManageParam.getIds())){
lineIndexes =runManageParam.getIds();
}else{
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
BeanUtil.copyProperties(runManageParam, deviceInfoParam);
deviceInfoParam.setServerName("pqs-common");
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0,1,2).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
List<String> lineIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
lineIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
}
if (!CollectionUtils.isEmpty(lineIndexes)) {
resultList = deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(),runManageParam.getRunFlag(), Objects.isNull(runManageParam.getSearchValue())?null:runManageParam.getSearchValue());
if(CollUtil.isNotEmpty(resultList)){

View File

@@ -371,7 +371,8 @@
deviceDetail.id deviceId,
pv.scale lineVoltage,
pqsub.scale subVoltage,
lineDetail.monitor_id monitorId
lineDetail.monitor_id monitorId,
lineDetail.Actual_Area actualArea
FROM
pq_line line,
pq_line_detail lineDetail,

View File

@@ -68,7 +68,8 @@
SELECT
DISTINCT
detail.*,
pqd.Com_Flag as comFlag
pqd.Com_Flag as comFlag,
pqd.id as monitorName
FROM
pq_line line,
pq_line_detail detail,

View File

@@ -46,6 +46,15 @@ public class EventCount implements Serializable {
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("终端名称")
private String devName;
@ApiModelProperty("变电站名称")
private String subName;
@ApiModelProperty("ip")
private String ip;
@ApiModelProperty("暂态指标")
private String dicData;

View File

@@ -32,10 +32,9 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import com.njcn.event.enums.EventResponseEnum;
import com.njcn.event.mapper.majornetwork.RMpEventDetailMMapper;
import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper;
@@ -47,7 +46,6 @@ import com.njcn.event.pojo.vo.*;
import com.njcn.event.service.majornetwork.RmpEventDetailService;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.event.pojo.po.RMpEventDetailM;
import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -363,10 +361,10 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
.ge(StrUtil.isNotBlank(param.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())))
.le(StrUtil.isNotBlank(param.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))
);
Map<String, Line> lineMap = new HashMap<>();
Map<String, LineDetailVO.Detail> lineMap = new HashMap<>();
if (CollUtil.isNotEmpty(lineIds)) {
List<Line> lines = lineFeignClient.getBaseLineList(lineIds).getData();
lineMap = lines.stream().collect(Collectors.toMap(Line::getId, Function.identity()));
List<LineDetailVO.Detail> lines = lineFeignClient.getLineDetailByIds(lineIds).getData();
lineMap = lines.stream().collect(Collectors.toMap(LineDetailVO.Detail::getLineId, Function.identity()));
}
EventDetailVO vo;
for (GeneralDeviceDTO datum : data) {
@@ -403,16 +401,20 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
return info;
}
public List<EventCount.Detail> eventLine(List<RmpEventDetailPO> detailPOList, String dicData, Map<String, Line> lineMap) {
public List<EventCount.Detail> eventLine(List<RmpEventDetailPO> detailPOList, String dicData, Map<String, LineDetailVO.Detail> lineMap) {
List<EventCount.Detail> info = new ArrayList<>();
Map<String, Long> collect = detailPOList.stream().filter(x -> x.getEventType().equals(dicData))
.collect(Collectors.groupingBy(RmpEventDetailPO::getMeasurementPointId, Collectors.counting()));
collect.forEach((key, value) -> {
if (lineMap.containsKey(key)) {
LineDetailVO.Detail detail1 = lineMap.get(key);
EventCount.Detail detail = new EventCount.Detail();
detail.setLineId(key);
detail.setDicData(dicData);
detail.setLineName(lineMap.get(key).getName());
detail.setLineName(detail1.getLineName());
detail.setDevName(detail1.getDevName());
detail.setSubName(detail1.getSubName());
detail.setIp(detail1.getIp());
detail.setCount(BigDecimal.valueOf(value));
info.add(detail);
}

View File

@@ -1201,15 +1201,18 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
if (CollUtil.isNotEmpty(lineIdList)) {
List<RMpPollutionDPO> pollutionList = rMpPollutionDPOMapper.selectSumList(lineIdList, param.getIds(), param.getStartTime(), param.getEndTime());
Map<String, Double> pollutionMap = pollutionList.stream().collect(Collectors.toMap(RMpPollutionDPO::getLineId, RMpPollutionDPO::getValue));
//获取监测点详细信息
List<PollutionLineInfoDTO> lineInfoDTOList = commLineClient.getPollutionLineInfo(lineIdList).getData();
List<PowerFlagPollution> linePollutionList;
for (GeneralDeviceDTO item : deptData) {
linePollutionList = new ArrayList<>();
List<PollutionLineInfoDTO> lineDetailList = commLineClient.getPollutionLineInfo(lineIdList).getData();
Map<String, List<PollutionLineInfoDTO>> lineDetailMap = lineDetailList.stream().collect(Collectors.groupingBy(PollutionLineInfoDTO::getActualArea));
//获取部门
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
deptList.forEach(item -> {
if (lineDetailMap.containsKey(item.getArea())) {
List<PowerFlagPollution> linePollutionList = new ArrayList<>();
AreaPollution pollution = new AreaPollution();
pollution.setDeptName(item.getName());
pollution.setDeptId(item.getIndex());
List<PollutionLineInfoDTO> lineDetails = lineInfoDTOList.stream().filter(x -> item.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
pollution.setDeptId(item.getId());
List<PollutionLineInfoDTO> lineDetails = lineDetailMap.get(item.getArea()).stream().collect(Collectors.toList());
PowerFlagPollution pollution1;
for (PollutionLineInfoDTO lineDetail : lineDetails) {
pollution1 = new PowerFlagPollution();
@@ -1227,6 +1230,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
pollution.setScore(NumberUtil.round(linePollutionList.stream().mapToDouble(PowerFlagPollution::getVHarmonicValue).sum(),2).doubleValue());
info.add(pollution);
}
});
}
return info;
}

View File

@@ -186,7 +186,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
baseParam.setIds(onLine);
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<String> linesTarget = targetDService.getLinesHarmTarget(baseParam);
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(onLine,
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData();
@@ -272,7 +272,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString());
baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString());
List<String> linesTarget = targetDService.getLinesHarmTarget(baseParam);
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(online,
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(line,
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData();
//在线率大于90的点
@@ -299,7 +299,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
//数据完整性≥90% - <90%
GridDiagramVO.RunData integrityData = new GridDiagramVO.RunData();
List<String> integrity = online.stream().filter(x -> !integrityDS90.contains(x)).distinct().collect(Collectors.toList());
List<String> integrity = line.stream().filter(x -> !integrityDS90.contains(x)).distinct().collect(Collectors.toList());
integrityData.setLineNumOne(integrityDS90.size());
integrityData.setLineListOne(integrityDS90);
integrityData.setLineNumTwo(integrity.size());
@@ -309,7 +309,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
//电能质量指标未超标-超标
GridDiagramVO.RunData targetData = new GridDiagramVO.RunData();
List<String> integrityS = online.stream().filter(x -> !linesTarget.contains(x)).distinct().collect(Collectors.toList());
List<String> integrityS = line.stream().filter(x -> !linesTarget.contains(x)).distinct().collect(Collectors.toList());
targetData.setLineNumOne(integrityS.size());
targetData.setLineListOne(integrityS);
targetData.setLineNumTwo(linesTarget.size());

View File

@@ -252,7 +252,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
//根据问题单id查询已关联工单
List<String> problemIds = userComplaintList.stream().map(SupervisionUserComplaintPO::getId).collect(Collectors.toList());
problemIds.addAll(surveyTestList.stream().map(SurveyTest::getId).collect(Collectors.toList()));
problemIds.addAll(lineWarningList.stream().map(LineWarning::getId).collect(Collectors.toList()));
problemIds.addAll(lineWarningList.stream().map(LineWarning::getLeafletId).collect(Collectors.toList()));
problemIds.addAll(runWarningsIds);