From c1a3c745f7fe06e3dea0bd0d6d5d38b144f7ffd5 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Mon, 29 Apr 2024 16:29:25 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=86=80=E5=8C=97=E7=94=B5=E7=BD=91=E4=B8=80?= =?UTF-8?q?=E5=BC=A0=E5=9B=BE,=E5=8F=98=E7=94=B5=E7=AB=99=EF=BC=8C?= =?UTF-8?q?=E7=BB=88=E7=AB=AF=EF=BC=8C=E6=9A=82=E6=80=81=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=87=8D=E6=96=B0=E8=B0=83=E6=95=B4=202.?= =?UTF-8?q?=E6=8A=80=E6=9C=AF=E7=9B=91=E7=9D=A3=E7=BB=9F=E8=AE=A1=EF=BC=8C?= =?UTF-8?q?=E7=94=B5=E5=AE=B9=E5=99=A8=E5=92=8C=E8=AF=84=E4=BC=B0=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E7=BB=9F=E8=AE=A1=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pq/pojo/dto/PollutionGridDiagramDTO.java | 8 +-- .../pq/pojo/param/GridDiagramParam.java | 7 ++- .../njcn/device/pq/pojo/vo/GridDiagramVO.java | 3 + .../pq/controller/GridDiagramController.java | 6 -- .../device/pq/service/GridDiagramService.java | 1 - .../service/impl/GridDiagramServiceImpl.java | 10 ++- .../com/njcn/event/pojo/vo/EventDetailVO.java | 24 ++++++++ .../GridDiagramEventController.java | 11 ++++ .../Impl/RmpEventDetailServiceImpl.java | 61 +++++++++++++++++-- .../majornetwork/RmpEventDetailService.java | 3 + .../controller/GridDiagramHarmController.java | 9 +++ .../service/PollutionSubstationService.java | 5 ++ .../impl/PollutionSubstationServiceImpl.java | 56 +++++++++++++++++ ...ploadPointStatisticalDataDServiceImpl.java | 9 ++- .../service/impl/SupvReportMServiceImpl.java | 32 +++++++--- 15 files changed, 217 insertions(+), 28 deletions(-) diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionGridDiagramDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionGridDiagramDTO.java index 0140821b7..2923b53ef 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionGridDiagramDTO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionGridDiagramDTO.java @@ -4,11 +4,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** - * 类的介绍: - * - * @author xuyang - * @version 1.0.0 - * @createTime 2022/4/25 10:40 + * @Description: + * @Author: wr + * @Date: 2024/4/29 11:00 */ @Data public class PollutionGridDiagramDTO extends PollutionSubstationDTO{ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GridDiagramParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GridDiagramParam.java index 545b8f1a7..7d5f374b8 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GridDiagramParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/GridDiagramParam.java @@ -4,6 +4,8 @@ import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @author wr * @description 冀北电网一张图入参 @@ -19,6 +21,9 @@ public class GridDiagramParam extends BaseParam { @ApiModelProperty(name="type",value="类型(1年 2季度 3月份 4周 5日)") private Integer type; - @ApiModelProperty(name="deviceInfoParam",value="") + @ApiModelProperty(value = "ids集合", required = true) + private List ids; + + @ApiModelProperty(name="deviceInfoParam") private DeviceInfoParam deviceInfoParam; } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java index 00b49506e..617704146 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java @@ -78,6 +78,9 @@ public class GridDiagramVO { @ApiModelProperty(name = "devCount", value = "终端数量") private Long devCount; + @ApiModelProperty(name = "devOnCount", value = "终端数量") + private Long devOnCount; + @ApiModelProperty(name = "onlineEvaluate", value = "终端在线率评价") private Double onlineEvaluate; diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GridDiagramController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GridDiagramController.java index 54b83561b..d00ff2c5c 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GridDiagramController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GridDiagramController.java @@ -3,19 +3,13 @@ package com.njcn.device.pq.controller; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; -import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; -import com.njcn.device.pq.pojo.param.AlarmStrategyParam; -import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.GridDiagramParam; -import com.njcn.device.pq.pojo.vo.AlarmStrategyVO; import com.njcn.device.pq.pojo.vo.GridDiagramVO; -import com.njcn.device.pq.service.AlarmStrategyService; import com.njcn.device.pq.service.GridDiagramService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/GridDiagramService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/GridDiagramService.java index 26dc2072d..c2c36698f 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/GridDiagramService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/GridDiagramService.java @@ -1,7 +1,6 @@ package com.njcn.device.pq.service; -import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.GridDiagramParam; import com.njcn.device.pq.pojo.vo.GridDiagramVO; diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java index abcb5105c..dd22b1672 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java @@ -330,13 +330,21 @@ public class GridDiagramServiceImpl implements GridDiagramService { .ge(StrUtil.isNotBlank(param.getSearchBeginTime()), "time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))) .le(StrUtil.isNotBlank(param.getSearchEndTime()), "time_id", DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))) .groupBy("dev_index")); + List devIds = generalDeviceDTOList.stream().flatMap(x -> x.getDeviceIndexes().stream()).distinct().collect(Collectors.toList()); + List list = deviceService.list(new LambdaQueryWrapper() + .select(Device::getId, Device::getRunFlag, Device::getComFlag) + .in(CollUtil.isNotEmpty(devIds), Device::getId, devIds) + ); List info = new ArrayList<>(); GridDiagramVO.DeviceData data; for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { data = new GridDiagramVO.DeviceData(); data.setOrgId(generalDeviceDTO.getIndex()); data.setOrgName(generalDeviceDTO.getName()); - data.setDevCount(generalDeviceDTO.getDeviceIndexes().stream().distinct().count()); + List collect = list.stream().filter(x -> generalDeviceDTO.getDeviceIndexes().contains(x.getId())).collect(Collectors.toList()); + List runDevice = collect.stream().filter(x -> 0 == x.getRunFlag()).collect(Collectors.toList()); + data.setDevCount(Long.valueOf(runDevice.size())); + data.setDevOnCount(runDevice.stream().filter(x -> 1 == x.getComFlag()).count()); List onlineRateDS = onlinerateDS.stream().filter(x -> generalDeviceDTO.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(onlineRateDS)) { double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateD::getOnlineMin).sum(); diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDetailVO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDetailVO.java index 10bc57242..926495b7f 100644 --- a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDetailVO.java +++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDetailVO.java @@ -1,5 +1,6 @@ package com.njcn.event.pojo.vo; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -12,8 +13,31 @@ import java.io.Serializable; @Data public class EventDetailVO implements Serializable { + @ApiModelProperty(name = "id",value = "id") private String id; + @ApiModelProperty(name = "time",value = "特征幅值") private String time; + @ApiModelProperty(name = "name",value = "名称") + private String name; + + @ApiModelProperty(name = "swellTimes",value = "电压暂升发生次数") + private Long swellTimes; + + @ApiModelProperty(name = "sagTimes",value = "电压暂降发生次数") + private Long sagTimes; + + @ApiModelProperty(name = "interruptTimes",value = "短时中断发生次数") + private Long interruptTimes; + + @ApiModelProperty(name = "rate90",value = "暂态严重度占比小于90%") + private Double rate90; + + @ApiModelProperty(name = "rate50",value = "暂态严重度占比小于50%") + private Double rate50; + + @ApiModelProperty(name = "rate20",value = "暂态严重度占比小于20%") + private Double rate20; + } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/GridDiagramEventController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/GridDiagramEventController.java index afc197e01..bb5c5c076 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/GridDiagramEventController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/GridDiagramEventController.java @@ -5,7 +5,9 @@ import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pq.pojo.param.GridDiagramParam; import com.njcn.device.pq.pojo.vo.GridDiagramVO; +import com.njcn.event.pojo.vo.EventDetailVO; import com.njcn.event.service.majornetwork.RmpEventDetailService; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.web.controller.BaseController; @@ -19,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; @Validated @@ -40,4 +43,12 @@ public class GridDiagramEventController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventLevelEvaluation, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getEventDetailByList") + @ApiOperation("暂态详细列表") + public HttpResult> getEventDetailByList(@RequestBody GridDiagramParam param) { + String methodDescribe = getMethodDescribe("getEventDetailByList"); + List eventDetailByList = rmpEventDetailService.getEventDetailByList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDetailByList, methodDescribe); + } } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java index bfd1ae3f8..fc3dda697 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -26,33 +27,37 @@ import com.njcn.device.pms.pojo.param.PmsMonitorParam; import com.njcn.device.pms.pojo.po.Monitor; 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.vo.AreaLineInfoVO; import com.njcn.device.pq.pojo.vo.GridDiagramVO; +import com.njcn.event.enums.EventResponseEnum; import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper; import com.njcn.event.pojo.param.UniversalFrontEndParam; import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.event.pojo.vo.*; +import com.njcn.event.service.majornetwork.EventDetailService; import com.njcn.event.service.majornetwork.RmpEventDetailService; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; -import com.njcn.event.enums.EventResponseEnum; import com.njcn.system.pojo.po.DictData; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.web.factory.PageFactory; import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.utils.RequestUtil; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * 暂态事件明细 @@ -327,6 +332,52 @@ public class RmpEventDetailServiceImpl extends ServiceImpl getEventDetailByList(GridDiagramParam param) { + List info=new ArrayList<>(); + //获取污区图统计类型 + DictData dip = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData(); + DictData rise = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_RISE.getCode()).getData(); + DictData interruptions = dicDataFeignClient.getDicDataByCode(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getData(); + + + List data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param.getDeviceInfoParam()).getData(); + List lineIds = data.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList()); + List list = this.list(new LambdaQueryWrapper() + .select(RmpEventDetailPO::getEventId, RmpEventDetailPO::getEventType, RmpEventDetailPO::getSeverity) + .in(CollUtil.isNotEmpty(lineIds), RmpEventDetailPO::getMeasurementPointId, lineIds) + .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()))) + ); + EventDetailVO vo; + for (GeneralDeviceDTO datum : data) { + vo=new EventDetailVO(); + vo.setId(datum.getIndex()); + vo.setName(datum.getName()); + List detailPOList = list.stream().filter(x -> datum.getLineIndexes().contains(x.getMeasurementPointId())).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(detailPOList)){ + vo.setSwellTimes(detailPOList.stream().filter(x->x.getEventType().equals(rise.getId())).count()); + vo.setSagTimes(detailPOList.stream().filter(x->x.getEventType().equals(dip.getId())).count()); + vo.setInterruptTimes(detailPOList.stream().filter(x->x.getEventType().equals(interruptions.getId())).count()); + 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 v20 = detailPOList.stream().filter(x -> x.getSeverity()*100<=20).count() * 100.0 / detailPOList.size(); + vo.setRate90(NumberUtil.round(v90,2).doubleValue()); + vo.setRate50(NumberUtil.round(v50,2).doubleValue()); + vo.setRate20(NumberUtil.round(v20,2).doubleValue()); + }else { + vo.setSwellTimes(0L); + vo.setSagTimes(0L); + vo.setInterruptTimes(0L); + vo.setRate90(0.0D); + vo.setRate50(0.0D); + vo.setRate20(0.0D); + } + info.add(vo); + } + return info; + } + private Double setData(GridDiagramVO gridDiagramVO, List gwLineAllIds, List list) { List asGwDouble = list.stream() diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java index 0f40c76e7..bfb9916f1 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/RmpEventDetailService.java @@ -2,10 +2,12 @@ package com.njcn.event.service.majornetwork; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.device.pq.pojo.param.GridDiagramParam; import com.njcn.device.pq.pojo.vo.GridDiagramVO; import com.njcn.event.pojo.param.UniversalFrontEndParam; import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.event.pojo.vo.AdvanceEventDetailVO; +import com.njcn.event.pojo.vo.EventDetailVO; import com.njcn.event.pojo.vo.RmpEventDetailVO; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.system.pojo.po.DictData; @@ -59,4 +61,5 @@ public interface RmpEventDetailService extends IService { GridDiagramVO getEventLevelEvaluation(StatSubstationBizBaseParam param); + List getEventDetailByList(GridDiagramParam param); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/GridDiagramHarmController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/GridDiagramHarmController.java index b99139d0a..cf5273741 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/GridDiagramHarmController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/GridDiagramHarmController.java @@ -8,6 +8,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.pq.pojo.dto.PollutionGridDiagramDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; +import com.njcn.device.pq.pojo.param.GridDiagramParam; import com.njcn.device.pq.pojo.vo.GridDiagramVO; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.harmonic.service.IRMpTargetWarnDService; @@ -68,6 +69,14 @@ public class GridDiagramHarmController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, subLineGiveAnAlarm, methodDescribe); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPollutionAlarmList") + @ApiOperation("变电站新详细列表") + public HttpResult>> getPollutionAlarmList(@RequestBody GridDiagramParam param) { + String methodDescribe = getMethodDescribe("getPollutionAlarmList"); + List> subLineGiveAnAlarm = pollutionSubstationService.getPollutionAlarmList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, subLineGiveAnAlarm, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getGridDiagramLineData") @ApiOperation("监测点分布统计") public HttpResult> getGridDiagramLineData(@RequestBody DeviceInfoParam.BusinessParam param) { diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/PollutionSubstationService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/PollutionSubstationService.java index ea91e3174..35711f077 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/PollutionSubstationService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/PollutionSubstationService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.device.pq.pojo.dto.PollutionGridDiagramDTO; import com.njcn.device.pq.pojo.dto.PollutionLineDTO; import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO; +import com.njcn.device.pq.pojo.param.GridDiagramParam; import com.njcn.device.pq.pojo.vo.GridDiagramVO; import com.njcn.harmonic.pojo.param.HarmonicPublicParam; import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam; @@ -80,4 +81,8 @@ public interface PollutionSubstationService extends IService getPollutionAlarmPageData(StatSubstationBizBaseParam param); + + + List> getPollutionAlarmList(GridDiagramParam param); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java index 58370ce57..3e0692978 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java @@ -30,6 +30,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.api.SubstationFeignClient; import com.njcn.device.pq.pojo.dto.*; +import com.njcn.device.pq.pojo.param.GridDiagramParam; import com.njcn.device.pq.pojo.vo.GridDiagramVO; import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.*; @@ -104,6 +105,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl> getPollutionAlarmList(GridDiagramParam param) { + List> info = new ArrayList<>(); + List data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param.getDeviceInfoParam()).getData(); + List subIds = data.stream().flatMap(x -> x.getSubIndexes().stream()).collect(Collectors.toList()); + List substationMlist = pollutionSubstationMMapper.selectList(new LambdaQueryWrapper() + .select(RStatPollutionSubstationM::getSubstationId,RStatPollutionSubstationM::getValue) + .in(CollUtil.isNotEmpty(subIds), RStatPollutionSubstationM::getSubstationId, subIds) + .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationM::getPollutionType, param.getIds()) + .ge(StrUtil.isNotBlank(param.getSearchBeginTime()), RStatPollutionSubstationM::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))) + .le(StrUtil.isNotBlank(param.getSearchEndTime()), RStatPollutionSubstationM::getDataDate, DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))) + ); + List dept; + for (GeneralDeviceDTO datum : data) { + List collect = substationMlist.stream().filter(x -> datum.getSubIndexes().contains(x.getSubstationId())).collect(Collectors.toList()); + dept=new ArrayList<>(); + dept.add(datum.getName()); + dept.add(String.valueOf(datum.getSubIndexes().size())); + dept.addAll(addList(collect)); + info.add(dept); + } + return info; + } + + private List addList(List substationMlist) { + List info=new ArrayList<>(); + Integer num1 = 0; + Integer num2 = 0; + Integer num3 = 0; + Integer num4 = 0; + Integer num5 = 0; + for (RStatPollutionSubstationM x : substationMlist) { + Double value = x.getValue(); + //无污染 轻微污染 轻度污染 中度污染 重度污染 + if (0 <= value && value < 1) { + num1++; + } else if (1 <= value && value < 1.2) { + num2++; + } else if (1.2 <= value && value < 1.6) { + num3++; + } else if (1.6 <= value && value < 2) { + num4++; + } else if (2 <= value) { + num5++; + } + } + info.add(String.valueOf(num1)); + info.add(String.valueOf(num2)); + info.add(String.valueOf(num3)); + info.add(String.valueOf(num4)); + info.add(String.valueOf(num5)); + return info; + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java index 48a5ff7aa..7dc180cce 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java @@ -142,8 +142,13 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl deptAll = calculatedParam.getIdList(); Map pmsRunStatisticMap = pmsRunStatisticsList.stream().collect(Collectors.toMap(PmsRunStatistic::getDeptId,Function.identity())); - List monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA)); - List lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData(); + List lineDTOList; + if(pmsRunStatisticMap.containsKey(dept.getCode())){ + List monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA)); + lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData(); + } else { + lineDTOList = new ArrayList<>(); + } deptAll.forEach(item -> { diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvReportMServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvReportMServiceImpl.java index b8dc27b4f..7c79523ad 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvReportMServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvReportMServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.process.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.util.StrUtil; @@ -163,6 +164,7 @@ public class SupvReportMServiceImpl extends MppServiceImpl processPublicYearDTOS = this.baseMapper.statisticPlanReportYear(firstYearDay, endYearDay, mapStatistic.get(DicDataEnum.capacitor_bank.getCode()).getId(), null, null); List processPublicDTOCapacitorListM = this.baseMapper.statisticPlanReport(firstYearDay,endTime,mapStatistic.get(DicDataEnum.capacitor_bank.getCode()).getId(),null,null); List processPublicDTOCapacitorAll = this.baseMapper.statisticPlanReport(firstYearDay,endTime,mapStatistic.get(DicDataEnum.capacitor_bank.getCode()).getId(),null,null); //电容器组问题数量 @@ -173,6 +175,7 @@ public class SupvReportMServiceImpl extends MppServiceImpl processPublicDTOCapacitorYesAll = this.baseMapper.statisticQueReportRectify(firstYearDay,endTime,mapStatistic.get(DicDataEnum.capacitor_bank.getCode()).getId(),"02",null); //评估报告月前统计 + List processPublicYearDTOAppraisalS = this.baseMapper.statisticPlanReportYear(firstYearDay, endYearDay, mapStatistic.get(DicDataEnum.report_supervision.getCode()).getId(), null, null); List processPublicDTOAppraisalListM = this.baseMapper.statisticPlanReport(firstYearDay,endTime,mapStatistic.get(DicDataEnum.report_supervision.getCode()).getId(),null,null); List processPublicDTOAppraisalAll = this.baseMapper.statisticPlanReport(firstYearDay,endTime,mapStatistic.get(DicDataEnum.report_supervision.getCode()).getId(),null,null); //评估报告问题数量 @@ -263,7 +266,7 @@ public class SupvReportMServiceImpl extends MppServiceImpl deptIds = deptFeignClient.getDepSonSelfCodetByCode(record.getStatisticsDept()).getData(); //获取预告警单信息 - List list = supvAlarmService.list(new LambdaQueryWrapper().in(SupvAlarm::getCreaterOrgId, deptIds)); + List list = supvAlarmService.list(new LambdaQueryWrapper().in(SupvAlarm::getCreaterOrgId, deptIds) + .between(StrUtil.isNotBlank(baseParam.getSearchBeginTime()),SupvAlarm::getCreaterTime, + DateUtil.beginOfYear(DateUtil.parse(baseParam.getSearchBeginTime())), + DateUtil.endOfYear(DateUtil.parse(baseParam.getSearchEndTime()))) + ); int count =0; if(CollUtil.isNotEmpty(list)){ List alarmIds = list.stream().map(SupvAlarm::getAlarmId).distinct().collect(Collectors.toList());