From 3622696d04b06e3159fe723084b0a0256abf8159 Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Fri, 16 Jun 2023 16:14:44 +0800 Subject: [PATCH] =?UTF-8?q?zbj//1.=E5=8D=95=E4=BD=8D=E6=9A=82=E6=80=81?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=5F?= =?UTF-8?q?=E5=B9=B4=E7=BB=9F=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 --- .../harmonic/pojo/po/RStatEventOrgQPO.java | 4 +- .../harmonic/pojo/po/RStatEventOrgYPO.java | 54 +++++ .../mapper/mysql/area/RStatOrgYMapper.java | 9 + .../mysql/area/mapping/RStatOrgYMapper.xml | 15 ++ .../newalgorithm/RStatEventOrgYPOMapper.java | 17 ++ .../newalgorithm/RStatEventYPOMapper.java | 10 + .../mapping/RStatEventYPOMapper.xml | 17 ++ .../newalgorithm/RStatEventOrgYPOService.java | 14 ++ .../impl/RStatEventOrgQPOServiceImpl.java | 2 +- .../impl/RStatEventOrgServiceImpl.java | 213 +++++++++++++++++- .../impl/RStatEventOrgYPOServiceImpl.java | 21 ++ 11 files changed, 365 insertions(+), 11 deletions(-) create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgYPO.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgYMapper.xml create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgYPOMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventYPOMapper.xml create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventOrgYPOService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgYPOServiceImpl.java 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 index 0c12beb86..79b7be3bf 100644 --- 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 @@ -18,9 +18,7 @@ import java.time.LocalDate; */ @Data @TableName("r_stat_event_org_q") -public class RStatEventOrgQPO implements Serializable { - - private static final long serialVersionUID = 1L; +public class RStatEventOrgQPO { @MppMultiId(value = "org_no") private String orgNo; diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgYPO.java new file mode 100644 index 000000000..b84d0952c --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventOrgYPO.java @@ -0,0 +1,54 @@ +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_y") +public class RStatEventOrgYPO { + + @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/RStatOrgYMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java index 1a9848818..92eb3eec5 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java @@ -4,6 +4,9 @@ import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO; import com.njcn.prepare.harmonic.pojo.po.RStatOrgYPO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; /** * @@ -16,4 +19,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface RStatOrgYMapper extends MppBaseMapper { + + Map selectYlist(@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/RStatOrgYMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgYMapper.xml new file mode 100644 index 000000000..d894512a2 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgYMapper.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/RStatEventOrgYPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgYPOMapper.java new file mode 100644 index 000000000..126f74773 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventOrgYPOMapper.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.RStatEventOrgYPO; +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 RStatEventOrgYPOMapper 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/RStatEventYPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventYPOMapper.java index e0f8a1eef..0787ae347 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventYPOMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventYPOMapper.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.RStatEventYPO; 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 RStatEventYPOMapper extends MppBaseMapper { + + List> selectYlist(@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/RStatEventYPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventYPOMapper.xml new file mode 100644 index 000000000..2462968f4 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatEventYPOMapper.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/RStatEventOrgYPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventOrgYPOService.java new file mode 100644 index 000000000..f789b2604 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventOrgYPOService.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.RStatEventOrgYPO; + + +/** + * @author zbj + * @since 2023-06-16 + */ + +public interface RStatEventOrgYPOService 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 index 7fc2a2dab..9d062eb0c 100644 --- 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 @@ -16,7 +16,7 @@ import org.springframework.stereotype.Service; *

* * @author zbj - * @since 2023-06-14 + * @since 2023-06-16 */ @Service @RequiredArgsConstructor 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 205abc708..1dc156d06 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 @@ -57,6 +57,8 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { private final RStatOrgQMapper rStatOrgQMapper; + private final RStatOrgYMapper rStatOrgYMapper; + private final RStatEventOrgDPOMapper rStatEventOrgDPOMapper; private final RStatEventOrgMPOMapper rStatEventOrgMPOMapper; @@ -65,18 +67,22 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { private final RStatEventQPOMapper rStatEventQPOMapper; + private final RStatEventYPOMapper rStatEventYPOMapper; + private final RStatEventOrgDPOService rStatEventOrgDPOService; private final RStatEventOrgMPOService rStatEventOrgMPOService; private final RStatEventOrgQPOService rStatEventOrgQPOService; + private final RStatEventOrgYPOService rStatEventOrgYPOService; + @Override public void handler(List data, String dataDate, Integer type) { switch (type) { - /* case 1: - this.rStartEventYHandler (data, dataDate, type); - break;*/ + case 1: + this.rStartEventOrgYHandler(data, dataDate, type); + break; case 2: this.rStartEventOrgQHandler(data, dataDate, type); break; @@ -358,7 +364,7 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { //配网月表 List pwMList = rStatEventOrgMPOMapper.selectQlist(startTime, endTime, - deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); //主网天表 List zwDList = rStatEventOrgDPOMapper.selectQlist(startTime, endTime, @@ -384,13 +390,12 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { 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())){ + if (Objects.equals(rStatEventOrgDVO.getEventType(), statEventOrgDVO.getEventType())) { rStatEventOrgDVO.setEcSum(statEventOrgDVO.getEcSum()); rStatEventOrgDVO.setEmSum(statEventOrgDVO.getEmSum()); } @@ -450,7 +455,7 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { for (RStatEventOrgDVO rStatEventOrgDVO : pwMList) { for (RStatEventOrgDVO statEventOrgDVO : pwDList) { - if (Objects.equals(rStatEventOrgDVO.getEventType(),statEventOrgDVO.getEventType())){ + if (Objects.equals(rStatEventOrgDVO.getEventType(), statEventOrgDVO.getEventType())) { rStatEventOrgDVO.setEcSum(statEventOrgDVO.getEcSum()); rStatEventOrgDVO.setEmSum(statEventOrgDVO.getEmSum()); } @@ -511,4 +516,198 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService { } } + //年表 + public void rStartEventOrgYHandler(List data, String dataDate, Integer type) { + List rStatEventOrgYPOS = new ArrayList<>(); + DecimalFormat df = new DecimalFormat("0.00"); + Date date = DateUtil.parse(dataDate); + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + + //计算年度的开始日期和结束日期 + Calendar calendar = Calendar.getInstance(); // 获取Calendar实例 + calendar.setTime(date); // 设置Calendar对象的时间为传入的时间 + int year = calendar.get(Calendar.YEAR); // 获取本年度年份 + // 获取本年度的第一天 + Calendar firstDayOfYear = Calendar.getInstance(); + firstDayOfYear.set(Calendar.YEAR, year); + firstDayOfYear.set(Calendar.MONTH, Calendar.JANUARY); + firstDayOfYear.set(Calendar.DAY_OF_MONTH, 1); + // 获取本年度的最后一天 + Calendar lastDayOfYear = Calendar.getInstance(); + lastDayOfYear.set(Calendar.YEAR, year); + lastDayOfYear.set(Calendar.MONTH, Calendar.DECEMBER); + lastDayOfYear.set(Calendar.DAY_OF_MONTH, 31); + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String startTime = formatter.format(firstDayOfYear.getTime()); + String endTime = formatter.format(lastDayOfYear.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.DISTRIBUTION_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_y + List> zwEmaSum = rStatEventYPOMapper.selectYlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //配网r_stat_event_y + List> pwEmaSum = rStatEventYPOMapper.selectYlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + //主网r_stat_org_y + Map zwEfSum = rStatOrgYMapper.selectYlist(startTime, endTime, + deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + //配网r_stat_org_y + Map pwEfSum = rStatOrgYMapper.selectYlist(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 -> { + RStatEventOrgYPO rStatEventOrgYPO = new RStatEventOrgYPO(); + rStatEventOrgYPO.setOrgNo(obj.getOrgNo()); + rStatEventOrgYPO.setDataDate(localDate); + rStatEventOrgYPO.setEventType(obj.getEventType()); + rStatEventOrgYPO.setEventMeasurementAverage(obj.getEmrAvg()); + rStatEventOrgYPO.setEventCount(obj.getEcMSum()); + rStatEventOrgYPO.setEventMeasurementRatioAverage(obj.getEmrAvg()); + rStatEventOrgYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + if (emaMap.get(obj.getEventType()) == 0) { + rStatEventOrgYPO.setEventMeasurementAccrued(0); + } else { + rStatEventOrgYPO.setEventMeasurementAccrued(emaMap.get(obj.getEventType())); + } + if (obj.getEmSum() == 0) { + rStatEventOrgYPO.setEventFreq(0.00f); + } else { + String value = df.format(obj.getEcSum().floatValue() / obj.getEmSum()); + rStatEventOrgYPO.setEventFreq(Float.parseFloat(value)); + } + if (!CollectionUtils.isEmpty(zwEfSum)) { + if (Integer.parseInt(zwEfSum.get("efSum").toString()) == 0) { + rStatEventOrgYPO.setEventMeasurementRatioAccrued(0.00f); + } else { + String value = df.format(rStatEventOrgYPO.getEventMeasurementAccrued() / Float.parseFloat(zwEfSum.get("efSum").toString())); + rStatEventOrgYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value)); + } + } else { + rStatEventOrgYPO.setEventMeasurementRatioAccrued(0.00f); + } + rStatEventOrgYPOS.add(rStatEventOrgYPO); + }); + } + + //配网 + 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 -> { + RStatEventOrgYPO rStatEventOrgYPO = new RStatEventOrgYPO(); + rStatEventOrgYPO.setOrgNo(obj.getOrgNo()); + rStatEventOrgYPO.setDataDate(localDate); + rStatEventOrgYPO.setEventType(obj.getEventType()); + rStatEventOrgYPO.setEventMeasurementAverage(obj.getEmrAvg()); + rStatEventOrgYPO.setEventCount(obj.getEcMSum()); + rStatEventOrgYPO.setEventMeasurementRatioAverage(obj.getEmrAvg()); + rStatEventOrgYPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + if (emaMap.get(obj.getEventType()) == 0) { + rStatEventOrgYPO.setEventMeasurementAccrued(0); + } else { + rStatEventOrgYPO.setEventMeasurementAccrued(emaMap.get(obj.getEventType())); + } + if (obj.getEmSum() == 0) { + rStatEventOrgYPO.setEventFreq(0.00f); + } else { + String value = df.format(obj.getEcSum() / obj.getEmSum().floatValue()); + rStatEventOrgYPO.setEventFreq(Float.parseFloat(value)); + } + if (!CollectionUtils.isEmpty(pwEfSum)) { + if (Integer.parseInt(pwEfSum.get("efSum").toString()) == 0) { + rStatEventOrgYPO.setEventMeasurementRatioAccrued(0.00f); + } else { + String value = df.format(rStatEventOrgYPO.getEventMeasurementAccrued() / Float.parseFloat(pwEfSum.get("efSum").toString())); + rStatEventOrgYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value)); + } + } else { + rStatEventOrgYPO.setEventMeasurementRatioAccrued(0.00f); + } + rStatEventOrgYPOS.add(rStatEventOrgYPO); + }); + } + + }); + if (!CollectionUtils.isEmpty(rStatEventOrgYPOS)) { + rStatEventOrgYPOService.saveOrUpdateBatchByMultiId(rStatEventOrgYPOS, 500); + } + } + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgYPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgYPOServiceImpl.java new file mode 100644 index 000000000..e7ca78d37 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventOrgYPOServiceImpl.java @@ -0,0 +1,21 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgYPOMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgYPO; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventOrgYPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + *

+ * 终端检测监督 + *

+ * + * @author zbj + * @since 2023-06-16 + */ +@Service +@RequiredArgsConstructor +public class RStatEventOrgYPOServiceImpl extends MppServiceImpl implements RStatEventOrgYPOService { +}