diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgDVO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgDVO.java index c26fc1d63..0a6973f2f 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgDVO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgDVO.java @@ -23,6 +23,8 @@ public class RStatEventOrgDVO { private Integer ecSum; + private Integer ecMSum; + private Integer emSum; private Float emrAvg; diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgQPO.java new file mode 100644 index 000000000..0c12beb86 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgQPO.java @@ -0,0 +1,56 @@ +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.io.Serializable; +import java.time.LocalDate; + +/** + *

+ * + *

+ * + * @author zbj + * @since 2023-06-16 + */ +@Data +@TableName("r_stat_event_org_q") +public class RStatEventOrgQPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @MppMultiId(value = "org_no") + private String orgNo; + + @MppMultiId(value = "data_date") + private LocalDate dataDate; + + @MppMultiId(value = "event_type") + private String eventType; + + @TableField(value = "event_measurement_average") + private Float eventMeasurementAverage; + + @TableField(value = "event_measurement_accrued") + private Integer eventMeasurementAccrued; + + @TableField(value = "event_freq") + private Float eventFreq; + + @TableField(value = "event_count") + private Integer eventCount; + + @TableField(value = "event_measurement_ratio_average") + private Float eventMeasurementRatioAverage; + + @TableField(value = "event_measurement_ratio_accrued") + private Float eventMeasurementRatioAccrued; + + @MppMultiId(value = "data_type") + private String dataType; + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java index 4a69d539e..22eb93b43 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java @@ -3,6 +3,9 @@ package com.njcn.prepare.harmonic.mapper.mysql.area; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; /** * @@ -15,4 +18,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface RStatOrgQMapper extends MppBaseMapper { + + Map selectQlist(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("orgId") String orgId, + @Param("dataTypeId") String dataTypeId); + } \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgQMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgQMapper.xml new file mode 100644 index 000000000..a10f97d9d --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgQMapper.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgDPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgDPOMapper.java index 9d74016f7..8fd4b101f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgDPOMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgDPOMapper.java @@ -25,4 +25,8 @@ public interface RStatEventOrgDPOMapper extends MppBaseMapper @Param("orgId") String orgId, @Param("dataTypeId") String dataTypeId); + List selectQlist(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("orgId") String orgId, + @Param("dataTypeId") String dataTypeId); } \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgMPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgMPOMapper.java index 4cffab665..edc995077 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgMPOMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgMPOMapper.java @@ -19,4 +19,10 @@ import java.util.List; */ @Mapper public interface RStatEventOrgMPOMapper extends MppBaseMapper { + + List selectQlist(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("orgId") String orgId, + @Param("dataTypeId") String dataTypeId); + } \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgQPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgQPOMapper.java new file mode 100644 index 000000000..916445055 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgQPOMapper.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgQPO; +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 RStatEventOrgQPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventQPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventQPOMapper.java index 8e38d18b7..c3b6c6121 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventQPOMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventQPOMapper.java @@ -3,6 +3,10 @@ package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * Description: @@ -14,4 +18,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface RStatEventQPOMapper extends MppBaseMapper { + + List> selectQlist(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("orgId") String orgId, + @Param("dataTypeId") String dataTypeId); + } \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgDPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgDPOMapper.xml index 784ef737f..a52dbafd0 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgDPOMapper.xml +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgDPOMapper.xml @@ -18,4 +18,20 @@ event_type + + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgMPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgMPOMapper.xml new file mode 100644 index 000000000..441341e11 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventOrgMPOMapper.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventQPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventQPOMapper.xml new file mode 100644 index 000000000..b5ebe9687 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventQPOMapper.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventOrgQPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventOrgQPOService.java new file mode 100644 index 000000000..9d73d3846 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventOrgQPOService.java @@ -0,0 +1,14 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgQPO; + + +/** + * @author zbj + * @since 2023-06-16 + */ + +public interface RStatEventOrgQPOService extends IMppService { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgQPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgQPOServiceImpl.java new file mode 100644 index 000000000..7fc2a2dab --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgQPOServiceImpl.java @@ -0,0 +1,24 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgMPOMapper; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgQPOMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgMPO; +import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgQPO; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventOrgMPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventOrgQPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + *

+ * 终端检测监督 + *

+ * + * @author zbj + * @since 2023-06-14 + */ +@Service +@RequiredArgsConstructor +public class RStatEventOrgQPOServiceImpl extends MppServiceImpl implements RStatEventOrgQPOService { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgServiceImpl.java index 0a8e5d7cc..205abc708 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgServiceImpl.java @@ -14,9 +14,7 @@ import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMMapper; -import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper; -import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper; -import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgDPOMapper; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.*; import com.njcn.prepare.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; import com.njcn.system.api.DicDataFeignClient; @@ -24,6 +22,7 @@ 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; @@ -56,23 +55,31 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { private final RStatOrgMMapper rStatOrgMMapper; + private final RStatOrgQMapper rStatOrgQMapper; + private final RStatEventOrgDPOMapper rStatEventOrgDPOMapper; + private final RStatEventOrgMPOMapper rStatEventOrgMPOMapper; + private final RStatEventMPOMapper rStatEventMPOMapper; + private final RStatEventQPOMapper rStatEventQPOMapper; + private final RStatEventOrgDPOService rStatEventOrgDPOService; private final RStatEventOrgMPOService rStatEventOrgMPOService; + private final RStatEventOrgQPOService rStatEventOrgQPOService; + @Override public void handler(List data, String dataDate, Integer type) { switch (type) { /* case 1: this.rStartEventYHandler (data, dataDate, type); - break; - case 2: - this.rStartEventQHandler(data, dataDate, type); break;*/ + case 2: + this.rStartEventOrgQHandler(data, dataDate, type); + break; case 3: this.rStartEventOrgMHandler(data, dataDate, type); break; @@ -316,4 +323,192 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { } } + //季表 + public void rStartEventOrgQHandler(List data, String dataDate, Integer type) { + List rStatEventOrgQPOS = new ArrayList<>(); + DecimalFormat df = new DecimalFormat("0.00"); + Date date = DateUtil.parse(dataDate); + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + + //计算季度的开始日期和结束日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int quarter = (calendar.get(Calendar.MONTH) / 3) + 1; // 计算日期所在的季度 + calendar.set(Calendar.MONTH, (quarter - 1) * 3); // 设置季度开始的月份 + calendar.set(Calendar.DAY_OF_MONTH, 1); // 设置季度开始的日期 + String startTime = sdf.format(calendar.getTime()); // 季度开始日期 + calendar.add(Calendar.MONTH, 2); // 添加两个月,使其到季度结束的月份 + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 设置季度结束的日期 - 月份最后一天 + String endTime = sdf.format(calendar.getTime()); // 季度结束日期 + + /*获取暂态统计指标*/ + List eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); + Map eventStatisMap = eventStatis.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + /*获取数据类型*/ + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + data.forEach(deptGetChildrenMoreDTO -> { + + //主网月表 + List zwMList = rStatEventOrgMPOMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //配网月表 + List pwMList = rStatEventOrgMPOMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //主网天表 + List zwDList = rStatEventOrgDPOMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //配网天表 + List pwDList = rStatEventOrgDPOMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + //主网r_stat_event_q + List> zwEmaSum = rStatEventQPOMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //配网r_stat_event_q + List> pwEmaSum = rStatEventQPOMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + //主网r_stat_org_q + Map zwEfSum = rStatOrgQMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //配网r_stat_org_q + Map pwEfSum = rStatOrgQMapper.selectQlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + + //主网 + if (!CollectionUtils.isEmpty(zwMList) && !CollectionUtils.isEmpty(zwDList)) { + + for (RStatEventOrgDVO rStatEventOrgDVO : zwMList) { + for (RStatEventOrgDVO statEventOrgDVO : zwDList) { + if (Objects.equals(rStatEventOrgDVO.getEventType(),statEventOrgDVO.getEventType())){ + rStatEventOrgDVO.setEcSum(statEventOrgDVO.getEcSum()); + rStatEventOrgDVO.setEmSum(statEventOrgDVO.getEmSum()); + } + } + } + + //转map + Map emaMap = new HashMap<>(); + if (!CollectionUtils.isEmpty(zwEmaSum)) { + for (Map map : zwEmaSum) { + emaMap.put(map.get("eventType").toString(), Integer.valueOf(map.get("emaSum").toString())); + } + } else { + emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), 0); + emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId(), 0); + emaMap.put(eventStatisMap.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId(), 0); + } + + //循环 + zwMList.forEach(obj -> { + RStatEventOrgQPO rStatEventOrgQPO = new RStatEventOrgQPO(); + rStatEventOrgQPO.setOrgNo(obj.getOrgNo()); + rStatEventOrgQPO.setDataDate(localDate); + rStatEventOrgQPO.setEventType(obj.getEventType()); + rStatEventOrgQPO.setEventMeasurementAverage(obj.getEmrAvg()); + rStatEventOrgQPO.setEventCount(obj.getEcMSum()); + rStatEventOrgQPO.setEventMeasurementRatioAverage(obj.getEmrAvg()); + rStatEventOrgQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + if (emaMap.get(obj.getEventType()) == 0) { + rStatEventOrgQPO.setEventMeasurementAccrued(0); + } else { + rStatEventOrgQPO.setEventMeasurementAccrued(emaMap.get(obj.getEventType())); + } + if (obj.getEmSum() == 0) { + rStatEventOrgQPO.setEventFreq(0.00f); + } else { + String value = df.format(obj.getEcSum().floatValue() / obj.getEmSum()); + rStatEventOrgQPO.setEventFreq(Float.parseFloat(value)); + } + if (!CollectionUtils.isEmpty(zwEfSum)) { + if (Integer.parseInt(zwEfSum.get("efSum").toString()) == 0) { + rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f); + } else { + String value = df.format(rStatEventOrgQPO.getEventMeasurementAccrued() / Float.parseFloat(zwEfSum.get("efSum").toString())); + rStatEventOrgQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value)); + } + } else { + rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f); + } + rStatEventOrgQPOS.add(rStatEventOrgQPO); + }); + } + + //配网 + if (!CollectionUtils.isEmpty(pwMList) && !CollectionUtils.isEmpty(pwDList)) { + + for (RStatEventOrgDVO rStatEventOrgDVO : pwMList) { + for (RStatEventOrgDVO statEventOrgDVO : pwDList) { + if (Objects.equals(rStatEventOrgDVO.getEventType(),statEventOrgDVO.getEventType())){ + rStatEventOrgDVO.setEcSum(statEventOrgDVO.getEcSum()); + rStatEventOrgDVO.setEmSum(statEventOrgDVO.getEmSum()); + } + } + } + + //转map + Map emaMap = new HashMap<>(); + if (!CollectionUtils.isEmpty(pwEmaSum)) { + for (Map map : pwEmaSum) { + emaMap.put(map.get("eventType").toString(), Integer.valueOf(map.get("emaSum").toString())); + } + } else { + emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), 0); + emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId(), 0); + emaMap.put(eventStatisMap.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId(), 0); + } + + //循环 + pwMList.forEach(obj -> { + RStatEventOrgQPO rStatEventOrgQPO = new RStatEventOrgQPO(); + rStatEventOrgQPO.setOrgNo(obj.getOrgNo()); + rStatEventOrgQPO.setDataDate(localDate); + rStatEventOrgQPO.setEventType(obj.getEventType()); + rStatEventOrgQPO.setEventMeasurementAverage(obj.getEmrAvg()); + rStatEventOrgQPO.setEventCount(obj.getEcMSum()); + rStatEventOrgQPO.setEventMeasurementRatioAverage(obj.getEmrAvg()); + rStatEventOrgQPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + if (emaMap.get(obj.getEventType()) == 0) { + rStatEventOrgQPO.setEventMeasurementAccrued(0); + } else { + rStatEventOrgQPO.setEventMeasurementAccrued(emaMap.get(obj.getEventType())); + } + if (obj.getEmSum() == 0) { + rStatEventOrgQPO.setEventFreq(0.00f); + } else { + String value = df.format(obj.getEcSum() / obj.getEmSum().floatValue()); + rStatEventOrgQPO.setEventFreq(Float.parseFloat(value)); + } + if (!CollectionUtils.isEmpty(pwEfSum)) { + if (Integer.parseInt(pwEfSum.get("efSum").toString()) == 0) { + rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f); + } else { + String value = df.format(rStatEventOrgQPO.getEventMeasurementAccrued() / Float.parseFloat(pwEfSum.get("efSum").toString())); + rStatEventOrgQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value)); + } + } else { + rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f); + } + rStatEventOrgQPOS.add(rStatEventOrgQPO); + }); + } + + }); + if (!CollectionUtils.isEmpty(rStatEventOrgQPOS)) { + rStatEventOrgQPOService.saveOrUpdateBatchByMultiId(rStatEventOrgQPOS, 500); + } + } + }