From 8a42cf07d665e1366402cf19b6965383e213612e Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Mon, 24 Apr 2023 20:31:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=90=E6=B3=A2=E7=9B=91=E6=B5=8B-=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E5=88=86=E6=9E=90=EF=BC=9A=E5=91=8A=E8=AD=A6=E5=8F=98?= =?UTF-8?q?=E7=94=B5=E7=AB=99=E7=BB=9F=E8=AE=A1=20=E5=92=8C=20=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=A8=B3=E6=80=81=E6=8C=87=E6=A0=87=E8=B6=85=E6=A0=87?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Impl/EventDetailServiceImpl.java | 61 +-- .../mapper/RStatLimitRateDMapper.java | 13 + .../mapper/RStatLimitTargetMapper.java | 11 + .../mapper/mapping/RStatLimitRateDMapper.xml | 95 +++++ .../mapper/mapping/RStatLimitTargetMapper.xml | 95 +++++ .../service/impl/AnalyzeServiceImpl.java | 393 ++++++++---------- .../service/impl/HarmonicServiceImpl.java | 50 ++- .../com/njcn/system/enums/DicDataEnum.java | 4 +- 8 files changed, 482 insertions(+), 240 deletions(-) diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java index 7f49b53be..652ba24f0 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java @@ -80,34 +80,41 @@ public class EventDetailServiceImpl extends ServiceImpl getEventDetail(List lineIndexes, String startTime, String endTime, List waveType) { - //组装sql语句 - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(startTime))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(endTime))).append("' and ("); - for (int i = 0; i < lineIndexes.size(); i++) { - if (lineIndexes.size() - i != 1) { - stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' or "); - } else { - stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' "); - } - } - stringBuilder.append(") and ("); - for (int i = 0; i < waveType.size(); i++) { - if (waveType.size() - i != 1) { - stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' or "); - } else { - stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' "); - } - } - stringBuilder.append(") order by time desc tz('Asia/Shanghai"); - //sql语句 - String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder; + List info = this.list(new LambdaQueryWrapper() + .ne(RmpEventDetailPO::getMeasurementPointId, lineIndexes) + .ge(StrUtil.isNotBlank(startTime), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(startTime))) + .le(StrUtil.isNotBlank(endTime), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(endTime))) + ); + return BeanUtil.copyToList(info, EventDetail.class); - //结果集 - QueryResult result = influxDbUtils.query(sql); - //结果集映射到对象中 - InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper(); - List eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class); - return eventDetailList; +// //组装sql语句 +// StringBuilder stringBuilder = new StringBuilder(); +// stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(startTime))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(endTime))).append("' and ("); +// for (int i = 0; i < lineIndexes.size(); i++) { +// if (lineIndexes.size() - i != 1) { +// stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' or "); +// } else { +// stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' "); +// } +// } +// stringBuilder.append(") and ("); +// for (int i = 0; i < waveType.size(); i++) { +// if (waveType.size() - i != 1) { +// stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' or "); +// } else { +// stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' "); +// } +// } +// stringBuilder.append(") order by time desc tz('Asia/Shanghai"); +// //sql语句 +// String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder; +// +// //结果集 +// QueryResult result = influxDbUtils.query(sql); +// //结果集映射到对象中 +// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper(); +// List eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class); +// return eventDetailList; } @Override diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java index 11ca7157c..034265773 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java @@ -2,6 +2,7 @@ package com.njcn.harmonic.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.harmonic.pojo.po.LimitRate; import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO; import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO; import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO; @@ -40,4 +41,16 @@ public interface RStatLimitRateDMapper extends BaseMapper { @Param("ids") List lineIndexes, @Param("statTime") String searchBeginTime, @Param("endTime") String searchEndTime); + + + /** + * 数据查询 + * @param list + * @param startTime + * @param endTime + * @return + */ + List getSumPassRateList( @Param("ids") List list, + @Param("statTime") String startTime, + @Param("endTime") String endTime); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetMapper.java index 869b7a00e..92369941d 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetMapper.java @@ -15,4 +15,15 @@ public interface RStatLimitTargetMapper extends BaseMapper Page getSumLimitTargetPage(Pagep, @Param("ids") List lineIndexes, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); + + /** + * + * @param list + * @param startTime + * @param endTime + * @return + */ + List getSumTargetList(@Param("ids") List list, + @Param("statTime") String startTime, + @Param("endTime") String endTime); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml index a338270ec..b9b0c8b94 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml @@ -210,4 +210,99 @@ GROUP BY `time` + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetMapper.xml index 71a21aa87..9bd058c96 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetMapper.xml @@ -68,4 +68,99 @@ AND time_id BETWEEN #{startTime} AND #{endTime} GROUP BY my_index + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java index e4156ac12..50c94c0c4 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.harmonic.service.impl; 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.io.FileUtil; @@ -16,7 +17,7 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.dto.OverLimitLineDTO; import com.njcn.device.pq.pojo.dto.PollutionParamDTO; import com.njcn.device.pq.pojo.dto.WarningSubstationDTO; -import com.njcn.device.pq.pojo.vo.AreaLineInfoVO; +import com.njcn.event.api.EventDetailFeignClient; import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.RStatLimitRateDMapper; import com.njcn.harmonic.mapper.RStatLimitTargetMapper; @@ -27,7 +28,6 @@ import com.njcn.harmonic.pojo.excel.monitor.OverLimitDays; import com.njcn.harmonic.pojo.excel.monitor.UTimes; import com.njcn.harmonic.pojo.excel.substation.SubstationExcel; import com.njcn.harmonic.pojo.po.EventDetail; -import com.njcn.harmonic.pojo.po.LimitRate; import com.njcn.harmonic.pojo.po.LimitTarget; import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO; import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO; @@ -38,6 +38,10 @@ import com.njcn.harmonic.pojo.vo.WarningSubstationVO; import com.njcn.harmonic.service.IAnalyzeService; import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.poi.excel.ExcelUtil; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; import com.njcn.web.utils.RequestUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -78,31 +82,33 @@ public class AnalyzeServiceImpl implements IAnalyzeService { private final RStatLimitRateDMapper rateDMapper; private final RStatLimitTargetMapper targetMapper; + private final EventDetailFeignClient eventDetailFeignClient; + private final DicDataFeignClient dicDataFeignClient; @Override - public Page getAreaData(OverAreaVO param) { + public Page getAreaData(OverAreaVO param) { Page page = new Page<>(); page.setSize(param.getPageSize()); page.setCurrent(param.getPageNum()); List list = new ArrayList<>(); param.setServerName(generalInfo.getMicroServiceName()); List deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); - if (!CollectionUtils.isEmpty(deptList)){ + if (!CollectionUtils.isEmpty(deptList)) { page.setTotal(deptList.size()); - int pages = (int)Math.ceil(deptList.size()*1.0/param.getPageSize()); + int pages = (int) Math.ceil(deptList.size() * 1.0 / param.getPageSize()); page.setPages(pages); - List> pageList = Lists.partition(deptList,param.getPageSize()); - List temList = pageList.get(param.getPageNum()-1); - temList.forEach(item->{ + List> pageList = Lists.partition(deptList, param.getPageSize()); + List temList = pageList.get(param.getPageNum() - 1); + temList.forEach(item -> { OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO(); - if (!CollectionUtils.isEmpty(item.getLineIndexes())){ - List limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(),param.getSearchBeginTime(),param.getSearchEndTime()); - overAreaLimitVO = handleAreaData(limitTargetList,item.getLineIndexes(),param); + if (!CollectionUtils.isEmpty(item.getLineIndexes())) { + List limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime()); + overAreaLimitVO = handleAreaData(limitTargetList, item.getLineIndexes(), param); } overAreaLimitVO.setName(item.getName()); list.add(overAreaLimitVO); }); - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { List recordList = new ArrayList<>(); //默认 根据在线监测点个数 倒叙排序 recordList = list.stream().sorted(Comparator.comparing(OverAreaLimitVO::getOnlineMonitorNumber).reversed().thenComparing(OverAreaLimitVO::getName)).collect(Collectors.toList()); @@ -116,157 +122,170 @@ public class AnalyzeServiceImpl implements IAnalyzeService { @Override @SuppressWarnings("unchecked") public Page getWarningSubstation(OverAreaVO param) { + //获取暂态统计指标 + List eventStatis = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); + Page page = new Page<>(); page.setSize(param.getPageSize()); page.setCurrent(param.getPageNum()); - List line = new ArrayList<>(),subInfo = new ArrayList<>(); + List line = new ArrayList<>(), subInfo = new ArrayList<>(); List substationDTOList = new ArrayList<>(); - Map> map = new HashMap<>(); - Map> map2 = new HashMap<>(); + Map> map = new HashMap<>(); + Map> map2 = new HashMap<>(); param.setServerName(generalInfo.getMicroServiceName()); List list = new ArrayList<>(); List subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData(); - if (!CollectionUtils.isEmpty(subList)){ + if (!CollectionUtils.isEmpty(subList)) { page.setTotal(subList.size()); - int pages = (int)Math.ceil(subList.size()*1.0/param.getPageSize()); + int pages = (int) Math.ceil(subList.size() * 1.0 / param.getPageSize()); page.setPages(pages); - List> pageList = Lists.partition(subList,param.getPageSize()); - List temList = pageList.get(param.getPageNum()-1); - temList.forEach(item->{ + List> pageList = Lists.partition(subList, param.getPageSize()); + List temList = pageList.get(param.getPageNum() - 1); + temList.forEach(item -> { line.addAll(item.getLineIndexes()); subInfo.add(item.getIndex()); }); - if (!CollectionUtils.isEmpty(line)){ - substationDTOList = lineFeignClient.getWarningSub(subInfo).getData(); - List limitRateList = (List)getAllData(line,param.getSearchBeginTime(),param.getSearchEndTime(),Param.LIMIT_RATE); - if (!CollectionUtils.isEmpty(limitRateList)){ - map = limitRateList.stream().collect(Collectors.groupingBy(LimitRate::getLineId)); + if (!CollectionUtils.isEmpty(line)) { + substationDTOList = lineFeignClient.getWarningSub(subInfo).getData(); + List limitRateList = (List) getAllData(line, param.getSearchBeginTime(), param.getSearchEndTime(), Param.LIMIT_RATE); + if (!CollectionUtils.isEmpty(limitRateList)) { + map = limitRateList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); } - List eventDetailList = getEventDetail(line,param.getSearchBeginTime(),param.getSearchEndTime()); - if (!CollectionUtils.isEmpty(eventDetailList)){ - map2 = eventDetailList.stream().collect(Collectors.groupingBy(EventDetail::getLineId)); + List eventDetailList = getEventDetail(line, param.getSearchBeginTime(), param.getSearchEndTime()); + if (!CollectionUtils.isEmpty(eventDetailList)) { + map2 = eventDetailList.stream().collect(Collectors.groupingBy(com.njcn.event.pojo.po.EventDetail::getLineId)); } } for (GeneralDeviceDTO item : temList) { - int onlineMonitorCount = 0,alertMonitorCount = 0,alertCount = 0,freqCount = 0,voltageCount = 0,ubalanceCount = 0,flickerCount = 0,iNegCount = 0,uharmCount = 0,iharmCount = 0,inuharmCount = 0; - int freqCounts = 0,voltageCounts = 0,uharmCounts = 0,iharmCounts = 0,ubalanceCounts = 0,flickerCounts = 0,inuharmCounts = 0,iNegCounts = 0; - int eventUp = 0,eventDown = 0,eventInterrupt = 0,eventUps = 0,eventDowns = 0,eventInterrupts = 0; + int onlineMonitorCount = 0, alertMonitorCount = 0, alertCount = 0, freqCount = 0, voltageCount = 0, ubalanceCount = 0, flickerCount = 0, iNegCount = 0, uharmCount = 0, iharmCount = 0, inuharmCount = 0; + int freqCounts = 0, voltageCounts = 0, uharmCounts = 0, iharmCounts = 0, ubalanceCounts = 0, flickerCounts = 0, inuharmCounts = 0, iNegCounts = 0; + int eventUp = 0, eventDown = 0, eventInterrupt = 0, eventUps = 0, eventDowns = 0, eventInterrupts = 0; WarningSubstationVO warningSubstationVO = new WarningSubstationVO(); //电站id warningSubstationVO.setId(item.getIndex()); //电站名称 warningSubstationVO.setPlantName(item.getName()); List lineList = item.getLineIndexes(); - if (!CollectionUtils.isEmpty(lineList)){ + if (!CollectionUtils.isEmpty(lineList)) { for (String item2 : lineList) { //谐波统计 - if (!CollectionUtils.isEmpty(map.get(item2))){ - LimitRate limitRate = map.get(item2).get(0); - if (!Objects.isNull(limitRate)){ + if (!CollectionUtils.isEmpty(map.get(item2))) { + RStatLimitRateDPO limitRate = map.get(item2).get(0); + if (!Objects.isNull(limitRate)) { onlineMonitorCount++; - if (limitRate.getFreqDevOverTime() > 0 || limitRate.getVoltageDevOverTime() > 0 || limitRate.getUBalanceOverTime() > 0 || limitRate.getFlickerOverTime() > 0 || limitRate.getINegOverTime() > 0 || limitRate.getUHarm2OverTime() > 0 || limitRate.getIHarm2OverTime() > 0 || limitRate.getInuHarm1OverTime() > 0){ + if (limitRate.getFreqDevOvertime() > 0 || limitRate.getVoltageDevOvertime() > 0 || limitRate.getUbalanceOvertime() > 0 || limitRate.getFlickerOvertime() > 0 || limitRate.getINegOvertime() > 0 || limitRate.getUharm2Overtime() > 0 || limitRate.getIharm2Overtime() > 0 || limitRate.getInuharm1Overtime() > 0) { alertMonitorCount++; } - if (limitRate.getFreqDevOverTime() > 0){ + if (limitRate.getFreqDevOvertime() > 0) { freqCount++; - freqCounts = freqCounts + limitRate.getFreqDevOverTime(); + freqCounts = freqCounts + limitRate.getFreqDevOvertime(); } - if (limitRate.getVoltageDevOverTime() > 0){ + if (limitRate.getVoltageDevOvertime() > 0) { voltageCount++; - voltageCounts = voltageCounts + limitRate.getVoltageDevOverTime(); + voltageCounts = voltageCounts + limitRate.getVoltageDevOvertime(); } - if (limitRate.getUHarm2OverTime() > 0){ + if (limitRate.getUharm2Overtime() > 0) { uharmCount++; - uharmCounts = uharmCounts + limitRate.getUHarm2OverTime(); + uharmCounts = uharmCounts + limitRate.getUharm2Overtime(); } - if (limitRate.getIHarm2OverTime() > 0){ + if (limitRate.getIharm2Overtime() > 0) { iharmCount++; - iharmCounts = iharmCounts + limitRate.getIHarm2OverTime(); + iharmCounts = iharmCounts + limitRate.getIharm2Overtime(); } - if (limitRate.getUBalanceOverTime() > 0){ + if (limitRate.getUbalanceOvertime() > 0) { ubalanceCount++; - ubalanceCounts = ubalanceCounts + limitRate.getUBalanceOverTime(); + ubalanceCounts = ubalanceCounts + limitRate.getUbalanceOvertime(); } - if (limitRate.getFlickerOverTime() > 0){ + if (limitRate.getFlickerOvertime() > 0) { flickerCount++; - flickerCounts = flickerCounts + limitRate.getFlickerOverTime(); + flickerCounts = flickerCounts + limitRate.getFlickerOvertime(); } - if (limitRate.getInuHarm1OverTime() > 0){ + if (limitRate.getInuharm1Overtime() > 0) { inuharmCount++; - inuharmCounts = inuharmCounts + limitRate.getInuHarm1OverTime(); + inuharmCounts = inuharmCounts + limitRate.getInuharm1Overtime(); } - if (limitRate.getINegOverTime() > 0){ + if (limitRate.getINegOvertime() > 0) { iNegCount++; - iNegCounts = iNegCounts + limitRate.getINegOverTime(); + iNegCounts = iNegCounts + limitRate.getINegOvertime(); } - alertCount = limitRate.getFreqDevOverTime() + limitRate.getVoltageDevOverTime() + limitRate.getUBalanceOverTime() + limitRate.getFlickerOverTime() + limitRate.getINegOverTime() + limitRate.getUHarm2OverTime() + limitRate.getIHarm2OverTime() + limitRate.getInuHarm1OverTime(); + alertCount = limitRate.getFreqDevOvertime() + limitRate.getVoltageDevOvertime() + limitRate.getUbalanceOvertime() + limitRate.getFlickerOvertime() + limitRate.getINegOvertime() + limitRate.getUharm2Overtime() + limitRate.getIharm2Overtime() + limitRate.getInuharm1Overtime(); } } //暂降统计 - if (!CollectionUtils.isEmpty(map2.get(item2))){ - List eventDetailList = map2.get(item2); - if (!CollectionUtils.isEmpty(eventDetailList)){ - for (EventDetail item3 : eventDetailList) { - if (item3.getWaveType() == 1){ - eventDowns++; - } else if (item3.getWaveType() == 2){ - eventUps++; - } else if (item3.getWaveType() == 3){ - eventInterrupts++; + if (!CollectionUtils.isEmpty(map2.get(item2))) { + List eventDetailList = map2.get(item2); + if (!CollectionUtils.isEmpty(eventDetailList)) { + for (com.njcn.event.pojo.po.EventDetail item3 : eventDetailList) { + String eventType = item3.getEventType(); + List code = eventStatis.stream().filter(x -> x.getId().equals(eventType)) + .map(DictData::getCode).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(code)) { + if (DicDataEnum.VOLTAGE_DIP.getCode().equals(code.get(0))) { + eventDowns++; + } + if (DicDataEnum.VOLTAGE_RISE.getCode().equals(code.get(0))) { + eventUps++; + } + if (DicDataEnum.SHORT_INTERRUPTIONS.getCode().equals(code.get(0))) { + eventInterrupts++; + } + } + } } } - if (eventDowns > 0){ + if (eventDowns > 0) { eventDown++; } - if (eventUps > 0){ + if (eventUps > 0) { eventUp++; } - if (eventInterrupts > 0){ + if (eventInterrupts > 0) { eventInterrupt++; } } } //在线监测点数量(个) warningSubstationVO.setOnlineMonitorCounts(onlineMonitorCount); - if (onlineMonitorCount != 0){ + if (onlineMonitorCount != 0) { //告警监测点数量(个) warningSubstationVO.setAlertMonitorCounts(alertMonitorCount); //告警次数 warningSubstationVO.setAlertCounts(alertCount); //告警频次(次/点) - warningSubstationVO.setAlertAlarmFrequency(alertMonitorCount==0?0:BigDecimal.valueOf(alertCount*1.0/alertMonitorCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setAlertAlarmFrequency(alertMonitorCount == 0 ? 0 : BigDecimal.valueOf(alertCount * 1.0 / alertMonitorCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //频率偏差 - warningSubstationVO.setFrequencyDeviation(freqCount==0?0:BigDecimal.valueOf(freqCounts*1.0/freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setFrequencyDeviation(freqCount == 0 ? 0 : BigDecimal.valueOf(freqCounts * 1.0 / freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //电压偏差 - warningSubstationVO.setVoltageDeviation(voltageCount==0?0:BigDecimal.valueOf(voltageCounts*1.0/voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setVoltageDeviation(voltageCount == 0 ? 0 : BigDecimal.valueOf(voltageCounts * 1.0 / voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //谐波电压 - warningSubstationVO.setHarmonicVoltage(uharmCount==0?0:BigDecimal.valueOf(uharmCounts*1.0/uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setHarmonicVoltage(uharmCount == 0 ? 0 : BigDecimal.valueOf(uharmCounts * 1.0 / uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //谐波电流 - warningSubstationVO.setHarmonicCurrent(iharmCount==0?0:BigDecimal.valueOf(iharmCounts*1.0/iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setHarmonicCurrent(iharmCount == 0 ? 0 : BigDecimal.valueOf(iharmCounts * 1.0 / iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //三相电压不平衡 - warningSubstationVO.setThreePhaseVoltageUnbalance(ubalanceCount==0?0:BigDecimal.valueOf(ubalanceCounts*1.0/ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setThreePhaseVoltageUnbalance(ubalanceCount == 0 ? 0 : BigDecimal.valueOf(ubalanceCounts * 1.0 / ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //闪变 - warningSubstationVO.setFlicker(flickerCount==0?0:BigDecimal.valueOf(flickerCounts*1.0/flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setFlicker(flickerCount == 0 ? 0 : BigDecimal.valueOf(flickerCounts * 1.0 / flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //间谐波电压 - warningSubstationVO.setInterHarmonic(inuharmCount==0?0:BigDecimal.valueOf(inuharmCounts*1.0/inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setInterHarmonic(inuharmCount == 0 ? 0 : BigDecimal.valueOf(inuharmCounts * 1.0 / inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //负序电流 - warningSubstationVO.setNegative(iNegCount==0?0:BigDecimal.valueOf(iNegCounts*1.0/iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setNegative(iNegCount == 0 ? 0 : BigDecimal.valueOf(iNegCounts * 1.0 / iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); //电压暂降 - warningSubstationVO.setVoltageDip(eventDown==0?0:BigDecimal.valueOf(eventDowns*1.0/eventDown).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setVoltageDip(eventDown == 0 ? 0 : BigDecimal.valueOf(eventDowns * 1.0 / eventDown).setScale(2, RoundingMode.HALF_UP).doubleValue()); //电压暂升 - warningSubstationVO.setVoltageSwell(eventUp==0?0:BigDecimal.valueOf(eventUps*1.0/eventUp).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setVoltageSwell(eventUp == 0 ? 0 : BigDecimal.valueOf(eventUps * 1.0 / eventUp).setScale(2, RoundingMode.HALF_UP).doubleValue()); //短时中断 - warningSubstationVO.setShortInterruption(eventInterrupt==0?0:BigDecimal.valueOf(eventInterrupts*1.0/eventInterrupt).setScale(2, RoundingMode.HALF_UP).doubleValue()); + warningSubstationVO.setShortInterruption(eventInterrupt == 0 ? 0 : BigDecimal.valueOf(eventInterrupts * 1.0 / eventInterrupt).setScale(2, RoundingMode.HALF_UP).doubleValue()); } list.add(warningSubstationVO); } } - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { for (WarningSubstationVO item1 : list) { for (WarningSubstationDTO item2 : substationDTOList) { - if (Objects.equals(item1.getId(),item2.getId())){ + if (Objects.equals(item1.getId(), item2.getId())) { item1.setProvinceCompany(item2.getProvince()); item1.setCityCompany(item2.getCity()); item1.setPlantVoltageLevel(item2.getScale()); @@ -291,12 +310,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService { List lineList = new ArrayList<>(); List deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); if (!CollectionUtils.isEmpty(deptList)) { - deptList.forEach(item->{ + deptList.forEach(item -> { lineList.addAll(item.getLineIndexes()); }); } if (CollectionUtil.isNotEmpty(lineList)) { - page = targetMapper.getSumLimitTargetPage(page, lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), + page = targetMapper.getSumLimitTargetPage(page, lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))); List pageRecords = page.getRecords(); if (CollectionUtils.isEmpty(pageRecords)) { @@ -309,12 +328,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService { pollutionParamDTO.setLineList(list); List overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData(); List rStatLimitTargetDPOS = targetMapper.selectList(new QueryWrapper() - .in("r_stat_limit_target_d.my_index", list).between("r_stat_limit_target_d.time_id",DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), + .in("r_stat_limit_target_d.my_index", list).between("r_stat_limit_target_d.time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))); Map> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId)); for (OverLimitLineDTO vo : overLimitLineList) { MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO(); - BeanUtil.copyProperties(vo,monitorOverLimitVO); + BeanUtil.copyProperties(vo, monitorOverLimitVO); MonitorOverLimitVO source = monMap.get(vo.getId()).get(0); monitorOverLimitVO.setOverDay(source.getOverDay()); monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay()); @@ -356,7 +375,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService { } } - if (!CollectionUtils.isEmpty(result)){ + if (!CollectionUtils.isEmpty(result)) { //默认 根据在线监测点个数 倒叙排序 List recordList = result.stream().sorted(Comparator.comparing(MonitorOverLimitVO::getOverDay).reversed()).collect(Collectors.toList()); page.setRecords(recordList); @@ -509,15 +528,15 @@ public class AnalyzeServiceImpl implements IAnalyzeService { private boolean filterNotQualifiedHarmVolData(RStatLimitTargetDPO t) { // 电压畸变率+谐波电压含有率(2-25次) int i = t.getUaberranceOvertime() + t.getUharm2Overtime() + t.getUharm3Overtime() + t.getUharm4Overtime() + t.getUharm5Overtime() + t.getUharm6Overtime() + t.getUharm7Overtime() + t.getUharm8Overtime() + t.getUharm9Overtime() + t.getUharm10Overtime() + t.getUharm11Overtime() + t.getUharm12Overtime() + t.getUharm13Overtime() + t.getUharm14Overtime() + t.getUharm15Overtime() + t.getUharm16Overtime() + t.getUharm17Overtime() + t.getUharm18Overtime() + t.getUharm19Overtime() + t.getUharm20Overtime() + t.getUharm21Overtime() + t.getUharm22Overtime() + t.getUharm23Overtime() + t.getUharm24Overtime() + t.getUharm25Overtime(); - if (i > 0){ + if (i > 0) { return true; } return false; } private boolean filterNotQualifiedInuharmData(RStatLimitTargetDPO t) { - int i =t.getInuharm1Overtime()+ t.getInuharm2Overtime() + t.getInuharm3Overtime() + t.getInuharm4Overtime() + t.getInuharm5Overtime() + t.getInuharm6Overtime() + t.getInuharm7Overtime() + t.getInuharm8Overtime() + t.getInuharm9Overtime() + t.getInuharm10Overtime() + t.getInuharm11Overtime() + t.getInuharm12Overtime() + t.getInuharm13Overtime() + t.getInuharm14Overtime() + t.getInuharm15Overtime() + t.getInuharm16Overtime(); - if (i > 0){ + int i = t.getInuharm1Overtime() + t.getInuharm2Overtime() + t.getInuharm3Overtime() + t.getInuharm4Overtime() + t.getInuharm5Overtime() + t.getInuharm6Overtime() + t.getInuharm7Overtime() + t.getInuharm8Overtime() + t.getInuharm9Overtime() + t.getInuharm10Overtime() + t.getInuharm11Overtime() + t.getInuharm12Overtime() + t.getInuharm13Overtime() + t.getInuharm14Overtime() + t.getInuharm15Overtime() + t.getInuharm16Overtime(); + if (i > 0) { return true; } return false; @@ -525,14 +544,14 @@ public class AnalyzeServiceImpl implements IAnalyzeService { private boolean filterNotQualifiedIharmData(RStatLimitTargetDPO t) { int i = t.getIharm2Overtime() + t.getIharm3Overtime() + t.getIharm4Overtime() + t.getIharm5Overtime() + t.getIharm6Overtime() + t.getIharm7Overtime() + t.getIharm8Overtime() + t.getIharm9Overtime() + t.getIharm10Overtime() + t.getIharm11Overtime() + t.getIharm12Overtime() + t.getIharm13Overtime() + t.getIharm14Overtime() + t.getIharm15Overtime() + t.getIharm16Overtime() + t.getIharm17Overtime() + t.getIharm18Overtime() + t.getIharm19Overtime() + t.getIharm20Overtime() + t.getIharm21Overtime() + t.getIharm22Overtime() + t.getIharm23Overtime() + t.getIharm24Overtime() + t.getIharm25Overtime(); - if (i > 0){ + if (i > 0) { return true; } return false; } private boolean filterNotQualifiedUharmData(RStatLimitTargetDPO t) { - if (t.getUharm2Overtime()!=0 || t.getUharm3Overtime()!=0 || t.getUharm4Overtime()!=0 || t.getUharm5Overtime()!=0 || t.getUharm6Overtime()!=0 || t.getUharm7Overtime()!=0 || t.getUharm8Overtime()!=0 || t.getUharm9Overtime()!=0 || t.getUharm10Overtime()!=0 || t.getUharm11Overtime()!=0 ||t.getUharm12Overtime()!=0 || t.getUharm13Overtime()!=0 || t.getUharm14Overtime()!=0 || t.getUharm15Overtime()!=0 || t.getUharm16Overtime()!=0 || t.getUharm17Overtime()!=0 ||t.getUharm18Overtime()!=0 || t.getUharm19Overtime() !=0|| t.getUharm20Overtime()!=0 || t.getUharm21Overtime() !=0|| t.getUharm22Overtime() !=0|| t.getUharm23Overtime() !=0|| t.getUharm24Overtime()!=0 || t.getUharm25Overtime() !=0) { + if (t.getUharm2Overtime() != 0 || t.getUharm3Overtime() != 0 || t.getUharm4Overtime() != 0 || t.getUharm5Overtime() != 0 || t.getUharm6Overtime() != 0 || t.getUharm7Overtime() != 0 || t.getUharm8Overtime() != 0 || t.getUharm9Overtime() != 0 || t.getUharm10Overtime() != 0 || t.getUharm11Overtime() != 0 || t.getUharm12Overtime() != 0 || t.getUharm13Overtime() != 0 || t.getUharm14Overtime() != 0 || t.getUharm15Overtime() != 0 || t.getUharm16Overtime() != 0 || t.getUharm17Overtime() != 0 || t.getUharm18Overtime() != 0 || t.getUharm19Overtime() != 0 || t.getUharm20Overtime() != 0 || t.getUharm21Overtime() != 0 || t.getUharm22Overtime() != 0 || t.getUharm23Overtime() != 0 || t.getUharm24Overtime() != 0 || t.getUharm25Overtime() != 0) { return true; } return false; @@ -541,16 +560,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService { @Override public String exportArea(OverAreaVO param, String methodDescribe) { List result = new ArrayList<>(); - String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx"; + String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime() + CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() + ".xlsx"; String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex(); log.error("文件路径" + targetDir); log.error("文件名" + fileName); File excel = new File(targetDir, fileName); List list = getAreaData(param).getRecords(); if (!CollectionUtil.isEmpty(list)) { - list.forEach(item->{ + list.forEach(item -> { AreaExcel areaExcel = new AreaExcel(); - BeanUtil.copyProperties(item,areaExcel); + BeanUtil.copyProperties(item, areaExcel); result.add(areaExcel); }); } @@ -561,16 +580,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService { @Override public String exportSubstation(OverAreaVO param, String methodDescribe) { List result = new ArrayList<>(); - String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx"; + String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime() + CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() + ".xlsx"; String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex(); log.error("文件路径" + targetDir); log.error("文件名" + fileName); File excel = new File(targetDir, fileName); List list = getWarningSubstation(param).getRecords(); if (!CollectionUtil.isEmpty(list)) { - list.forEach(item->{ + list.forEach(item -> { SubstationExcel substationExcel = new SubstationExcel(); - BeanUtil.copyProperties(item,substationExcel); + BeanUtil.copyProperties(item, substationExcel); result.add(substationExcel); }); } @@ -581,32 +600,32 @@ public class AnalyzeServiceImpl implements IAnalyzeService { @Override public String exportMonitor(OverAreaVO param, String methodDescribe) { List result = new ArrayList<>(); - String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx"; + String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime() + CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() + ".xlsx"; String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex(); log.error("文件路径" + targetDir); log.error("文件名" + fileName); File excel = new File(targetDir, fileName); List list = monitorOverLimitVO(param).getRecords(); if (!CollectionUtil.isEmpty(list)) { - list.forEach(item->{ + list.forEach(item -> { MonitorExcel monitorExcel = new MonitorExcel(); - BeanUtil.copyProperties(item,monitorExcel); + BeanUtil.copyProperties(item, monitorExcel); OverLimitDays overLimitDays = new OverLimitDays(); List list1 = new ArrayList<>(); UTimes uTimes = new UTimes(); - BeanUtil.copyProperties(item,uTimes); + BeanUtil.copyProperties(item, uTimes); list1.add(uTimes); overLimitDays.setUTimes(list1); List list2 = new ArrayList<>(); ITimes iTimes = new ITimes(); - BeanUtil.copyProperties(item,iTimes); + BeanUtil.copyProperties(item, iTimes); list2.add(iTimes); overLimitDays.setITimes(list2); List list3 = new ArrayList<>(); - BeanUtil.copyProperties(item,overLimitDays); + BeanUtil.copyProperties(item, overLimitDays); list3.add(overLimitDays); monitorExcel.setOverLimitDays(list3); result.add(monitorExcel); @@ -619,177 +638,142 @@ public class AnalyzeServiceImpl implements IAnalyzeService { /** * 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比 + * * @param list 集合 - * type 类型 + * type 类型 * @return * @author xy * @date 2022/2/25 15:05 */ @SuppressWarnings("unchecked") public OverAreaLimitVO handleAreaData(List list, List line, OverAreaVO param) { - int onlineCount = 0,overLineCount = 0,freqCount = 0,voltageCount = 0,ubalanceCount = 0,flickerCount = 0,iNegCount = 0,uharmCount = 0,iharmCount = 0,inuharmCount = 0; - int freqOverDay = 0,voltageOverDay = 0, ubalanceOverDay = 0,flickerOverDay = 0,iNegOverDay = 0,uharmOverDay = 0,iharmOverDay = 0,inuharmOverDay = 0; + int onlineCount = 0, overLineCount = 0, freqCount = 0, voltageCount = 0, ubalanceCount = 0, flickerCount = 0, iNegCount = 0, uharmCount = 0, iharmCount = 0, inuharmCount = 0; + int freqOverDay = 0, voltageOverDay = 0, ubalanceOverDay = 0, flickerOverDay = 0, iNegOverDay = 0, uharmOverDay = 0, iharmOverDay = 0, inuharmOverDay = 0; OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO(); - if (!CollectionUtils.isEmpty(list)){ - List data = (List)getAllData(line,param.getSearchBeginTime(),param.getSearchEndTime(),Param.LIMIT_TARGET); + if (!CollectionUtils.isEmpty(list)) { + List data = (List) getAllData(line, param.getSearchBeginTime(), param.getSearchEndTime(), Param.LIMIT_TARGET); if (!CollectionUtils.isEmpty(data)) { onlineCount = data.size(); //在线监测点个数 overAreaLimitVO.setOnlineMonitorNumber(onlineCount); - for (LimitTarget item : data) { - if (item.getFreqDevOverTime() > 0 || item.getVoltageDevOverTime() > 0 || item.getUBalanceOverTime() > 0 || item.getFlickerOverTime() > 0 || item.getINegOverTime() > 0 ||item.getUHarm2OverTime() > 0 || item.getIHarm2OverTime() > 0 || item.getInuHarm1OverTime() > 0) { + for (RStatLimitTargetDPO item : data) { + if (item.getFreqDevOvertime() > 0 || item.getVoltageDevOvertime() > 0 || item.getUbalanceOvertime() > 0 || item.getFlickerOvertime() > 0 || item.getINegOvertime() > 0 || item.getUharm2Overtime() > 0 || item.getIharm2Overtime() > 0 || item.getInuharm1Overtime() > 0) { overLineCount++; } - if (item.getFreqDevOverTime() > 0){ + if (item.getFreqDevOvertime() > 0) { freqCount++; } - if (item.getVoltageDevOverTime() > 0){ + if (item.getVoltageDevOvertime() > 0) { voltageCount++; } - if (item.getUBalanceOverTime() > 0){ + if (item.getUbalanceOvertime() > 0) { ubalanceCount++; } - if (item.getFlickerOverTime() > 0){ + if (item.getFlickerOvertime() > 0) { flickerCount++; } - if (item.getINegOverTime() > 0){ + if (item.getINegOvertime() > 0) { iNegCount++; } - if (item.getUHarm2OverTime() > 0){ + if (item.getUharm2Overtime() > 0) { uharmCount++; } - if (item.getIHarm2OverTime() > 0){ + if (item.getIharm2Overtime() > 0) { iharmCount++; } - if (item.getInuHarm1OverTime() > 0){ + if (item.getInuharm1Overtime() > 0) { inuharmCount++; } } //超标监测点个数 overAreaLimitVO.setOverLimitMonitorNumber(overLineCount); //超标监测点数占比 - overAreaLimitVO.setOverBiLi(BigDecimal.valueOf(overLineCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setOverBiLi(BigDecimal.valueOf(overLineCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //频率偏差 overAreaLimitVO.setFrequencyMonitorNumber(freqCount); - overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //电压偏差 overAreaLimitVO.setVoltageMonitorNumber(voltageCount); - overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //谐波电压 overAreaLimitVO.setHarmonicVoltageMonitorNumber(uharmCount); - overAreaLimitVO.setHarmonicVoltageBiLi(BigDecimal.valueOf(uharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setHarmonicVoltageBiLi(BigDecimal.valueOf(uharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //谐波电流 overAreaLimitVO.setHarmonicCurrentMonitorNumber(iharmCount); - overAreaLimitVO.setHarmonicCurrentBiLi(BigDecimal.valueOf(iharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setHarmonicCurrentBiLi(BigDecimal.valueOf(iharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //三相电压不平衡度 overAreaLimitVO.setThreePhaseVoltageMonitorNumber(ubalanceCount); - overAreaLimitVO.setThreePhaseVoltageBiLi(BigDecimal.valueOf(ubalanceCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setThreePhaseVoltageBiLi(BigDecimal.valueOf(ubalanceCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //闪变 overAreaLimitVO.setFlickerMonitorNumber(flickerCount); - overAreaLimitVO.setFlickerBiLi(BigDecimal.valueOf(flickerCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setFlickerBiLi(BigDecimal.valueOf(flickerCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //负序电流 overAreaLimitVO.setNegativeMonitorNumber(iNegCount); - overAreaLimitVO.setNegativeBiLi(BigDecimal.valueOf(iNegCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setNegativeBiLi(BigDecimal.valueOf(iNegCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); //间谐波电压 overAreaLimitVO.setInterHarmonicMonitorNumber(inuharmCount); - overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); } } - Map> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); + Map> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); for (Instant key : map.keySet()) { List l = map.get(key); for (LimitTarget pojo : l) { - if (pojo.getFreqDevOverTime() > 0){ + if (pojo.getFreqDevOverTime() > 0) { freqOverDay++; } - if (pojo.getVoltageDevOverTime() > 0){ + if (pojo.getVoltageDevOverTime() > 0) { voltageOverDay++; } - if (pojo.getUBalanceOverTime() > 0){ + if (pojo.getUBalanceOverTime() > 0) { ubalanceOverDay++; } - if (pojo.getFlickerOverTime() > 0){ + if (pojo.getFlickerOverTime() > 0) { flickerOverDay++; } - if (pojo.getINegOverTime() > 0){ + if (pojo.getINegOverTime() > 0) { iNegOverDay++; } - if (pojo.getUHarm2OverTime() > 0){ + if (pojo.getUHarm2OverTime() > 0) { uharmOverDay++; } - if (pojo.getIHarm2OverTime() > 0){ + if (pojo.getIHarm2OverTime() > 0) { iharmOverDay++; } - if (pojo.getInuHarm1OverTime() > 0){ + if (pojo.getInuHarm1OverTime() > 0) { inuharmOverDay++; } } } - if (onlineCount != 0){ - overAreaLimitVO.setFrequencyOverDayBiLi(freqCount == 0?0.0:BigDecimal.valueOf(freqOverDay*1.0/freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setVoltageOverDayBiLi(voltageCount == 0?0.0:BigDecimal.valueOf(voltageOverDay*1.0/voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setThreePhaseVoltageOverDayBiLi(ubalanceCount == 0?0.0:BigDecimal.valueOf(ubalanceOverDay*1.0/ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setFlickerOverDayBiLi(flickerCount == 0?0.0:BigDecimal.valueOf(flickerOverDay*1.0/flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setNegativeOverDayBiLi(iNegCount == 0?0.0:BigDecimal.valueOf(iNegOverDay*1.0/iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setHarmonicVoltageOverDayBiLi(uharmCount == 0?0.0:BigDecimal.valueOf(uharmOverDay*1.0/uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setHarmonicCurrentOverDayBiLi(iharmCount == 0?0.0:BigDecimal.valueOf(iharmOverDay*1.0/iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); - overAreaLimitVO.setInterHarmonicOverDayBiLi(inuharmCount == 0?0.0:BigDecimal.valueOf(inuharmOverDay*1.0/inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + if (onlineCount != 0) { + overAreaLimitVO.setFrequencyOverDayBiLi(freqCount == 0 ? 0.0 : BigDecimal.valueOf(freqOverDay * 1.0 / freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setVoltageOverDayBiLi(voltageCount == 0 ? 0.0 : BigDecimal.valueOf(voltageOverDay * 1.0 / voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setThreePhaseVoltageOverDayBiLi(ubalanceCount == 0 ? 0.0 : BigDecimal.valueOf(ubalanceOverDay * 1.0 / ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setFlickerOverDayBiLi(flickerCount == 0 ? 0.0 : BigDecimal.valueOf(flickerOverDay * 1.0 / flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setNegativeOverDayBiLi(iNegCount == 0 ? 0.0 : BigDecimal.valueOf(iNegOverDay * 1.0 / iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setHarmonicVoltageOverDayBiLi(uharmCount == 0 ? 0.0 : BigDecimal.valueOf(uharmOverDay * 1.0 / uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setHarmonicCurrentOverDayBiLi(iharmCount == 0 ? 0.0 : BigDecimal.valueOf(iharmOverDay * 1.0 / iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); + overAreaLimitVO.setInterHarmonicOverDayBiLi(inuharmCount == 0 ? 0.0 : BigDecimal.valueOf(inuharmOverDay * 1.0 / inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue()); } return overAreaLimitVO; } /** * 功能描述: 处理区域在线监测点数、超标监测点数 + * * @param list 集合 * @return * @author xy * @date 2022/2/25 15:05 */ - private List getAllData(List list, String startTime, String endTime, String databaseName){ + private List getAllData(List list, String startTime, String endTime, String databaseName) { List result = new ArrayList<>(); - StringBuilder stringBuilder = new StringBuilder(); - StringBuilder stringBuilder1 = new StringBuilder(); - stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and ("); - for (int i=0;i getEventDetail(List list, String startTime, String endTime){ - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and ("); - for (int i=0;i getEventDetail(List list, String startTime, String endTime) { + return eventDetailFeignClient.getEventDetail(list, startTime, endTime).getData(); } - public List getOverDays(List list, String startTime, String endTime){ + public List getOverDays(List list, String startTime, String endTime) { StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder1 = new StringBuilder(); stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and ("); - for (int i=0;i{ - LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class); + LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class); limitRatePO.setTime(list.getTime().toInstant()); limitRatePO.setLineId(list.getLineId()); limitRatePO.setPhasicType(list.getPhasicType()); @@ -362,7 +362,30 @@ public class HarmonicServiceImpl implements IHarmonicService { limitRatePO.setUHarm23OverTime(list.getUharm23Overtime()); limitRatePO.setUHarm24OverTime(list.getUharm24Overtime()); limitRatePO.setUHarm25OverTime(list.getUharm25Overtime()); + + limitRatePO.setInuHarm1OverTime(list.getInuharm1Overtime()); + limitRatePO.setInuHarm2OverTime(list.getInuharm2Overtime()); + limitRatePO.setInuHarm3OverTime(list.getInuharm3Overtime()); + limitRatePO.setInuHarm4OverTime(list.getInuharm4Overtime()); + limitRatePO.setInuHarm5OverTime(list.getInuharm5Overtime()); + limitRatePO.setInuHarm6OverTime(list.getInuharm6Overtime()); + limitRatePO.setInuHarm7OverTime(list.getInuharm7Overtime()); + limitRatePO.setInuHarm8OverTime(list.getInuharm8Overtime()); + limitRatePO.setInuHarm9OverTime(list.getInuharm9Overtime()); + limitRatePO.setInuHarm10OverTime(list.getInuharm10Overtime()); + limitRatePO.setInuHarm11OverTime(list.getInuharm11Overtime()); + limitRatePO.setInuHarm12OverTime(list.getInuharm12Overtime()); + limitRatePO.setInuHarm13OverTime(list.getInuharm13Overtime()); + limitRatePO.setInuHarm14OverTime(list.getInuharm14Overtime()); + limitRatePO.setInuHarm15OverTime(list.getInuharm15Overtime()); + limitRatePO.setInuHarm16OverTime(list.getInuharm16Overtime()); + + limitRatePO.setFlickerOverTime(list.getFlickerOvertime()); + limitRatePO.setFlickerAllTime(list.getFlickerAllTime()); + limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime()); limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime()); + limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime()); + limitRatePO.setINegOverTime(list.getINegOvertime()); listInfo.add(limitRatePO); }); } @@ -625,6 +648,31 @@ public class HarmonicServiceImpl implements IHarmonicService { limitRatePO.setUHarm24OverTime(list.getUharm24Overtime()); limitRatePO.setUHarm25OverTime(list.getUharm25Overtime()); limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime()); + + limitRatePO.setInuHarm1OverTime(list.getInuharm1Overtime()); + limitRatePO.setInuHarm2OverTime(list.getInuharm2Overtime()); + limitRatePO.setInuHarm3OverTime(list.getInuharm3Overtime()); + limitRatePO.setInuHarm4OverTime(list.getInuharm4Overtime()); + limitRatePO.setInuHarm5OverTime(list.getInuharm5Overtime()); + limitRatePO.setInuHarm6OverTime(list.getInuharm6Overtime()); + limitRatePO.setInuHarm7OverTime(list.getInuharm7Overtime()); + limitRatePO.setInuHarm8OverTime(list.getInuharm8Overtime()); + limitRatePO.setInuHarm9OverTime(list.getInuharm9Overtime()); + limitRatePO.setInuHarm10OverTime(list.getInuharm10Overtime()); + limitRatePO.setInuHarm11OverTime(list.getInuharm11Overtime()); + limitRatePO.setInuHarm12OverTime(list.getInuharm12Overtime()); + limitRatePO.setInuHarm13OverTime(list.getInuharm13Overtime()); + limitRatePO.setInuHarm14OverTime(list.getInuharm14Overtime()); + limitRatePO.setInuHarm15OverTime(list.getInuharm15Overtime()); + limitRatePO.setInuHarm16OverTime(list.getInuharm16Overtime()); + + limitRatePO.setFlickerOverTime(list.getFlickerOvertime()); + limitRatePO.setFlickerAllTime(list.getFlickerAllTime()); + limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime()); + limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime()); + limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime()); + limitRatePO.setINegOverTime(list.getINegOvertime()); + listInfo.add(limitRatePO); }); } diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java index e20d00fc8..b47b0c4c0 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java @@ -50,7 +50,9 @@ public enum DicDataEnum { */ COMM_ERR("通讯异常", "Comm_Err"), - + /** + * 暂态统计指标 + */ TOTAL_INDICATORS("总暂态指标", "Total_Indicators"), VOLTAGE_DIP("电压暂降", "Voltage_Dip"), VOLTAGE_RISE("电压暂升", "Voltage_Rise"),