1.全景增加暂态信息和调整告警条件
2.增加暂态列表信息和冀北树污染值条件
This commit is contained in:
@@ -218,6 +218,9 @@ public class DeviceInfoParam implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty("指标")
|
@ApiModelProperty("指标")
|
||||||
private List<String> dicData;
|
private List<String> dicData;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否展示污染值 0:否 1:是")
|
||||||
|
private Integer isPollution;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean isUserLedger() {
|
public Boolean isUserLedger() {
|
||||||
|
|||||||
@@ -38,4 +38,7 @@ public class MonitorBaseParam extends BaseParam {
|
|||||||
@ApiModelProperty(value = "终端厂家")
|
@ApiModelProperty(value = "终端厂家")
|
||||||
private String manufacturer;
|
private String manufacturer;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "监测点运行状态")
|
||||||
|
private Integer lineRunFlag;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,12 +50,9 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
|||||||
private final LineMapper lineMapper;
|
private final LineMapper lineMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 基础获取单位信息
|
* 基础获取单位信息
|
||||||
|
*
|
||||||
* @author cdf
|
* @author cdf
|
||||||
* @date 2023/5/10
|
* @date 2023/5/10
|
||||||
*/
|
*/
|
||||||
@@ -334,7 +331,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> getRunMonitorByDept(MonitorBaseParam monitorBaseParam) {
|
public List<String> getRunMonitorByDept(MonitorBaseParam monitorBaseParam) {
|
||||||
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(monitorBaseParam.getDeptId()).getData();
|
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(monitorBaseParam.getDeptId()).getData();
|
||||||
List<String> monitorIds = deptLineService.getLineByDeptIds(ids,monitorBaseParam.getManufacturer(),null,Stream.of(0,1,2).collect(Collectors.toList()),monitorBaseParam.getObjType());
|
List<String> monitorIds = deptLineService.getLineByDeptIds(ids, monitorBaseParam.getManufacturer(), Arrays.asList(monitorBaseParam.getLineRunFlag()), Stream.of(0, 1, 2).collect(Collectors.toList()), monitorBaseParam.getObjType());
|
||||||
return monitorIds;
|
return monitorIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package com.njcn.event.pojo.dto;
|
package com.njcn.event.pojo.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@@ -34,4 +36,21 @@ public class EventCount implements Serializable {
|
|||||||
public EventCount(String lineId) {
|
public EventCount(String lineId) {
|
||||||
this.lineId = lineId;
|
this.lineId = lineId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Detail implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty("监测点ID")
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
@ApiModelProperty("监测点名称")
|
||||||
|
private String lineName;
|
||||||
|
|
||||||
|
@ApiModelProperty("暂态指标")
|
||||||
|
private String dicData;
|
||||||
|
|
||||||
|
@ApiModelProperty("暂降次数")
|
||||||
|
private BigDecimal count;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,11 @@ public class EventBaseParam extends BaseParam implements Serializable {
|
|||||||
private String deptId;
|
private String deptId;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Info extends EventBaseParam {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "dicData", value = "字典id")
|
||||||
|
private String dicData;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package com.njcn.event.pojo.vo;
|
package com.njcn.event.pojo.vo;
|
||||||
|
|
||||||
|
import com.njcn.event.pojo.dto.EventCount;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
@@ -25,12 +27,21 @@ public class EventDetailVO implements Serializable {
|
|||||||
@ApiModelProperty(name = "swellTimes",value = "电压暂升发生次数")
|
@ApiModelProperty(name = "swellTimes",value = "电压暂升发生次数")
|
||||||
private Long swellTimes;
|
private Long swellTimes;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "swellTimes", value = "电压暂升发生监测点集合")
|
||||||
|
private List<EventCount.Detail> swellTimesIds;
|
||||||
|
|
||||||
@ApiModelProperty(name = "sagTimes",value = "电压暂降发生次数")
|
@ApiModelProperty(name = "sagTimes",value = "电压暂降发生次数")
|
||||||
private Long sagTimes;
|
private Long sagTimes;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "sagTimes", value = "电压暂降发生监测点集合")
|
||||||
|
private List<EventCount.Detail> sagTimesIds;
|
||||||
|
|
||||||
@ApiModelProperty(name = "interruptTimes",value = "短时中断发生次数")
|
@ApiModelProperty(name = "interruptTimes",value = "短时中断发生次数")
|
||||||
private Long interruptTimes;
|
private Long interruptTimes;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "interruptTimesIds", value = "短时中断发生监测点集合")
|
||||||
|
private List<EventCount.Detail> interruptTimesIds;
|
||||||
|
|
||||||
@ApiModelProperty(name = "rate90",value = "暂态严重度占比小于90%")
|
@ApiModelProperty(name = "rate90",value = "暂态严重度占比小于90%")
|
||||||
private Double rate90;
|
private Double rate90;
|
||||||
|
|
||||||
|
|||||||
@@ -156,4 +156,14 @@ public class RmpEventDetailController extends BaseController {
|
|||||||
List<EventCount> eventCount = rmpEventDetailService.getEventCount(param);
|
List<EventCount> eventCount = rmpEventDetailService.getEventCount(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventCount, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventCount, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getEventByLineIdsCount")
|
||||||
|
@ApiOperation("全景暂降详情列表")
|
||||||
|
public HttpResult<Page<AdvanceEventDetailVO>> getEventByLineIdsCount(@RequestBody EventBaseParam.Info param) {
|
||||||
|
String methodDescribe = getMethodDescribe("getEventByLineIdsCount");
|
||||||
|
Page<AdvanceEventDetailVO> page = rmpEventDetailService.getEventByLineIdsCount(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class AreaInfoServiceImpl implements AreaInfoService {
|
|||||||
private final LineFeignClient lineFeignClient;
|
private final LineFeignClient lineFeignClient;
|
||||||
private final EventDetailService eventDetailService;
|
private final EventDetailService eventDetailService;
|
||||||
private final PollutionSubstationClient pollutionSubstationClient;
|
private final PollutionSubstationClient pollutionSubstationClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.GridDiagram deviceInfoParam) {
|
public List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.GridDiagram deviceInfoParam) {
|
||||||
List<AreaSubLineVO> resultVOList = new ArrayList<>();
|
List<AreaSubLineVO> resultVOList = new ArrayList<>();
|
||||||
@@ -66,7 +67,7 @@ public class AreaInfoServiceImpl implements AreaInfoService {
|
|||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(lineIds)) {
|
if (CollectionUtil.isNotEmpty(lineIds)) {
|
||||||
List<AreaLineInfoVO> resList = lineFeignClient.getBaseLineAreaInfo(lineIds).getData();
|
List<AreaLineInfoVO> resList = lineFeignClient.getBaseLineAreaInfo(lineIds).getData();
|
||||||
if(1==deviceInfoParam.getType()){
|
if (1 == deviceInfoParam.getIsPollution()) {
|
||||||
OnlineRateParam.Info param = new OnlineRateParam.Info();
|
OnlineRateParam.Info param = new OnlineRateParam.Info();
|
||||||
param.setIds(resList.stream().map(AreaLineInfoVO::getLineId).distinct().collect(Collectors.toList()));
|
param.setIds(resList.stream().map(AreaLineInfoVO::getLineId).distinct().collect(Collectors.toList()));
|
||||||
param.setDicData(deviceInfoParam.getDicData());
|
param.setDicData(deviceInfoParam.getDicData());
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
|||||||
import com.njcn.device.pq.api.LineFeignClient;
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
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.po.Line;
|
||||||
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
@@ -46,6 +47,7 @@ import com.njcn.event.pojo.vo.*;
|
|||||||
import com.njcn.event.service.majornetwork.RmpEventDetailService;
|
import com.njcn.event.service.majornetwork.RmpEventDetailService;
|
||||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||||
import com.njcn.event.pojo.po.RMpEventDetailM;
|
import com.njcn.event.pojo.po.RMpEventDetailM;
|
||||||
|
import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
@@ -55,10 +57,13 @@ import com.njcn.user.pojo.dto.DeptDTO;
|
|||||||
import com.njcn.web.factory.PageFactory;
|
import com.njcn.web.factory.PageFactory;
|
||||||
import com.njcn.web.pojo.param.BaseParam;
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -282,7 +287,6 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RmpEventDetailPO queryEventDetailByEventId(String eventId) {
|
public RmpEventDetailPO queryEventDetailByEventId(String eventId) {
|
||||||
return this.getById(eventId);
|
return this.getById(eventId);
|
||||||
@@ -346,12 +350,11 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
@Override
|
@Override
|
||||||
public List<EventDetailVO> getEventDetailByList(GridDiagramParam param) {
|
public List<EventDetailVO> getEventDetailByList(GridDiagramParam param) {
|
||||||
List<EventDetailVO> info = new ArrayList<>();
|
List<EventDetailVO> info = new ArrayList<>();
|
||||||
//获取污区图统计类型
|
//获取统计类型
|
||||||
DictData dip = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData();
|
DictData dip = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData();
|
||||||
DictData rise = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_RISE.getCode()).getData();
|
DictData rise = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_RISE.getCode()).getData();
|
||||||
DictData interruptions = dicDataFeignClient.getDicDataByCode(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getData();
|
DictData interruptions = dicDataFeignClient.getDicDataByCode(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getData();
|
||||||
|
|
||||||
|
|
||||||
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param.getDeviceInfoParam()).getData();
|
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param.getDeviceInfoParam()).getData();
|
||||||
List<String> lineIds = data.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
List<String> lineIds = data.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
List<RmpEventDetailPO> list = this.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> list = this.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
@@ -360,6 +363,11 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
.ge(StrUtil.isNotBlank(param.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())))
|
.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())))
|
.le(StrUtil.isNotBlank(param.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))
|
||||||
);
|
);
|
||||||
|
Map<String, Line> lineMap = new HashMap<>();
|
||||||
|
if (CollUtil.isNotEmpty(lineIds)) {
|
||||||
|
List<Line> lines = lineFeignClient.getBaseLineList(lineIds).getData();
|
||||||
|
lineMap = lines.stream().collect(Collectors.toMap(Line::getId, Function.identity()));
|
||||||
|
}
|
||||||
EventDetailVO vo;
|
EventDetailVO vo;
|
||||||
for (GeneralDeviceDTO datum : data) {
|
for (GeneralDeviceDTO datum : data) {
|
||||||
vo = new EventDetailVO();
|
vo = new EventDetailVO();
|
||||||
@@ -368,8 +376,14 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
List<RmpEventDetailPO> detailPOList = list.stream().filter(x -> datum.getLineIndexes().contains(x.getMeasurementPointId())).collect(Collectors.toList());
|
List<RmpEventDetailPO> detailPOList = list.stream().filter(x -> datum.getLineIndexes().contains(x.getMeasurementPointId())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(detailPOList)) {
|
if (CollUtil.isNotEmpty(detailPOList)) {
|
||||||
vo.setSwellTimes(detailPOList.stream().filter(x -> x.getEventType().equals(rise.getId())).count());
|
vo.setSwellTimes(detailPOList.stream().filter(x -> x.getEventType().equals(rise.getId())).count());
|
||||||
|
vo.setSwellTimesIds(eventLine(detailPOList, rise.getId(), lineMap));
|
||||||
|
|
||||||
vo.setSagTimes(detailPOList.stream().filter(x -> x.getEventType().equals(dip.getId())).count());
|
vo.setSagTimes(detailPOList.stream().filter(x -> x.getEventType().equals(dip.getId())).count());
|
||||||
|
vo.setSagTimesIds(eventLine(detailPOList, dip.getId(), lineMap));
|
||||||
|
|
||||||
vo.setInterruptTimes(detailPOList.stream().filter(x -> x.getEventType().equals(interruptions.getId())).count());
|
vo.setInterruptTimes(detailPOList.stream().filter(x -> x.getEventType().equals(interruptions.getId())).count());
|
||||||
|
vo.setInterruptTimesIds(eventLine(detailPOList, interruptions.getId(), lineMap));
|
||||||
|
|
||||||
double v90 = detailPOList.stream().filter(x -> x.getSeverity() * 100 <= 90).count() * 100.0 / detailPOList.size();
|
double v90 = detailPOList.stream().filter(x -> x.getSeverity() * 100 <= 90).count() * 100.0 / detailPOList.size();
|
||||||
double v50 = detailPOList.stream().filter(x -> x.getSeverity() * 100 <= 50).count() * 100.0 / detailPOList.size();
|
double v50 = detailPOList.stream().filter(x -> x.getSeverity() * 100 <= 50).count() * 100.0 / detailPOList.size();
|
||||||
double v20 = detailPOList.stream().filter(x -> x.getSeverity() * 100 <= 20).count() * 100.0 / detailPOList.size();
|
double v20 = detailPOList.stream().filter(x -> x.getSeverity() * 100 <= 20).count() * 100.0 / detailPOList.size();
|
||||||
@@ -389,6 +403,24 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<EventCount.Detail> eventLine(List<RmpEventDetailPO> detailPOList, String dicData, Map<String, Line> 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)) {
|
||||||
|
EventCount.Detail detail = new EventCount.Detail();
|
||||||
|
detail.setLineId(key);
|
||||||
|
detail.setDicData(dicData);
|
||||||
|
detail.setLineName(lineMap.get(key).getName());
|
||||||
|
detail.setCount(BigDecimal.valueOf(value));
|
||||||
|
info.add(detail);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
info.sort(Comparator.comparing(EventCount.Detail::getCount).reversed());
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RMpEventDetailM getEventDetailByLine(StatisticsBizBaseParam param) {
|
public RMpEventDetailM getEventDetailByLine(StatisticsBizBaseParam param) {
|
||||||
RMpEventDetailM rMpEventDetailM = eventDetailMMapper.selectOne(new LambdaQueryWrapper<RMpEventDetailM>()
|
RMpEventDetailM rMpEventDetailM = eventDetailMMapper.selectOne(new LambdaQueryWrapper<RMpEventDetailM>()
|
||||||
@@ -452,6 +484,57 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
return eventCountList;
|
return eventCountList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<AdvanceEventDetailVO> getEventByLineIdsCount(EventBaseParam.Info param) {
|
||||||
|
Page<RmpEventDetailPO> poPage = this.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
|
.eq(StrUtil.isNotBlank(param.getLineId()), RmpEventDetailPO::getLineId, param.getLineId())
|
||||||
|
.eq(StrUtil.isNotBlank(param.getDicData()), RmpEventDetailPO::getEventType, param.getDicData())
|
||||||
|
.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())))
|
||||||
|
);
|
||||||
|
List<String> tempLineIds = poPage.getRecords().stream().map(RmpEventDetailPO::getLineId).distinct().collect(Collectors.toList());
|
||||||
|
List<AreaLineInfoVO> temLine = lineFeignClient.getBaseLineAreaInfo(tempLineIds).getData();
|
||||||
|
Map<String, AreaLineInfoVO> map = temLine.stream().collect(Collectors.toMap(AreaLineInfoVO::getLineId, Function.identity()));
|
||||||
|
List<AdvanceEventDetailVO> advanceEventDetailVOList = BeanUtil.copyToList(poPage.getRecords(), AdvanceEventDetailVO.class);
|
||||||
|
advanceEventDetailVOList = advanceEventDetailVOList.stream().peek(item -> {
|
||||||
|
if (map.containsKey(item.getLineId())) {
|
||||||
|
item.setGdName(map.get(item.getLineId()).getGdName());
|
||||||
|
item.setSubName(map.get(item.getLineId()).getSubName());
|
||||||
|
switch (item.getDealFlag()) {
|
||||||
|
case 0:
|
||||||
|
item.setFeatureAmplitudeFlag(EnumFlag.UNTREATED.getDescription());
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
item.setFeatureAmplitudeFlag(EnumFlag.PROCESSED.getDescription());
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
item.setFeatureAmplitudeFlag(EnumFlag.NODATA.getDescription());
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
item.setFeatureAmplitudeFlag(EnumFlag.PROCESSFAIL.getDescription());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalStateException("未发现的类型: " + item.getDealFlag());
|
||||||
|
}
|
||||||
|
//录波文件
|
||||||
|
if (Objects.nonNull(item.getFileFlag()) && item.getFileFlag() == 1) {
|
||||||
|
item.setBoFileFlag(EnumFlag.EXIST.description);
|
||||||
|
} else {
|
||||||
|
item.setBoFileFlag(EnumFlag.ABSENCE.description);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
Page<AdvanceEventDetailVO> pageResult = new Page<>();
|
||||||
|
pageResult.setRecords(advanceEventDetailVOList);
|
||||||
|
pageResult.setTotal(poPage.getTotal());
|
||||||
|
pageResult.setPages(poPage.getPages());
|
||||||
|
pageResult.setSize(poPage.getSize());
|
||||||
|
pageResult.setCurrent(poPage.getCurrent());
|
||||||
|
return pageResult;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<Double> setData(List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
|
private List<Double> setData(List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
|
||||||
List<Double> info = new ArrayList<>();
|
List<Double> info = new ArrayList<>();
|
||||||
|
|||||||
@@ -84,4 +84,6 @@ public interface RmpEventDetailService extends IService<RmpEventDetailPO> {
|
|||||||
|
|
||||||
|
|
||||||
List<EventCount> getEventCount(GridDiagramParam param);
|
List<EventCount> getEventCount(GridDiagramParam param);
|
||||||
|
|
||||||
|
Page<AdvanceEventDetailVO> getEventByLineIdsCount(EventBaseParam.Info param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.harmonic.pojo.excel.pollution;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wr
|
||||||
|
* @description
|
||||||
|
* @date 2025/12/9 21:12
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AreaPollution {
|
||||||
|
|
||||||
|
@ApiModelProperty("部门id")
|
||||||
|
private String deptId;
|
||||||
|
|
||||||
|
@ApiModelProperty("名称")
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
@ApiModelProperty("评估分数")
|
||||||
|
private Double score;
|
||||||
|
|
||||||
|
@ApiModelProperty("监测点详情")
|
||||||
|
private List<PowerFlagPollution> powerFlagPollutionList;
|
||||||
|
}
|
||||||
@@ -24,4 +24,6 @@ public class UserLinePollution {
|
|||||||
private String lineId;
|
private String lineId;
|
||||||
private String city;
|
private String city;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class GridDiagramHarmController extends BaseController {
|
|||||||
@ApiOperation("变电站污染告警占比")
|
@ApiOperation("变电站污染告警占比")
|
||||||
public HttpResult<GridDiagramVO> getPollutionAlarmData(@RequestBody StatSubstationBizBaseParam param) {
|
public HttpResult<GridDiagramVO> getPollutionAlarmData(@RequestBody StatSubstationBizBaseParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getSubLineGiveAnAlarm");
|
String methodDescribe = getMethodDescribe("getSubLineGiveAnAlarm");
|
||||||
GridDiagramVO subLineGiveAnAlarm = pollutionSubstationService.getPollutionAlarmData(param);
|
GridDiagramVO subLineGiveAnAlarm = pollutionSubstationService.getNewPollutionAlarmData(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, subLineGiveAnAlarm, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, subLineGiveAnAlarm, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import com.njcn.common.utils.LogUtil;
|
|||||||
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
|
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
|
import com.njcn.harmonic.pojo.excel.pollution.AreaPollution;
|
||||||
import com.njcn.harmonic.pojo.excel.pollution.LinePollution;
|
import com.njcn.harmonic.pojo.excel.pollution.LinePollution;
|
||||||
import com.njcn.harmonic.pojo.excel.pollution.SubstationPollution;
|
import com.njcn.harmonic.pojo.excel.pollution.SubstationPollution;
|
||||||
import com.njcn.harmonic.pojo.excel.pollution.UserLinePollution;
|
import com.njcn.harmonic.pojo.excel.pollution.UserLinePollution;
|
||||||
@@ -174,4 +175,14 @@ public class PollutionSubstationController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, sumMap, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, sumMap, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@ApiOperation(value = "区域污染值统计")
|
||||||
|
@PostMapping(value = "/getAreaPollution")
|
||||||
|
public HttpResult<List<AreaPollution>> getAreaPollution(@RequestBody StatSubstationBizBaseParam param) {
|
||||||
|
String methodDescribe = getMethodDescribe("getAreaPollution");
|
||||||
|
param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString());
|
||||||
|
param.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString());
|
||||||
|
List<AreaPollution> areaPollution = pollutionSubstationService.getAreaPollution(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, areaPollution, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,4 +73,14 @@ public interface RStatLimitTargetDMapper extends BaseMapper<RStatLimitTargetDPO>
|
|||||||
List<RStatLimitTargetCountVO> getSumTargetCountDayes(@Param("ids") List<String> ids,
|
List<RStatLimitTargetCountVO> getSumTargetCountDayes(@Param("ids") List<String> ids,
|
||||||
@Param("startTime") String startTime,
|
@Param("startTime") String startTime,
|
||||||
@Param("endTime") String endTime);
|
@Param("endTime") String endTime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取谐波电压越线监测点
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getLinesHarmTarget(@Param("ids") List<String> ids,
|
||||||
|
@Param("startTime") String startTime,
|
||||||
|
@Param("endTime") String endTime);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -723,4 +723,56 @@
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
A.lineId;
|
A.lineId;
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getLinesHarmTarget" resultType="java.lang.String">
|
||||||
|
select
|
||||||
|
my_index
|
||||||
|
from (
|
||||||
|
SELECT
|
||||||
|
my_index,
|
||||||
|
sum(if((
|
||||||
|
uaberrance_overtime+
|
||||||
|
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 allCount
|
||||||
|
FROM
|
||||||
|
r_stat_limit_rate_d
|
||||||
|
<where>
|
||||||
|
<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>
|
||||||
|
<if test=" startTime != null and startTime !=''">
|
||||||
|
AND time_id >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
AND time_id <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY
|
||||||
|
my_index
|
||||||
|
) a where allCount>0
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -26,6 +26,13 @@ public interface IRStatLimitTargetDService extends IService<RStatLimitTargetDPO>
|
|||||||
*/
|
*/
|
||||||
List<String> getLinesTarget(StatSubstationBizBaseParam param);
|
List<String> getLinesTarget(StatSubstationBizBaseParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取谐波电压越线监测点
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getLinesHarmTarget(StatSubstationBizBaseParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据监测点查询一个月各指标越线超标天数
|
* 根据监测点查询一个月各指标越线超标天数
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
|||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
|
import com.njcn.harmonic.pojo.excel.pollution.AreaPollution;
|
||||||
import com.njcn.harmonic.pojo.excel.pollution.LinePollution;
|
import com.njcn.harmonic.pojo.excel.pollution.LinePollution;
|
||||||
import com.njcn.harmonic.pojo.excel.pollution.SubstationPollution;
|
import com.njcn.harmonic.pojo.excel.pollution.SubstationPollution;
|
||||||
import com.njcn.harmonic.pojo.excel.pollution.UserLinePollution;
|
import com.njcn.harmonic.pojo.excel.pollution.UserLinePollution;
|
||||||
@@ -20,8 +21,8 @@ import com.njcn.harmonic.pojo.vo.PollutionVO;
|
|||||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Description:
|
* Description:
|
||||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
* Date: 2022/10/13 8:56【需求编号】
|
* Date: 2022/10/13 8:56【需求编号】
|
||||||
@@ -50,6 +51,7 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
|||||||
* @Date: 2022/11/3
|
* @Date: 2022/11/3
|
||||||
*/
|
*/
|
||||||
List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam param);
|
List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: getSubstationInfoById
|
* @Description: getSubstationInfoById
|
||||||
* @Param: [param]
|
* @Param: [param]
|
||||||
@@ -72,17 +74,20 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
|||||||
List<PollutionLineDTO> getLineRankTop10(HarmonicPublicParam param);
|
List<PollutionLineDTO> getLineRankTop10(HarmonicPublicParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 污染告警信息
|
|
||||||
* @param param
|
* @param param
|
||||||
|
* @Description: 污染告警信息
|
||||||
* @return: java.util.List<java.lang.String>
|
* @return: java.util.List<java.lang.String>
|
||||||
* @Author: wr
|
* @Author: wr
|
||||||
* @Date: 2024/4/22 11:00
|
* @Date: 2024/4/22 11:00
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
GridDiagramVO getPollutionAlarmData(StatSubstationBizBaseParam param);
|
GridDiagramVO getPollutionAlarmData(StatSubstationBizBaseParam param);
|
||||||
|
|
||||||
|
GridDiagramVO getNewPollutionAlarmData(StatSubstationBizBaseParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 污染告警信息
|
|
||||||
* @param param
|
* @param param
|
||||||
|
* @Description: 污染告警信息
|
||||||
* @return: java.util.List<java.lang.String>
|
* @return: java.util.List<java.lang.String>
|
||||||
* @Author: wr
|
* @Author: wr
|
||||||
* @Date: 2024/4/22 11:00
|
* @Date: 2024/4/22 11:00
|
||||||
@@ -97,6 +102,7 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出监测点谐波污染值
|
* 导出监测点谐波污染值
|
||||||
|
*
|
||||||
* @param param
|
* @param param
|
||||||
*/
|
*/
|
||||||
List<LinePollution> downPollutionLineCalc(StatSubstationBizBaseParam param);
|
List<LinePollution> downPollutionLineCalc(StatSubstationBizBaseParam param);
|
||||||
@@ -109,10 +115,20 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 变电站谐波电压污染值
|
* 变电站谐波电压污染值
|
||||||
|
*
|
||||||
* @param param
|
* @param param
|
||||||
*/
|
*/
|
||||||
List<SubstationPollution> downPollutionSubCalc(StatSubstationBizBaseParam param);
|
List<SubstationPollution> downPollutionSubCalc(StatSubstationBizBaseParam param);
|
||||||
|
|
||||||
|
|
||||||
List<UserLinePollution> getSumList(OnlineRateParam.Info param);
|
List<UserLinePollution> getSumList(OnlineRateParam.Info param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param param
|
||||||
|
* @Description: 区域污染值统计
|
||||||
|
* @return: java.util.List<com.njcn.harmonic.pojo.excel.pollution.AreaPollution>
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2025/12/10 17:53
|
||||||
|
*/
|
||||||
|
List<AreaPollution> getAreaPollution(StatSubstationBizBaseParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
|||||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||||
|
import com.njcn.harmonic.pojo.vo.hebeinorth.AssessVo;
|
||||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||||
import com.njcn.poi.excel.ExcelUtil;
|
import com.njcn.poi.excel.ExcelUtil;
|
||||||
@@ -66,6 +67,7 @@ import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
|||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.pojo.dto.DeptDTO;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
|
|
||||||
@@ -833,6 +835,37 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GridDiagramVO getNewPollutionAlarmData(StatSubstationBizBaseParam param) {
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
deptGetLineParam.setDeptId(param.getId());
|
||||||
|
deptGetLineParam.setIsUpToGrid(param.getIsUpToGrid());
|
||||||
|
List<DeptGetSubStationDTO.Info> detSub = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData();
|
||||||
|
//获取全部变电站信息
|
||||||
|
List<SubGetBase> collect = detSub.stream().flatMap(x -> x.getStationIds().stream()).collect(Collectors.toList());
|
||||||
|
GridDiagramVO vo = new GridDiagramVO();
|
||||||
|
List<Double> info = new ArrayList<>();
|
||||||
|
List<Double> gwInfo = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
// if (CollUtil.isNotEmpty(subAll)) {
|
||||||
|
// List<RStatPollutionSubstationM> substationMlist = pollutionSubstationMMapper.selectList(new LambdaQueryWrapper<RStatPollutionSubstationM>()
|
||||||
|
// .select(RStatPollutionSubstationM::getSubstationId, RStatPollutionSubstationM::getValue)
|
||||||
|
// .in(CollUtil.isNotEmpty(subAll), RStatPollutionSubstationM::getSubstationId, subAll)
|
||||||
|
// .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationM::getPollutionType, param.getIds())
|
||||||
|
// .ge(StrUtil.isNotBlank(param.getStartTime()), RStatPollutionSubstationM::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||||
|
// .le(StrUtil.isNotBlank(param.getEndTime()), RStatPollutionSubstationM::getDataDate, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||||
|
// );
|
||||||
|
// info.addAll(substationMlist.stream().map(RStatPollutionSubstationM::getValue).collect(Collectors.toList()));
|
||||||
|
// gwInfo.addAll(substationMlist.stream()
|
||||||
|
// .filter(x -> subGw.contains(x.getSubstationId()))
|
||||||
|
// .map(RStatPollutionSubstationM::getValue).collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
vo.setInfo(info);
|
||||||
|
vo.setGwInfo(gwInfo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<PollutionGridDiagramDTO> getPollutionAlarmPageData(StatSubstationBizBaseParam param) {
|
public Page<PollutionGridDiagramDTO> getPollutionAlarmPageData(StatSubstationBizBaseParam param) {
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
@@ -889,7 +922,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<RMpPollutionDPO> rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList,
|
List<RMpPollutionDPO> rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList,
|
||||||
Arrays.asList("b33a2946cb2d4f2641f485cf7720ecc7"),
|
// Arrays.asList("b33a2946cb2d4f2641f485cf7720ecc7"),
|
||||||
|
param.getIds(),
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
|
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString());
|
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString());
|
||||||
List<String> dept;
|
List<String> dept;
|
||||||
@@ -1154,6 +1188,49 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AreaPollution> getAreaPollution(StatSubstationBizBaseParam param) {
|
||||||
|
List<AreaPollution> info = new ArrayList<>();
|
||||||
|
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
|
||||||
|
deviceInfoParam.setLineRunFlag(0);
|
||||||
|
deviceInfoParam.setDeptIndex(param.getId());
|
||||||
|
deviceInfoParam.setStatisticalType(new SimpleDTO());
|
||||||
|
deviceInfoParam.setMonitorFlag(param.getIsUpToGrid());
|
||||||
|
List<GeneralDeviceDTO> deptData = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
|
||||||
|
List<String> lineIdList = deptData.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
|
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<>();
|
||||||
|
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());
|
||||||
|
PowerFlagPollution pollution1;
|
||||||
|
for (PollutionLineInfoDTO lineDetail : lineDetails) {
|
||||||
|
pollution1 = new PowerFlagPollution();
|
||||||
|
pollution1.setLineName(lineDetail.getLineName());
|
||||||
|
pollution1.setDevName(lineDetail.getDevName());
|
||||||
|
pollution1.setManufacturer(lineDetail.getManufacturer());
|
||||||
|
pollution1.setDevType(lineDetail.getDevType());
|
||||||
|
pollution1.setLoginTime(lineDetail.getLoginTime());
|
||||||
|
pollution1.setInterval(lineDetail.getTimeInterval());
|
||||||
|
pollution1.setPowerFlag(lineDetail.getPowerFlag());
|
||||||
|
pollution1.setVHarmonicValue(pollutionMap.containsKey(lineDetail.getLineId())?NumberUtil.round(pollutionMap.get(lineDetail.getLineId()),2).doubleValue():0.0);
|
||||||
|
linePollutionList.add(pollution1);
|
||||||
|
}
|
||||||
|
pollution.setPowerFlagPollutionList(linePollutionList.stream().sorted(Comparator.comparing(PowerFlagPollution::getVHarmonicValue).reversed()).collect(Collectors.toList()));
|
||||||
|
pollution.setScore(NumberUtil.round(linePollutionList.stream().mapToDouble(PowerFlagPollution::getVHarmonicValue).sum(),2).doubleValue());
|
||||||
|
info.add(pollution);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<String> addList(List<RMpPollutionDPO> pollLinelist, List<SubGetBase> notNum) {
|
private List<String> addList(List<RMpPollutionDPO> pollLinelist, List<SubGetBase> notNum) {
|
||||||
List<String> info = new ArrayList<>();
|
List<String> info = new ArrayList<>();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,6 +31,11 @@ public class RStatLimitTargetDServiceImpl extends ServiceImpl<RStatLimitTargetDM
|
|||||||
return this.baseMapper.getLinesTarget(param.getIds(),param.getStartTime(),param.getEndTime());
|
return this.baseMapper.getLinesTarget(param.getIds(),param.getStartTime(),param.getEndTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getLinesHarmTarget(StatSubstationBizBaseParam param) {
|
||||||
|
return this.baseMapper.getLinesHarmTarget(param.getIds(), param.getStartTime(), param.getEndTime());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RStatLimitTargetCountVO getGridDiagramTargetData(StatisticsBizBaseParam param) {
|
public RStatLimitTargetCountVO getGridDiagramTargetData(StatisticsBizBaseParam param) {
|
||||||
List<RStatLimitTargetCountVO> sumTargetDetails = this.baseMapper.getSumTargetCountDayes(Arrays.asList(param.getId()),
|
List<RStatLimitTargetCountVO> sumTargetDetails = this.baseMapper.getSumTargetCountDayes(Arrays.asList(param.getId()),
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
private final DistributionMonitorClient distributionMonitorClient;
|
private final DistributionMonitorClient distributionMonitorClient;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds) {
|
public List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds) {
|
||||||
return rStatLimitTargetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>().in(RStatLimitTargetDPO::getLineId, monitorIds)
|
return rStatLimitTargetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>().in(RStatLimitTargetDPO::getLineId, monitorIds)
|
||||||
@@ -272,17 +271,16 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
baseParam.setIds(online);
|
baseParam.setIds(online);
|
||||||
baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString());
|
baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString());
|
||||||
baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).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,
|
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(online,
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
|
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData();
|
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData();
|
||||||
List<String> integrityDS0 = integrityDS.stream().filter(x -> 0.9 <= x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList());
|
//在线率大于90的点
|
||||||
|
List<String> integrityDS90 = integrityDS.stream().filter(x -> 0.9 <= x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList());
|
||||||
|
|
||||||
//合格-告警
|
//合格-告警
|
||||||
GridDiagramVO.RunData alarmData = new GridDiagramVO.RunData();
|
GridDiagramVO.RunData alarmData = new GridDiagramVO.RunData();
|
||||||
List<String> lineAlarm = new ArrayList<>();
|
List<String> alarm = integrityDS90.stream().filter(d -> !linesTarget.contains(d)).distinct().collect(Collectors.toList());
|
||||||
lineAlarm.addAll(integrityDS0.stream().filter(d -> !linesTarget.contains(d)).distinct().collect(Collectors.toList()));
|
|
||||||
List<String> alarm = lineAlarm.stream().distinct().collect(Collectors.toList());
|
|
||||||
List<String> us = line.stream().filter(x -> !alarm.contains(x)).distinct().collect(Collectors.toList());
|
List<String> us = line.stream().filter(x -> !alarm.contains(x)).distinct().collect(Collectors.toList());
|
||||||
alarmData.setLineNumOne(alarm.size());
|
alarmData.setLineNumOne(alarm.size());
|
||||||
alarmData.setLineListOne(alarm);
|
alarmData.setLineListOne(alarm);
|
||||||
@@ -301,7 +299,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
|
|
||||||
//数据完整性≥90% - <90%
|
//数据完整性≥90% - <90%
|
||||||
GridDiagramVO.RunData integrityData = new GridDiagramVO.RunData();
|
GridDiagramVO.RunData integrityData = new GridDiagramVO.RunData();
|
||||||
List<String> integrityDS90 = integrityDS.stream().filter(x -> 0.9 <= x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList());
|
|
||||||
List<String> integrity = online.stream().filter(x -> !integrityDS90.contains(x)).distinct().collect(Collectors.toList());
|
List<String> integrity = online.stream().filter(x -> !integrityDS90.contains(x)).distinct().collect(Collectors.toList());
|
||||||
integrityData.setLineNumOne(integrityDS90.size());
|
integrityData.setLineNumOne(integrityDS90.size());
|
||||||
integrityData.setLineListOne(integrityDS90);
|
integrityData.setLineListOne(integrityDS90);
|
||||||
@@ -479,7 +476,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
detailList.add(limitDetail);
|
detailList.add(limitDetail);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 跳到下一个月的第一天(注意:这里简化了处理,没有实际遍历这个月的每一天)
|
// 跳到下一个月的第一天(注意:这里简化了处理,没有实际遍历这个月的每一天)
|
||||||
currentDate = currentDate.plusMonths(1).withDayOfMonth(1);
|
currentDate = currentDate.plusMonths(1).withDayOfMonth(1);
|
||||||
|
|
||||||
@@ -494,9 +490,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user