From 94cca2e250075625544fece612c709b793d35a18 Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Wed, 14 Jun 2023 15:12:19 +0800 Subject: [PATCH] =?UTF-8?q?zbj//1.=E5=8D=95=E4=BD=8D=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E5=91=8A=E8=AD=A6=E7=BB=9F=E8=AE=A1=5F=E6=9C=88=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=20=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/po/RStatAreaAlarmCountM.java | 132 ++++ .../pojo/po/RStatAreaAlarmCountMPO.java | 136 ++++ .../RStatAreaAlarmCountMPOMapper.java | 18 + .../RStatAreaAlarmCountMPOService.java | 13 + .../impl/RAlarmCountServiceImpl.java | 612 ++++++++++++++++-- .../RStatAreaAlarmCountMPOServiceImpl.java | 25 + 6 files changed, 867 insertions(+), 69 deletions(-) create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountM.java create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountMPO.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatAreaAlarmCountMPOMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatAreaAlarmCountMPOService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatAreaAlarmCountMPOServiceImpl.java diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountM.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountM.java new file mode 100644 index 000000000..56fafcf58 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountM.java @@ -0,0 +1,132 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +import java.util.Date; + +/** + * 区域告警统计(月) + * @TableName r_stat_area_alarm_count_m + */ +@Data +@TableName("r_stat_area_alarm_count_m") +public class RStatAreaAlarmCountM { + + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 数据类型(0:主网 1:配网) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 电压偏差告警情况(0:否 1:是) + */ + @TableField(value = "vdev_alarm_info") + private Integer vdevAlarmInfo; + + /** + * 电压偏差告警超标占比 + */ + @TableField(value = "vdev_alarm_ratio") + private Float vdevAlarmRatio; + + /** + * 频率偏差告警情况(0:否 1:是) + */ + @TableField(value = "freq_alarm_info") + private Integer freqAlarmInfo; + + /** + * 频率偏差告警超标占比 + */ + @TableField(value = "freq_alarm_ratio") + private Float freqAlarmRatio; + + /** + * 三相电压不平衡度告警情况(0:否 1:是) + */ + @TableField(value = "unbalance_alarm_info") + private Integer unbalanceAlarmInfo; + + /** + * 三相电压不平衡度告警超标占比 + */ + @TableField(value = "unbalance_alarm_ratio") + private Float unbalanceAlarmRatio; + + /** + * 谐波电压告警情况(0:否 1:是) + */ + @TableField(value = "v_alarm_info") + private Integer vAlarmInfo; + + /** + * 谐波电压告警超标占比 + */ + @TableField(value = "v_alarm_ratio") + private Float vAlarmRatio; + + /** + * 闪变告警情况(0:否 1:是) + */ + @TableField(value = "flicker_alarm_info") + private Integer flickerAlarmInfo; + + /** + * 闪变告警超标占比 + */ + @TableField(value = "flicker_alarm_ratio") + private Float flickerAlarmRatio; + + /** + * 电压暂降告警情况(0:否 1:是) + */ + @TableField(value = "sag_alarm_info") + private Integer sagAlarmInfo; + + /** + * 电压暂降告警平均发生次数 + */ + @TableField(value = "sag_alarm_avg_count") + private Integer sagAlarmAvgCount; + + /** + * 短时中断告警情况(0:否 1:是) + */ + @TableField(value = "interrupt_alarm_info") + private Integer interruptAlarmInfo; + + /** + * 短时中断告警平均发生次数 + */ + @TableField(value = "interrupt_alarm_avg_count") + private Integer interruptAlarmAvgCount; + + /** + * 稳态指标评级结果(0 较差 1中等 2较好) + */ + @TableField(value = "harmonic_type_grade") + private Integer harmonicTypeGrade; + + /** + * 暂态指标评级结果(0 较差 1中等 2较好) + */ + @TableField(value = "event_type_grade") + private Integer eventTypeGrade; + +} diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountMPO.java new file mode 100644 index 000000000..bcd54b094 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatAreaAlarmCountMPO.java @@ -0,0 +1,136 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +import java.util.Date; + +/** + * 区域告警统计(月) + * @TableName r_stat_area_alarm_count_m + */ +@Data +@TableName("r_stat_area_alarm_count_m") +public class RStatAreaAlarmCountMPO { + + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 数据类型(0:主网 1:配网) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 电压偏差告警情况(0:否 1:是) + */ + @TableField(value = "vdev_alarm_info") + private Integer vdevAlarmInfo; + + /** + * 电压偏差告警超标占比 + */ + @TableField(value = "vdev_alarm_ratio") + private Float vdevAlarmRatio; + + /** + * 频率偏差告警情况(0:否 1:是) + */ + @TableField(value = "freq_alarm_info") + private Integer freqAlarmInfo; + + /** + * 频率偏差告警超标占比 + */ + @TableField(value = "freq_alarm_ratio") + private Float freqAlarmRatio; + + /** + * 三相电压不平衡度告警情况(0:否 1:是) + */ + @TableField(value = "unbalance_alarm_info") + private Integer unbalanceAlarmInfo; + + /** + * 三相电压不平衡度告警超标占比 + */ + @TableField(value = "unbalance_alarm_ratio") + private Float unbalanceAlarmRatio; + + /** + * 谐波电压告警情况(0:否 1:是) + */ + @TableField(value = "v_alarm_info") + private Integer vAlarmInfo; + + /** + * 谐波电压告警超标占比 + */ + @TableField(value = "v_alarm_ratio") + private Float vAlarmRatio; + + /** + * 闪变告警情况(0:否 1:是) + */ + @TableField(value = "flicker_alarm_info") + private Integer flickerAlarmInfo; + + /** + * 闪变告警超标占比 + */ + @TableField(value = "flicker_alarm_ratio") + private Float flickerAlarmRatio; + + /** + * 电压暂降告警情况(0:否 1:是) + */ + @TableField(value = "sag_alarm_info") + private Integer sagAlarmInfo; + + /** + * 电压暂降告警平均发生次数 + */ + @TableField(value = "sag_alarm_avg_count") + private Integer sagAlarmAvgCount; + + /** + * 短时中断告警情况(0:否 1:是) + */ + @TableField(value = "interrupt_alarm_info") + private Integer interruptAlarmInfo; + + /** + * 短时中断告警平均发生次数 + */ + @TableField(value = "interrupt_alarm_avg_count") + private Integer interruptAlarmAvgCount; + + /** + * 稳态指标评级结果(0 较差 1中等 2较好) + */ + @TableField(value = "harmonic_type_grade") + private Integer harmonicTypeGrade; + + /** + * 暂态指标评级结果(0 较差 1中等 2较好) + */ + @TableField(value = "event_type_grade") + private Integer eventTypeGrade; + + private Float wtCount; + + private Float ztCount; + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatAreaAlarmCountMPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatAreaAlarmCountMPOMapper.java new file mode 100644 index 000000000..1d4ff852e --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatAreaAlarmCountMPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountM; + +import org.apache.ibatis.annotations.Mapper; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 15:39【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RStatAreaAlarmCountMPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatAreaAlarmCountMPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatAreaAlarmCountMPOService.java new file mode 100644 index 000000000..6b13d559b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatAreaAlarmCountMPOService.java @@ -0,0 +1,13 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountM; + +/** + * @author zbj + * @since 2023-06-14 + */ + +public interface RStatAreaAlarmCountMPOService extends IMppService { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RAlarmCountServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RAlarmCountServiceImpl.java index 46064776d..bd322f3f0 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RAlarmCountServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RAlarmCountServiceImpl.java @@ -4,26 +4,29 @@ import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.pms.pojo.po.RMpMonitorAlarmCountM; import com.njcn.harmonic.pojo.po.*; +import com.njcn.prepare.harmonic.mapper.mysql.area.RMpMonitorAlarmCountMMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper; -import com.njcn.prepare.harmonic.pojo.po.RMpEventDetailDNewPO; -import com.njcn.prepare.harmonic.pojo.po.RStatPwAlarmCountWPO; -import com.njcn.prepare.harmonic.pojo.po.RStatZwAlarmCountWPO; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RAlarmCountService; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventVoltageService; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatPwAlarmCountWPOService; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatZwAlarmCountWPOService; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; +import com.njcn.prepare.harmonic.pojo.po.*; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; +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 lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.text.DecimalFormat; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; /** *

@@ -39,10 +42,18 @@ public class RAlarmCountServiceImpl implements RAlarmCountService { private final RMpTargetWarnDMapper rMpTargetWarnDMapper; + private final RMpMonitorAlarmCountMMapper rMpMonitorAlarmCountMMapper; + private final RStatZwAlarmCountWPOService rStatZwAlarmCountWPOService; private final RStatPwAlarmCountWPOService rStatPwAlarmCountWPOService; + private final RStatAreaAlarmCountMPOService rStatAreaAlarmCountMPOService; + + private final DicDataFeignClient dicDataFeignClient; + + private final RStatOrgMMapper rStatOrgMMapper; + @Override public void handler(List data, String dataDate, Integer type) { switch (type) { @@ -134,9 +145,9 @@ public class RAlarmCountServiceImpl implements RAlarmCountService { List rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper); + //获取告警监测点数 long count = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsWarn() == 1).count(); - RStatPwAlarmCountWPO rStatPwAlarmCountWPO = new RStatPwAlarmCountWPO(); rStatPwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); rStatPwAlarmCountWPO.setDataDate(localDate); @@ -157,66 +168,529 @@ public class RAlarmCountServiceImpl implements RAlarmCountService { //月表 public void rAlarmCountMHandler(List data, String dataDate, Integer type) { + List rStatAreaAlarmCountMPOS = new ArrayList<>(); + List result = new ArrayList<>(); + + DecimalFormat df = new DecimalFormat("0.00"); + + //获取日期 + Date localDate = DateUtil.parse(dataDate); + + /*获取数据类型*/ + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + QueryWrapper rMpMonitorAlarmCountMQueryWrapper = new QueryWrapper<>(); + //org表 + QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>(); + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + List collect1 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + //日表 + QueryWrapper rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>(); + rMpTargetWarnDPOQueryWrapper.clear(); + rMpTargetWarnDPOQueryWrapper. + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)); + + List rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper); + + //月表 + rMpMonitorAlarmCountMQueryWrapper.clear(); + rMpMonitorAlarmCountMQueryWrapper. + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + List rMpMonitorAlarmCountMPOS = rMpMonitorAlarmCountMMapper.selectList(rMpMonitorAlarmCountMQueryWrapper); + + //org表 + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper); + + //所有告警次数集合 + Map resultCount = new HashMap<>(); + long vdevAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVdevAlarmInfo() == 1).count(); + long freqAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFreqAlarmInfo() == 1).count(); + long unbalanceAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getUnbalanceAlarmInfo() == 1).count(); + long vAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVAlarmInfo() == 1).count(); + long flickerAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFlickerAlarmInfo() == 1).count(); + long sagAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getSagAlarmInfo() == 1).count(); + long interruptAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getInterruptAlarmInfo() == 1).count(); + if (vdevAlarmInfoCount != 0){ + resultCount.put("vdevAlarmInfo",vdevAlarmInfoCount); + } + if (freqAlarmInfoCount!=0){ + resultCount.put("freqAlarmInfo",freqAlarmInfoCount); + } + if (unbalanceAlarmInfoCount!=0){ + resultCount.put("unbalanceAlarmInfo",unbalanceAlarmInfoCount); + } + if (vAlarmInfoCount!=0){ + resultCount.put("vAlarmInfo",vAlarmInfoCount); + } + if (flickerAlarmInfoCount!=0){ + resultCount.put("flickerAlarmInfo",flickerAlarmInfoCount); + } + if (sagAlarmInfoCount!=0){ + resultCount.put("sagAlarmInfo",sagAlarmInfoCount); + } + if (interruptAlarmInfoCount!=0){ + resultCount.put("interruptAlarmInfo",interruptAlarmInfoCount); + } + + + //获取电压暂降告警次数 + long sagCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsSagWarn() == 1).count(); + //获取电压暂降监测点数(id去重) + long sagMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsSagWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count(); + + //获取短时中断告警次数 + long iaaCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsInterruptWarn() == 1).count(); + //获取短时中断监测点数(id去重) + long iaaMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsInterruptWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count(); + + //获取在线监测点数 + int size = rMpTargetWarnDPOList.size(); + //获取稳态告警监测点数 + long wtCount = rMpMonitorAlarmCountMPOS.stream() + .filter(obj -> obj.getVdevAlarmInfo() == 1 || obj.getFreqAlarmInfo() == 1 || obj.getUnbalanceAlarmInfo() == 1 + || obj.getVAlarmInfo() == 1 || obj.getFlickerAlarmInfo() == 1).count(); + //获取暂态告警监测点数 + long ztCount = rMpMonitorAlarmCountMPOS.stream() + .filter(obj -> obj.getSagAlarmInfo() == 1 || obj.getInterruptAlarmInfo() == 1).count(); + + RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO = new RStatAreaAlarmCountMPO(); + rStatAreaAlarmCountMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatAreaAlarmCountMPO.setDataDate(localDate); + rStatAreaAlarmCountMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatAreaAlarmCountMPO.setVdevAlarmInfo(resultCount.containsKey("vdevAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setFreqAlarmInfo(resultCount.containsKey("freqAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setUnbalanceAlarmInfo(resultCount.containsKey("unbalanceAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setVAlarmInfo(resultCount.containsKey("vAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setFlickerAlarmInfo(resultCount.containsKey("flickerAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setSagAlarmInfo(resultCount.containsKey("sagAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setInterruptAlarmInfo(resultCount.containsKey("interruptAlarmInfo") ? 1 : 0); + + //稳态指标评级结果(0 较差 1中等 2较好)/ 暂态指标评级结果(0 较差 1中等 2较好) + if (size == 0) { + rStatAreaAlarmCountMPO.setWtCount(0.00f); + rStatAreaAlarmCountMPO.setZtCount(0.00f); + } else { + Float wtf = wtCount / Float.parseFloat(size + ""); + rStatAreaAlarmCountMPO.setWtCount(wtf); + Float ztf = ztCount / Float.parseFloat(size + ""); + rStatAreaAlarmCountMPO.setZtCount(ztf); + } + + if (sagMCount == 0) { + rStatAreaAlarmCountMPO.setSagAlarmAvgCount(0); + } else { + Float f = sagCount / Float.parseFloat(sagMCount + ""); + rStatAreaAlarmCountMPO.setSagAlarmAvgCount(f.intValue()); + } + if (iaaMCount == 0) { + rStatAreaAlarmCountMPO.setInterruptAlarmAvgCount(0); + } else { + Float f = iaaCount / Float.parseFloat(iaaMCount + ""); + rStatAreaAlarmCountMPO.setInterruptAlarmAvgCount(f.intValue()); + } + + if (Objects.isNull(rStatOrgMPO)) { + rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f); + } else { + if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { + rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f); + } else { + //电压偏差告警占比 + if (resultCount.containsKey("vdevAlarmInfo")) { + String value = df.format(resultCount.get("vdevAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setVdevAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f); + } + //频率偏差告警占比 + if (resultCount.containsKey("freqAlarmInfo")) { + String value = df.format(resultCount.get("freqAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setFreqAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f); + } + //三项电压不平衡度告警占比 + if (resultCount.containsKey("unbalanceAlarmInfo")) { + String value = df.format(resultCount.get("unbalanceAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f); + } + //谐波电压告警占比 + if (resultCount.containsKey("vAlarmInfo")) { + String value = df.format(resultCount.get("vAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setVAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f); + } + //闪変告警占比 + if (resultCount.containsKey("flickerAlarmInfo")) { + String value = df.format(resultCount.get("flickerAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f); + } + } + } + rStatAreaAlarmCountMPOS.add(rStatAreaAlarmCountMPO); + } + + + /*配网*/ + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + List collect1 = pwMonitorIds.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + //日表 + QueryWrapper rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>(); + rMpTargetWarnDPOQueryWrapper.clear(); + rMpTargetWarnDPOQueryWrapper. + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)); + + List rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper); + + //月表 + rMpMonitorAlarmCountMQueryWrapper.clear(); + rMpMonitorAlarmCountMQueryWrapper. + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)). + eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + List rMpMonitorAlarmCountMPOS = rMpMonitorAlarmCountMMapper.selectList(rMpMonitorAlarmCountMQueryWrapper); + + //org表 + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)). + eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper); + + //所有告警次数集合 + Map resultCount = new HashMap<>(); + long vdevAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVdevAlarmInfo() == 1).count(); + long freqAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFreqAlarmInfo() == 1).count(); + long unbalanceAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getUnbalanceAlarmInfo() == 1).count(); + long vAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVAlarmInfo() == 1).count(); + long flickerAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFlickerAlarmInfo() == 1).count(); + long sagAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getSagAlarmInfo() == 1).count(); + long interruptAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getInterruptAlarmInfo() == 1).count(); + if (vdevAlarmInfoCount != 0){ + resultCount.put("vdevAlarmInfo",vdevAlarmInfoCount); + } + if (freqAlarmInfoCount!=0){ + resultCount.put("freqAlarmInfo",freqAlarmInfoCount); + } + if (unbalanceAlarmInfoCount!=0){ + resultCount.put("unbalanceAlarmInfo",unbalanceAlarmInfoCount); + } + if (vAlarmInfoCount!=0){ + resultCount.put("vAlarmInfo",vAlarmInfoCount); + } + if (flickerAlarmInfoCount!=0){ + resultCount.put("flickerAlarmInfo",flickerAlarmInfoCount); + } + if (sagAlarmInfoCount!=0){ + resultCount.put("sagAlarmInfo",sagAlarmInfoCount); + } + if (interruptAlarmInfoCount!=0){ + resultCount.put("interruptAlarmInfo",interruptAlarmInfoCount); + } + + //获取电压暂降告警次数 + long sagCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsSagWarn() == 1).count(); + //获取电压暂降监测点数(id去重) + long sagMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsSagWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count(); + + //获取短时中断告警次数 + long iaaCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsInterruptWarn() == 1).count(); + //获取短时中断监测点数(id去重) + long iaaMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsInterruptWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count(); + + //获取在线监测点数 + int size = rMpTargetWarnDPOList.size(); + //获取稳态告警监测点数 + long wtCount = rMpMonitorAlarmCountMPOS.stream() + .filter(obj -> obj.getVdevAlarmInfo() == 1 || obj.getFreqAlarmInfo() == 1 || obj.getUnbalanceAlarmInfo() == 1 + || obj.getVAlarmInfo() == 1 || obj.getFlickerAlarmInfo() == 1).count(); + //获取暂态告警监测点数 + long ztCount = rMpMonitorAlarmCountMPOS.stream() + .filter(obj -> obj.getSagAlarmInfo() == 1 || obj.getInterruptAlarmInfo() == 1).count(); + + RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO = new RStatAreaAlarmCountMPO(); + rStatAreaAlarmCountMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatAreaAlarmCountMPO.setDataDate(localDate); + rStatAreaAlarmCountMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + rStatAreaAlarmCountMPO.setVdevAlarmInfo(resultCount.containsKey("vdevAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setFreqAlarmInfo(resultCount.containsKey("freqAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setUnbalanceAlarmInfo(resultCount.containsKey("unbalanceAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setVAlarmInfo(resultCount.containsKey("vAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setFlickerAlarmInfo(resultCount.containsKey("flickerAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setSagAlarmInfo(resultCount.containsKey("sagAlarmInfo") ? 1 : 0); + rStatAreaAlarmCountMPO.setInterruptAlarmInfo(resultCount.containsKey("interruptAlarmInfo") ? 1 : 0); + + //稳态指标评级结果(0 较差 1中等 2较好)/ 暂态指标评级结果(0 较差 1中等 2较好) + if (size == 0) { + rStatAreaAlarmCountMPO.setWtCount(0.00f); + rStatAreaAlarmCountMPO.setZtCount(0.00f); + } else { + Float wtf = wtCount / Float.parseFloat(size + ""); + rStatAreaAlarmCountMPO.setWtCount(wtf); + Float ztf = ztCount / Float.parseFloat(size + ""); + rStatAreaAlarmCountMPO.setZtCount(ztf); + } + + if (sagMCount == 0) { + rStatAreaAlarmCountMPO.setSagAlarmAvgCount(0); + } else { + Float f = sagCount / Float.parseFloat(sagMCount + ""); + rStatAreaAlarmCountMPO.setSagAlarmAvgCount(f.intValue()); + } + if (iaaMCount == 0) { + rStatAreaAlarmCountMPO.setInterruptAlarmAvgCount(0); + } else { + Float f = iaaCount / Float.parseFloat(iaaMCount + ""); + rStatAreaAlarmCountMPO.setInterruptAlarmAvgCount(f.intValue()); + } + + if (Objects.isNull(rStatOrgMPO)) { + rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f); + } else { + if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { + rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f); + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f); + } else { + //电压偏差告警占比 + if (resultCount.containsKey("vdevAlarmInfo")) { + String value = df.format(resultCount.get("vdevAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setVdevAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f); + } + //频率偏差告警占比 + if (resultCount.containsKey("freqAlarmInfo")) { + String value = df.format(resultCount.get("freqAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setFreqAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f); + } + //三项电压不平衡度告警占比 + if (resultCount.containsKey("unbalanceAlarmInfo")) { + String value = df.format(resultCount.get("unbalanceAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f); + } + //谐波电压告警占比 + if (resultCount.containsKey("vAlarmInfo")) { + String value = df.format(resultCount.get("vAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setVAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f); + } + //闪変告警占比 + if (resultCount.containsKey("flickerAlarmInfo")) { + String value = df.format(resultCount.get("flickerAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(Float.parseFloat(value)); + } else { + rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f); + } + } + } + rStatAreaAlarmCountMPOS.add(rStatAreaAlarmCountMPO); + } + }); + + if (!CollectionUtils.isEmpty(rStatAreaAlarmCountMPOS)) { + //主网集合 + //稳态数据排序(大->小) + List zwwtResult = rStatAreaAlarmCountMPOS.stream().filter(obj -> obj.getDataType().equals(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId())).sorted(Comparator.comparing(RStatAreaAlarmCountMPO::getWtCount).reversed()).collect(Collectors.toList()); + List zwztResult = rStatAreaAlarmCountMPOS.stream().filter(obj -> obj.getDataType().equals(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId())).sorted(Comparator.comparing(RStatAreaAlarmCountMPO::getZtCount).reversed()).collect(Collectors.toList()); + List zwResult = new ArrayList<>(); + //配网集合 + List pwwtResult = rStatAreaAlarmCountMPOS.stream().filter(obj -> obj.getDataType().equals(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId())).sorted(Comparator.comparing(RStatAreaAlarmCountMPO::getWtCount).reversed()).collect(Collectors.toList()); + List pwztResult = rStatAreaAlarmCountMPOS.stream().filter(obj -> obj.getDataType().equals(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId())).sorted(Comparator.comparing(RStatAreaAlarmCountMPO::getZtCount).reversed()).collect(Collectors.toList()); + List pwResult = new ArrayList<>(); + + int i = 0; + //主网稳态 + if (!CollectionUtils.isEmpty(zwwtResult)) { + if (zwwtResult.size() == 1) { + zwwtResult.get(0).setHarmonicTypeGrade(0); + } else if (zwwtResult.size() == 2) { + zwwtResult.get(0).setHarmonicTypeGrade(0); + zwwtResult.get(1).setHarmonicTypeGrade(1); + } else { + i = (int) (zwwtResult.size() * 0.3); + if (i < 1) { + i = 1; + } + //循环较差的 + for (int i1 = 0; i1 < i; i1++) { + zwwtResult.get(i1).setHarmonicTypeGrade(0); + } + //循环较好的 + List list = zwwtResult.subList(zwwtResult.size() - i, zwwtResult.size()); + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : list) { + rStatAreaAlarmCountMPO.setHarmonicTypeGrade(2); + } + //循环中等的 + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : zwwtResult) { + if (Objects.isNull(rStatAreaAlarmCountMPO.getHarmonicTypeGrade())) { + rStatAreaAlarmCountMPO.setHarmonicTypeGrade(1); + } + } + } + zwResult.addAll(zwwtResult); + } + //主网暂态 + if (!CollectionUtils.isEmpty(zwztResult)) { + if (zwztResult.size() == 1) { + zwztResult.get(0).setEventTypeGrade(0); + } else if (zwztResult.size() == 2) { + zwztResult.get(0).setEventTypeGrade(0); + zwztResult.get(1).setEventTypeGrade(1); + } else { + i = (int) (zwztResult.size() * 0.3); + if (i < 1) { + i = 1; + } + //循环较差的 + for (int i1 = 0; i1 < i; i1++) { + zwztResult.get(i1).setEventTypeGrade(0); + } + //循环较好的 + List list = zwztResult.subList(zwztResult.size() - i, zwztResult.size()); + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : list) { + rStatAreaAlarmCountMPO.setEventTypeGrade(2); + } + //循环中等的 + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : zwztResult) { + if (Objects.isNull(rStatAreaAlarmCountMPO.getEventTypeGrade())) { + rStatAreaAlarmCountMPO.setEventTypeGrade(1); + } + } + } + + for (RStatAreaAlarmCountMPO po : zwResult) { + for (RStatAreaAlarmCountMPO po1 : zwztResult) { + if (Objects.equals(po.getOrgNo(), po1.getOrgNo())) { + po.setEventTypeGrade(po1.getEventTypeGrade()); + } + } + + } + } + + //配网稳态 + if (!CollectionUtils.isEmpty(pwwtResult)) { + if (pwwtResult.size() == 1) { + pwwtResult.get(0).setHarmonicTypeGrade(0); + } else if (pwwtResult.size() == 2) { + pwwtResult.get(0).setHarmonicTypeGrade(0); + pwwtResult.get(1).setHarmonicTypeGrade(1); + } else { + i = (int) (pwwtResult.size() * 0.3); + if (i < 1) { + i = 1; + } + //循环较差的 + for (int i1 = 0; i1 < i; i1++) { + pwwtResult.get(i1).setHarmonicTypeGrade(0); + } + //循环较好的 + List list = pwwtResult.subList(pwwtResult.size() - i, pwwtResult.size()); + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : list) { + rStatAreaAlarmCountMPO.setHarmonicTypeGrade(2); + } + //循环中等的 + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : pwwtResult) { + if (Objects.isNull(rStatAreaAlarmCountMPO.getHarmonicTypeGrade())) { + rStatAreaAlarmCountMPO.setHarmonicTypeGrade(1); + } + } + } + pwResult.addAll(pwwtResult); + } + //配网暂态 + if (!CollectionUtils.isEmpty(pwztResult)) { + if (pwztResult.size() == 1) { + pwztResult.get(0).setEventTypeGrade(0); + } else if (pwztResult.size() == 2) { + pwztResult.get(0).setEventTypeGrade(0); + pwztResult.get(1).setEventTypeGrade(1); + } else { + i = (int) (pwztResult.size() * 0.3); + if (i < 1) { + i = 1; + } + //循环较差的 + for (int i1 = 0; i1 < i; i1++) { + pwztResult.get(i1).setEventTypeGrade(0); + } + //循环较好的 + List list = pwztResult.subList(pwztResult.size() - i, pwztResult.size()); + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : list) { + rStatAreaAlarmCountMPO.setEventTypeGrade(2); + } + //循环中等的 + for (RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO : pwztResult) { + if (Objects.isNull(rStatAreaAlarmCountMPO.getHarmonicTypeGrade())) { + rStatAreaAlarmCountMPO.setEventTypeGrade(1); + } + } + } + for (RStatAreaAlarmCountMPO po : pwResult) { + for (RStatAreaAlarmCountMPO po1 : pwztResult) { + if (Objects.equals(po.getOrgNo(), po1.getOrgNo())) { + po.setEventTypeGrade(po1.getEventTypeGrade()); + } + } + } + } + + zwResult.addAll(pwResult); + + //拷贝 + for (RStatAreaAlarmCountMPO po : zwResult) { + RStatAreaAlarmCountM m = new RStatAreaAlarmCountM(); + BeanUtils.copyProperties(po,m); + result.add(m); + } + + if (!CollectionUtils.isEmpty(result)) { + rStatAreaAlarmCountMPOService.saveOrUpdateBatchByMultiId(result, 500); + } + } } - - - //获取监测点类型 1/2/3类字典id - private String getmeasurementType(Integer k, Map lineSortMap) { - String value = ""; - switch (k) { - case 1: - value = lineSortMap.get(DicDataEnum.ONE_LINE.getCode()).getId(); - break; - case 2: - value = lineSortMap.get(DicDataEnum.TWO_LINE.getCode()).getId(); - break; - case 3: - value = lineSortMap.get(DicDataEnum.THREE_LINE.getCode()).getId(); - break; - default: - break; - } - return value; - } - - //获取暂态各个类型发生的监测点数量及发生次数 - private List getTransientStatisData(DictData dictData, List list) { - List result = new ArrayList<>(2); - Integer value = 0; - Integer count = 0; - if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_DIP.getCode())) { - value = Integer.valueOf(list.stream().filter(temp -> temp.getSagTimes() > 0).count() + ""); - count = Integer.valueOf(list.stream().mapToInt(RMpEventDetailDNewPO::getSagTimes).sum() + ""); - } - if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_RISE.getCode())) { - value = Integer.valueOf(list.stream().filter(temp -> temp.getSwellTimes() > 0).count() + ""); - count = Integer.valueOf(list.stream().mapToInt(RMpEventDetailDNewPO::getSwellTimes).sum() + ""); - } - if (Objects.equals(dictData.getCode(), DicDataEnum.SHORT_INTERRUPTIONS.getCode())) { - value = Integer.valueOf(list.stream().filter(temp -> temp.getInterruptTimes() > 0).count() + ""); - count = Integer.valueOf(list.stream().mapToInt(RMpEventDetailDNewPO::getInterruptTimes).sum() + ""); - } - result.add(value); - result.add(count); - return result; - - } - - //获取暂态各个类型发生的监测点数量 - private Integer getStatisData(DictData dictData, String voltage, List list) { - Integer value = 0; - if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_DIP.getCode())) { - value = Integer.valueOf(list.stream().filter(temp -> temp.getSagTimes() > 0 && Objects.equals(temp.getVoltage(), voltage)).count() + ""); - } - if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_RISE.getCode())) { - value = Integer.valueOf(list.stream().filter(temp -> temp.getSwellTimes() > 0 && Objects.equals(temp.getVoltage(), voltage)).count() + ""); - } - if (Objects.equals(dictData.getCode(), DicDataEnum.SHORT_INTERRUPTIONS.getCode())) { - value = Integer.valueOf(list.stream().filter(temp -> temp.getInterruptTimes() > 0 && Objects.equals(temp.getVoltage(), voltage)).count() + ""); - } - - return value; - - } - } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatAreaAlarmCountMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatAreaAlarmCountMPOServiceImpl.java new file mode 100644 index 000000000..2117f0d76 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatAreaAlarmCountMPOServiceImpl.java @@ -0,0 +1,25 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatAreaAlarmCountMPOMapper; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatZwAlarmCountWPOMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountM; +import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountMPO; +import com.njcn.prepare.harmonic.pojo.po.RStatZwAlarmCountWPO; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatAreaAlarmCountMPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatZwAlarmCountWPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + *

+ * 终端检测监督 + *

+ * + * @author zbj + * @since 2023-06-14 + */ +@Service +@RequiredArgsConstructor +public class RStatAreaAlarmCountMPOServiceImpl extends MppServiceImpl implements RStatAreaAlarmCountMPOService { +}