1.全景增加技术监督计划调整
2.增加暂态列表信息和监测点评估信息
This commit is contained in:
@@ -99,4 +99,9 @@ public class PollutionLineInfoDTO {
|
||||
* 监测点名称
|
||||
*/
|
||||
private String lineName;
|
||||
|
||||
/**
|
||||
* 实际安装位置
|
||||
*/
|
||||
private String actualArea;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -36,6 +36,9 @@ public class GridDiagramProVO {
|
||||
|
||||
@ApiModelProperty(name = "integrityRate", value = "数据完整率")
|
||||
private Float integrityRate;
|
||||
|
||||
@ApiModelProperty(name = "onLineRate", value = "数据在线率")
|
||||
private Float onLineRate;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -44,4 +44,5 @@ public interface IDataVerifyService extends IService<DataVerify> {
|
||||
List<DetailAbnormalVO.DetailLimitInnerVO> monitorLimitTableDetail(MonitorBaseParam monitorBaseParam);
|
||||
|
||||
|
||||
DetailAbnormalVO.Assess limitTableDetail(MonitorBaseParam monitorBaseParam);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)){
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user