From 389ab0ec99c2e961afa5209335f53cfc9bcf460a Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Fri, 9 Jun 2023 13:38:27 +0800 Subject: [PATCH] =?UTF-8?q?zbj//1.=E5=8D=95=E4=BD=8D=E7=9B=91=E6=B5=8B?= =?UTF-8?q?=E7=82=B9=E6=9A=82=E6=80=81=E6=8C=87=E6=A0=87=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=20=E5=B9=B4=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/RStatEventYPO.java | 54 ++++ .../prepare/harmonic/pojo/po/RStatOrgYPO.java | 85 +++++++ .../mapper/mysql/area/RStatOrgYMapper.java | 19 ++ .../newalgorithm/RStatEventYPOMapper.java | 17 ++ .../newalgorithm/RStatEventYPOService.java | 14 ++ .../impl/RStatEventServiceImpl.java | 231 ++++++++++++++++-- .../impl/RStatEventYPOServiceImpl.java | 24 ++ 7 files changed, 428 insertions(+), 16 deletions(-) create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventYPO.java create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventYPOMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventYPOService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventYPOServiceImpl.java diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventYPO.java new file mode 100644 index 000000000..c9751c2a5 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventYPO.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.time.LocalDate; + +/** + *

+ * + *

+ * + * @author zbj + * @since 2023-06-09 + */ +@Data +@TableName("r_stat_event_y") +public class RStatEventYPO { + + @MppMultiId(value = "org_no") + private String orgNo; + + @MppMultiId(value = "data_date") + private LocalDate dataDate; + + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + @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-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java new file mode 100644 index 000000000..e64fdff24 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java @@ -0,0 +1,85 @@ +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.time.LocalDate; + +/** + *

+ * 区域分类统计季表 + *

+ * + * @author zbj + * @since 2023-06-09 + */ +@Data +@TableName("r_stat_org_y") +public class RStatOrgYPO { + + @MppMultiId(value = "org_no") + private String orgNo; + + @MppMultiId(value = "data_date") + private LocalDate dataDate; + + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + @TableField(value = "all_count") + private Integer allCount; + + @TableField(value = "effective_measurement_average") + private Integer effectiveMeasurementAverage; + + @TableField(value = "effective_measurement_accrued") + private Integer effectiveMeasurementAccrued; + + @TableField(value = "harmonic_measurement_average") + private Integer harmonicMeasurementAverage; + + @TableField(value = "harmonic_measurement_accrued") + private Integer harmonicMeasurementAccrued; + + @TableField(value = "harmonic_measurement_ratio_average") + private Float harmonicMeasurementRatioAverage; + + @TableField(value = "average_over_day") + private Float averageOverDay; + + @TableField(value = "freq_pass_rate") + private Float freqPassRate; + + @TableField(value = "v_dev_pass_rate") + private Float vDevPassRate; + + @TableField(value = "flicker_pass_rate") + private Float flickerPassRate; + + @TableField(value = "event_measurement_average") + private Integer eventMeasurementAverage; + + @TableField(value = "event_measurement_accrued") + private Integer eventMeasurementAccrued; + + @TableField(value = "event_measurement_average") + private Float eventMeasurementRatioAverage; + + @TableField(value = "event_freq") + private Float eventFreq; + + @TableField(value = "event_count") + private Integer eventCount; + + @TableField(value = "should_count") + private Integer shouldCount; + + @TableField(value = "warn_count") + private Integer warnCount; + + @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 new file mode 100644 index 000000000..1a9848818 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java @@ -0,0 +1,19 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +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; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/14 16:17【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RStatOrgYMapper 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 new file mode 100644 index 000000000..e0f8a1eef --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventYPOMapper.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.RStatEventYPO; +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 RStatEventYPOMapper 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/RStatEventYPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventYPOService.java new file mode 100644 index 000000000..be368742a --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventYPOService.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.RStatEventYPO; + + +/** + * @author zbj + * @since 2023-06-09 + */ + +public interface RStatEventYPOService extends IMppService { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java index dab416ec5..abf30ca15 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java @@ -12,18 +12,13 @@ import com.njcn.harmonic.pojo.po.RStatOrgMPO; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; 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.pojo.po.RStatEventDPO; -import com.njcn.prepare.harmonic.pojo.po.RStatEventMPO; -import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO; -import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventDPOService; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventMPOService; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventQPOService; -import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventService; +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; @@ -36,6 +31,7 @@ import org.springframework.util.CollectionUtils; import java.text.DecimalFormat; import java.time.LocalDate; import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -66,18 +62,22 @@ public class RStatEventServiceImpl implements RStatEventService { private final RStatEventMPOService rStatEventMPOService; - private final RStatEventQPOService rStatEventQPOService; - private final RStatEventDPOMapper rStatEventDPOMapper; private final RStatEventMPOMapper rStatEventMPOMapper; + private final RStatEventQPOService rStatEventQPOService; + + private final RStatEventYPOService rStatEventYPOService; + private final RStatOrgDMapper rStatOrgDMapper; private final RStatOrgMMapper rStatOrgMMapper; private final RStatOrgQMapper rStatOrgQMapper; + private final RStatOrgYMapper rStatOrgYMapper; + @Override public void handler(List data, String dataDate, Integer type) { switch (type) { @@ -703,11 +703,14 @@ public class RStatEventServiceImpl implements RStatEventService { //年表 public void rStartEventYHandler(List data, String dataDate, Integer type) { - List rStatEventDPOList = new ArrayList<>(); + List rStatEventYPOList = new ArrayList<>(); DecimalFormat df = new DecimalFormat("0.00"); Date date = DateUtil.parse(dataDate); LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - + // 获取当前年的起始日期和结束日期 + LocalDate date1 = LocalDate.parse(dataDate, DateTimeFormatter.ISO_LOCAL_DATE); + LocalDate startDate = date1.withDayOfYear(1); + LocalDate endDate = date1.withDayOfYear(365).plusDays(1); /*获取暂态统计指标*/ List eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); @@ -719,8 +722,14 @@ public class RStatEventServiceImpl implements RStatEventService { List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); - QueryWrapper rMpEventDetailDPOQueryWrapper = new QueryWrapper<>(); - QueryWrapper rStatOrgDPOQueryWrapper = new QueryWrapper<>(); + //详情表 + QueryWrapper rMpEventDetailMPOQueryWrapper = new QueryWrapper<>(); + //org年表 + QueryWrapper rStatOrgYPOQueryWrapper = new QueryWrapper<>(); + //天表 + QueryWrapper rStatEventDPOQueryWrapper = new QueryWrapper<>(); + //月表 + QueryWrapper rStatEventMPOQueryWrapper = new QueryWrapper<>(); data.forEach(deptGetChildrenMoreDTO -> { @@ -731,6 +740,101 @@ public class RStatEventServiceImpl implements RStatEventService { collect.forEach((k, v) -> { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + rMpEventDetailMPOQueryWrapper.clear(); + rMpEventDetailMPOQueryWrapper. + in("measurement_point_id", collect1). + between("data_date", startDate, endDate); + List rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper); + + //年表 + rStatOrgYPOQueryWrapper.clear(); + rStatOrgYPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + between("data_date", startDate, endDate); + + RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper); + + //天表 + rStatEventDPOQueryWrapper.clear(); + rStatEventDPOQueryWrapper. + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + between("data_date", startDate, endDate). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + List rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper); + + //月表 + rStatEventMPOQueryWrapper.clear(); + rStatEventMPOQueryWrapper. + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + between("data_date", startDate, endDate). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + List rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper); + + //求各个类型的平均值(月表) + Map avgEMM = rStatEventMPO.stream() + .collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage))); + + //event_measurement的和 + Map sumEM = rStatEventDPO.stream() + .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement))); + + //event_count(天表) + Map sumEC = rStatEventDPO.stream() + .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount))); + + //event_count(月表) + Map sumECM = rStatEventMPO.stream() + .collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount))); + + //event_measurement_ratio_average(月表) + Map avgEMRM = rStatEventMPO.stream() + .collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage))); + + + eventStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode()) + || Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode()) + || Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode()) + || Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) { + return; + } + //累计发生暂态监测点数 + Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS); + + RStatEventYPO rStatEventYPO = new RStatEventYPO(); + rStatEventYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatEventYPO.setDataDate(localDate); + rStatEventYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + rStatEventYPO.setEventType(dictData.getId()); + rStatEventYPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId())))); + // todo + rStatEventYPO.setEventMeasurementAccrued(statisData); + rStatEventYPO.setEventCount(sumECM.get(dictData.getId())); + rStatEventYPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId())))); + rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + + if (sumEM.get(dictData.getId()) == 0) { + rStatEventYPO.setEventFreq(1.00f); + } else { + String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId())); + rStatEventYPO.setEventFreq(Float.parseFloat(value)); + } + if (Objects.isNull(rStatOrgYPO)) { + rStatEventYPO.setEventMeasurementRatioAccrued(1.00f); + } else { + if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) { + rStatEventYPO.setEventMeasurementRatioAccrued(1.00f); + } else { + String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued()); + rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value)); + } + } + rStatEventYPOList.add(rStatEventYPO); + }); }); } @@ -741,12 +845,107 @@ public class RStatEventServiceImpl implements RStatEventService { collect.forEach((k, v) -> { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + rMpEventDetailMPOQueryWrapper.clear(); + rMpEventDetailMPOQueryWrapper. + in("measurement_point_id", collect1). + between("data_date", startDate, endDate); + List rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper); + + //年表 + rStatOrgYPOQueryWrapper.clear(); + rStatOrgYPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()). + between("data_date", startDate, endDate); + + RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper); + + //天表 + rStatEventDPOQueryWrapper.clear(); + rStatEventDPOQueryWrapper. + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + between("data_date", startDate, endDate). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + List rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper); + + //月表 + rStatEventMPOQueryWrapper.clear(); + rStatEventMPOQueryWrapper. + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + between("data_date", startDate, endDate). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + List rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper); + + //求各个类型的平均值(月表) + Map avgEMM = rStatEventMPO.stream() + .collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage))); + + //event_measurement的和 + Map sumEM = rStatEventDPO.stream() + .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement))); + + //event_count(天表) + Map sumEC = rStatEventDPO.stream() + .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount))); + + //event_count(月表) + Map sumECM = rStatEventMPO.stream() + .collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount))); + + //event_measurement_ratio_average(月表) + Map avgEMRM = rStatEventMPO.stream() + .collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage))); + + + eventStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode()) + || Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode()) + || Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode()) + || Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) { + return; + } + //累计发生暂态监测点数 + Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS); + + RStatEventYPO rStatEventYPO = new RStatEventYPO(); + rStatEventYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatEventYPO.setDataDate(localDate); + rStatEventYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + rStatEventYPO.setEventType(dictData.getId()); + rStatEventYPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId())))); + // todo + rStatEventYPO.setEventMeasurementAccrued(statisData); + rStatEventYPO.setEventCount(sumECM.get(dictData.getId())); + rStatEventYPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId())))); + rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + + if (sumEM.get(dictData.getId()) == 0) { + rStatEventYPO.setEventFreq(1.00f); + } else { + String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId())); + rStatEventYPO.setEventFreq(Float.parseFloat(value)); + } + if (Objects.isNull(rStatOrgYPO)) { + rStatEventYPO.setEventMeasurementRatioAccrued(1.00f); + } else { + if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) { + rStatEventYPO.setEventMeasurementRatioAccrued(1.00f); + } else { + String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued()); + rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value)); + } + } + rStatEventYPOList.add(rStatEventYPO); + }); }); } }); - if (!CollectionUtils.isEmpty(rStatEventDPOList)) { - rStatEventDPOService.saveOrUpdateBatchByMultiId(rStatEventDPOList, 500); + if (!CollectionUtils.isEmpty(rStatEventYPOList)) { + rStatEventYPOService.saveOrUpdateBatchByMultiId(rStatEventYPOList, 500); } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventYPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventYPOServiceImpl.java new file mode 100644 index 000000000..a57266087 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventYPOServiceImpl.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.RStatEventQPOMapper; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventYPOMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO; +import com.njcn.prepare.harmonic.pojo.po.RStatEventYPO; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventQPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventYPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + *

+ * 终端检测监督 + *

+ * + * @author zbj + * @since 2023-06-09 + */ +@Service +@RequiredArgsConstructor +public class RStatEventYPOServiceImpl extends MppServiceImpl implements RStatEventYPOService { +}