diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatSubstationMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatSubstationMPO.java new file mode 100644 index 000000000..45eb5cecf --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatSubstationMPO.java @@ -0,0 +1,116 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * + * @author zbj + * @since 2023-06-20 + */ +@Data +@TableName("r_stat_substation_m") +public class RStatSubstationMPO { + + @MppMultiId(value = "data_date") + private LocalDate dataDate; + + @MppMultiId(value = "substation_id") + private String substationId; + + @TableField(value = "effective_measurement_average") + private Float effectiveMeasurementAverage; + + @TableField(value = "effective_measurement_accrued") + private Integer effectiveMeasurementAccrued; + + @TableField(value = "harmonic_over_day") + private Float harmonicOverDay; + + @TableField(value = "harmonic_count") + private Integer harmonicCount; + + @TableField(value = "freq_over_day") + private Float freqOverDay; + + @TableField(value = "freq_count") + private Integer freqCount; + + @TableField(value = "v_dev_over_day") + private Float vDevOverDay; + + @TableField(value = "v_dev_count") + private Integer vDevCount; + + @TableField(value = "v_over_day") + private Float vOverDay; + + @TableField(value = "v_count") + private Integer vCount; + + @TableField(value = "i_over_day") + private Float iOverDay; + + @TableField(value = "i_count") + private Integer iCount; + + @TableField(value = "unbalance_over_day") + private Float unbalanceOverDay; + + @TableField(value = "unbalance_count") + private Integer unbalanceCount; + + @TableField(value = "i_neg_over_day") + private Float iNegOverDay; + + @TableField(value = "i_neg_count") + private Integer iNegCount; + + @TableField(value = "flicker_over_day") + private Float flickerOverDay; + + @TableField(value = "flicker_count") + private Integer flickerCount; + + @TableField(value = "inuharm_over_day") + private Float inuharmOverDay; + + @TableField(value = "inuharm_count") + private Integer inuharmCount; + + @TableField(value = "event_count") + private Integer eventCount; + + @TableField(value = "event_freq") + private Float eventFreq; + + @TableField(value = "sag_count") + private Integer sagCount; + + @TableField(value = "sag_freq") + private Float sagFreq; + + @TableField(value = "swell_count") + private Integer swellCount; + + @TableField(value = "swell_freq") + private Float swellFreq; + + @TableField(value = "interrupt_count") + private Integer interruptCount; + + @TableField(value = "interrupt_freq") + private Float interruptFreq; + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java index 952d86079..86cd23178 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java @@ -5,6 +5,7 @@ import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * RMpPartHarmonicDetailMMapper @@ -17,4 +18,6 @@ public interface RMpPartHarmonicDetailMMapper extends MppBaseMapper getHarmonicDetailMonthOne(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("lineList") List lineList); + Map getPartSum(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List lineIds); + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java index 1f238c015..c9ebdb1ad 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java @@ -6,6 +6,7 @@ import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * RMpSurplusHarmonicDetailMMapper @@ -18,4 +19,6 @@ public interface RMpSurplusHarmonicDetailMMapper extends MppBaseMapper getHarmonicDetailMonthTwo(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("lineList") List lineList); + Map getSurplusSum(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List lineIds); + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailMMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailMMapper.xml index 2fcf9830b..5a2a4c30f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailMMapper.xml +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailMMapper.xml @@ -4,127 +4,146 @@ + + diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailMMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailMMapper.xml index 430a69084..b8331d2c5 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailMMapper.xml +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailMMapper.xml @@ -71,4 +71,18 @@ measurement_point_id + + diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationDPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationDPOMapper.java index 8fb7f6904..9de5bf0fc 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationDPOMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationDPOMapper.java @@ -1,13 +1,12 @@ package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; -import com.njcn.prepare.harmonic.pojo.po.RStatEventDPO; -import com.njcn.prepare.harmonic.pojo.po.RStatEventDVO; import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * Description: @@ -19,4 +18,7 @@ import java.util.List; */ @Mapper public interface RStatSubstationDPOMapper extends MppBaseMapper { + + Map getSumAndCount(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("substationId") String substationId); + } \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationMPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationMPOMapper.java new file mode 100644 index 000000000..32c36b9a6 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatSubstationMPOMapper.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.RStatSubstationMPO; +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 RStatSubstationMPOMapper 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/mapping/RStatSubstationDPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatSubstationDPOMapper.xml new file mode 100644 index 000000000..5daf1fcd8 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatSubstationDPOMapper.xml @@ -0,0 +1,69 @@ + + + + + + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationMPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationMPOService.java new file mode 100644 index 000000000..f514543d9 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationMPOService.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO; +import com.njcn.prepare.harmonic.pojo.po.RStatSubstationMPO; + + +/** + * @author zbj + * @since 2023-06-19 + */ + +public interface RStatSubstationMPOService extends IMppService { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationMPOServiceImpl.java new file mode 100644 index 000000000..72807f2f6 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationMPOServiceImpl.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.RStatSubstationDPOMapper; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatSubstationMPOMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO; +import com.njcn.prepare.harmonic.pojo.po.RStatSubstationMPO; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationDPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationMPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * + * @author zbj + * @since 2023-06-19 + */ +@Service +@RequiredArgsConstructor +public class RStatSubstationMPOServiceImpl extends MppServiceImpl implements RStatSubstationMPOService { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationServiceImpl.java index eddf642c0..9f217cd6a 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationServiceImpl.java @@ -12,12 +12,10 @@ import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; import com.njcn.harmonic.pojo.po.RStatOrgDPO; import com.njcn.harmonic.pojo.po.RStatOrgMPO; import com.njcn.prepare.harmonic.mapper.mysql.area.*; -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.line.RMpPartHarmonicDetailDMapper; -import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.*; 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.RStatSubstationDPOMapper; import com.njcn.prepare.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; import com.njcn.system.api.DicDataFeignClient; @@ -29,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.text.DecimalFormat; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -54,12 +53,20 @@ public class RStatSubstationServiceImpl implements RStatSubstationService { private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; + private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper; + private final RMpSurplusHarmonicDetailDMapper mpSurplusHarmonicDetailDMapper; + private final RMpSurplusHarmonicDetailMMapper mpSurplusHarmonicDetailMMapper; + private final RMpEventDetailDMapper rMpEventDetailDMapper; private final RStatSubstationDPOService rStatSubstationDPOService; + private final RStatSubstationMPOService rStatSubstationMPOService; + + private final RStatSubstationDPOMapper rStatSubstationDPOMapper; + @Override public void handler(List data, String dataDate, Integer type) { switch (type) { @@ -68,10 +75,10 @@ public class RStatSubstationServiceImpl implements RStatSubstationService { break; case 2: this.rStartEventQHandler(data, dataDate, type); - break; - case 3: - this.rStartEventMHandler(data, dataDate, type); break;*/ + case 3: + this.rStatSubstationMHandler(data, dataDate, type); + break; case 5: this.rStatSubstationDHandler(data, dataDate, type); break; @@ -323,4 +330,351 @@ public class RStatSubstationServiceImpl implements RStatSubstationService { } } + //月表 + public void rStatSubstationMHandler(List data, String dataDate, Integer type) { + List rStatSubstationMPOS = new ArrayList<>(); + 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); + + calendar.set(Calendar.DAY_OF_MONTH, 1); // 将日期设置为当月的第一天 + String startTime = sdf.format(calendar.getTime()); // 获取当月的起始日期 + + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 将日期设置为当月的最后一天 + String endTime = sdf.format(calendar.getTime());// 获取当月的结束日期 + + List zwList = new ArrayList<>(); + List pwList = new ArrayList<>(); + + for (DeptGetSubStationDTO datum : data) { + if (!CollectionUtils.isEmpty(datum.getStationIds())) { + zwList.addAll(datum.getStationIds()); + } + if (!CollectionUtils.isEmpty(datum.getPwStationIds())) { + pwList.addAll(datum.getPwStationIds()); + } + } + + List zw = zwList.stream().distinct().collect(Collectors.toList()); + List pw = pwList.stream().distinct().collect(Collectors.toList()); + + //主网 + if (!CollectionUtils.isEmpty(zw)) { + + zw.forEach(z -> { + //获取监测点对象集合 + LineDevGetBandDTO lineDevGetDTOs = commTerminalGeneralClient.substationGetLine(z).getData(); + //获取监测点id集合 + List lineIds = lineDevGetDTOs.getZwList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + //判空 + if (!CollectionUtils.isEmpty(lineIds)) { + //r_mp_target_warn_d 表中字段求和 + Map warnSum = rMpTargetWarnDMapper.getSumDate(startTime, endTime, lineIds); + //r_mp_part_harmonic_detail_m 表中字段求和 + Map partSum = rMpPartHarmonicDetailMMapper.getPartSum(startTime, endTime, lineIds); + //r_mp_surplus_harmonic_detail_m 表中字段求和 + Map surplusSum = mpSurplusHarmonicDetailMMapper.getSurplusSum(dataDate, dataDate, lineIds); + //r_stat_substation_d 表中字段求和及计数 + Map eventDetailSumAndCount = rStatSubstationDPOMapper.getSumAndCount(dataDate, dataDate, z); + + RStatSubstationMPO rStatSubstationMPO = new RStatSubstationMPO(); + rStatSubstationMPO.setDataDate(localDate); + rStatSubstationMPO.setSubstationId(z); + + if (!CollectionUtils.isEmpty(warnSum)) { + rStatSubstationMPO.setEffectiveMeasurementAccrued(warnSum.containsKey("iECount") ? + Integer.parseInt(warnSum.get("iECount").toString()) : 0); + + } else { + rStatSubstationMPO.setEffectiveMeasurementAccrued(0); + } + + if (!CollectionUtils.isEmpty(partSum)) { + rStatSubstationMPO.setHarmonicCount(partSum.containsKey("measurementOverDayCount") ? + Integer.parseInt(partSum.get("measurementOverDayCount").toString()) : 0); + + rStatSubstationMPO.setFreqCount(partSum.containsKey("freqOverDayCount") ? + Integer.parseInt(partSum.get("freqOverDayCount").toString()) : 0); + + rStatSubstationMPO.setVDevCount(partSum.containsKey("vDevOverDayCount") ? + Integer.parseInt(partSum.get("vDevOverDayCount").toString()) : 0); + + rStatSubstationMPO.setVCount(partSum.containsKey("vOverDayCount") ? + Integer.parseInt(partSum.get("vOverDayCount").toString()) : 0); + + rStatSubstationMPO.setICount(partSum.containsKey("iOverDayCount") ? + Integer.parseInt(partSum.get("iOverDayCount").toString()) : 0); + + rStatSubstationMPO.setUnbalanceCount(partSum.containsKey("unbalanceOverDayCount") ? + Integer.parseInt(partSum.get("unbalanceOverDayCount").toString()) : 0); + + rStatSubstationMPO.setINegCount(partSum.containsKey("iNegOverDayCount") ? + Integer.parseInt(partSum.get("iNegOverDayCount").toString()) : 0); + + } else { + rStatSubstationMPO.setHarmonicCount(0); + rStatSubstationMPO.setFreqCount(0); + rStatSubstationMPO.setVDevCount(0); + rStatSubstationMPO.setVCount(0); + rStatSubstationMPO.setICount(0); + rStatSubstationMPO.setUnbalanceCount(0); + rStatSubstationMPO.setINegCount(0); + } + + if (!CollectionUtils.isEmpty(surplusSum)) { + rStatSubstationMPO.setFlickerCount(surplusSum.containsKey("flickerOverDayCount") ? + Integer.parseInt(surplusSum.get("flickerOverDayCount").toString()) : 0); + + rStatSubstationMPO.setInuharmCount(surplusSum.containsKey("inuharmOverDayCount") ? + Integer.parseInt(surplusSum.get("inuharmOverDayCount").toString()) : 0); + } else { + rStatSubstationMPO.setFlickerCount(0); + rStatSubstationMPO.setInuharmCount(0); + } + + if (!CollectionUtils.isEmpty(eventDetailSumAndCount)) { + rStatSubstationMPO.setEffectiveMeasurementAverage(eventDetailSumAndCount.containsKey("effectiveMeasurementCountAvg") ? + Float.parseFloat(eventDetailSumAndCount.get("effectiveMeasurementCountAvg").toString()) : 0.0f); + + rStatSubstationMPO.setHarmonicOverDay(eventDetailSumAndCount.containsKey("harmonicCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("harmonicCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setFreqOverDay(eventDetailSumAndCount.containsKey("freqCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("freqCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setVDevOverDay(eventDetailSumAndCount.containsKey("vDevCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("vDevCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setVOverDay(eventDetailSumAndCount.containsKey("vCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("vCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setIOverDay(eventDetailSumAndCount.containsKey("iCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("iCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setUnbalanceOverDay(eventDetailSumAndCount.containsKey("unbalanceCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("unbalanceCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setINegOverDay(eventDetailSumAndCount.containsKey("iNegCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("iNegCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setFlickerOverDay(eventDetailSumAndCount.containsKey("flickerCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("flickerCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setInuharmOverDay(eventDetailSumAndCount.containsKey("inuharmCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("inuharmCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setEventCount(eventDetailSumAndCount.containsKey("eventCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("eventCountSum").toString()) : 0); + + rStatSubstationMPO.setEventFreq(eventDetailSumAndCount.containsKey("eventCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("eventCountFrequency").toString()) : 0.0f); + + rStatSubstationMPO.setSagCount(eventDetailSumAndCount.containsKey("sagCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("sagCountSum").toString()) : 0); + + rStatSubstationMPO.setSagFreq(eventDetailSumAndCount.containsKey("sagCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("sagCountFrequency").toString()) : 0.0f); + + rStatSubstationMPO.setSwellCount(eventDetailSumAndCount.containsKey("swellCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("swellCountSum").toString()) : 0); + + rStatSubstationMPO.setSwellFreq(eventDetailSumAndCount.containsKey("swellCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("swellCountFrequency").toString()) : 0.0f); + + rStatSubstationMPO.setInterruptCount(eventDetailSumAndCount.containsKey("interruptCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("interruptCountSum").toString()) : 0); + + rStatSubstationMPO.setInterruptFreq(eventDetailSumAndCount.containsKey("interruptCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("interruptCountFrequency").toString()) : 0.0f); + + } else { + rStatSubstationMPO.setEffectiveMeasurementAverage(0.0f); + rStatSubstationMPO.setHarmonicOverDay(0.0f); + rStatSubstationMPO.setFreqOverDay(0.0f); + rStatSubstationMPO.setVDevOverDay(0.0f); + rStatSubstationMPO.setVOverDay(0.0f); + rStatSubstationMPO.setIOverDay(0.0f); + rStatSubstationMPO.setUnbalanceOverDay(0.0f); + rStatSubstationMPO.setINegOverDay(0.0f); + rStatSubstationMPO.setFlickerOverDay(0.0f); + rStatSubstationMPO.setInuharmOverDay(0.0f); + rStatSubstationMPO.setEventCount(0); + rStatSubstationMPO.setEventFreq(0.0f); + rStatSubstationMPO.setSagCount(0); + rStatSubstationMPO.setSagFreq(0.0f); + rStatSubstationMPO.setSwellCount(0); + rStatSubstationMPO.setSwellFreq(0.0f); + rStatSubstationMPO.setInterruptCount(0); + rStatSubstationMPO.setInterruptFreq(0.0f); + } + rStatSubstationMPOS.add(rStatSubstationMPO); + } + }); + + } + + //配网 + if (!CollectionUtils.isEmpty(pw)) { + + pw.forEach(p -> { + //获取监测点对象集合 + LineDevGetBandDTO lineDevGetDTOs = commTerminalGeneralClient.substationGetLine(p).getData(); + //获取监测点id集合 + List lineIds = lineDevGetDTOs.getZwList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + //判空 + if (!CollectionUtils.isEmpty(lineIds)) { + //r_mp_target_warn_d 表中字段求和 + Map warnSum = rMpTargetWarnDMapper.getSumDate(startTime, endTime, lineIds); + //r_mp_part_harmonic_detail_m 表中字段求和 + Map partSum = rMpPartHarmonicDetailMMapper.getPartSum(startTime, endTime, lineIds); + //r_mp_surplus_harmonic_detail_m 表中字段求和 + Map surplusSum = mpSurplusHarmonicDetailMMapper.getSurplusSum(dataDate, dataDate, lineIds); + //r_stat_substation_d 表中字段求和及计数 + Map eventDetailSumAndCount = rStatSubstationDPOMapper.getSumAndCount(dataDate, dataDate, p); + + RStatSubstationMPO rStatSubstationMPO = new RStatSubstationMPO(); + rStatSubstationMPO.setDataDate(localDate); + rStatSubstationMPO.setSubstationId(p); + + if (!CollectionUtils.isEmpty(warnSum)) { + rStatSubstationMPO.setEffectiveMeasurementAccrued(warnSum.containsKey("iECount") ? + Integer.parseInt(warnSum.get("iECount").toString()) : 0); + + } else { + rStatSubstationMPO.setEffectiveMeasurementAccrued(0); + } + + if (!CollectionUtils.isEmpty(partSum)) { + rStatSubstationMPO.setHarmonicCount(partSum.containsKey("measurementOverDayCount") ? + Integer.parseInt(partSum.get("measurementOverDayCount").toString()) : 0); + + rStatSubstationMPO.setFreqCount(partSum.containsKey("freqOverDayCount") ? + Integer.parseInt(partSum.get("freqOverDayCount").toString()) : 0); + + rStatSubstationMPO.setVDevCount(partSum.containsKey("vDevOverDayCount") ? + Integer.parseInt(partSum.get("vDevOverDayCount").toString()) : 0); + + rStatSubstationMPO.setVCount(partSum.containsKey("vOverDayCount") ? + Integer.parseInt(partSum.get("vOverDayCount").toString()) : 0); + + rStatSubstationMPO.setICount(partSum.containsKey("iOverDayCount") ? + Integer.parseInt(partSum.get("iOverDayCount").toString()) : 0); + + rStatSubstationMPO.setUnbalanceCount(partSum.containsKey("unbalanceOverDayCount") ? + Integer.parseInt(partSum.get("unbalanceOverDayCount").toString()) : 0); + + rStatSubstationMPO.setINegCount(partSum.containsKey("iNegOverDayCount") ? + Integer.parseInt(partSum.get("iNegOverDayCount").toString()) : 0); + + } else { + rStatSubstationMPO.setHarmonicCount(0); + rStatSubstationMPO.setFreqCount(0); + rStatSubstationMPO.setVDevCount(0); + rStatSubstationMPO.setVCount(0); + rStatSubstationMPO.setICount(0); + rStatSubstationMPO.setUnbalanceCount(0); + rStatSubstationMPO.setINegCount(0); + } + + if (!CollectionUtils.isEmpty(surplusSum)) { + rStatSubstationMPO.setFlickerCount(surplusSum.containsKey("flickerOverDayCount") ? + Integer.parseInt(surplusSum.get("flickerOverDayCount").toString()) : 0); + + rStatSubstationMPO.setInuharmCount(surplusSum.containsKey("inuharmOverDayCount") ? + Integer.parseInt(surplusSum.get("inuharmOverDayCount").toString()) : 0); + } else { + rStatSubstationMPO.setFlickerCount(0); + rStatSubstationMPO.setInuharmCount(0); + } + + if (!CollectionUtils.isEmpty(eventDetailSumAndCount)) { + rStatSubstationMPO.setEffectiveMeasurementAverage(eventDetailSumAndCount.containsKey("effectiveMeasurementCountAvg") ? + Float.parseFloat(eventDetailSumAndCount.get("effectiveMeasurementCountAvg").toString()) : 0.0f); + + rStatSubstationMPO.setHarmonicOverDay(eventDetailSumAndCount.containsKey("harmonicCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("harmonicCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setFreqOverDay(eventDetailSumAndCount.containsKey("freqCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("freqCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setVDevOverDay(eventDetailSumAndCount.containsKey("vDevCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("vDevCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setVOverDay(eventDetailSumAndCount.containsKey("vCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("vCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setIOverDay(eventDetailSumAndCount.containsKey("iCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("iCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setUnbalanceOverDay(eventDetailSumAndCount.containsKey("unbalanceCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("unbalanceCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setINegOverDay(eventDetailSumAndCount.containsKey("iNegCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("iNegCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setFlickerOverDay(eventDetailSumAndCount.containsKey("flickerCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("flickerCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setInuharmOverDay(eventDetailSumAndCount.containsKey("inuharmCountCount") ? + Float.parseFloat(eventDetailSumAndCount.get("inuharmCountCount").toString()) : 0.0f); + + rStatSubstationMPO.setEventCount(eventDetailSumAndCount.containsKey("eventCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("eventCountSum").toString()) : 0); + + rStatSubstationMPO.setEventFreq(eventDetailSumAndCount.containsKey("eventCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("eventCountFrequency").toString()) : 0.0f); + + rStatSubstationMPO.setSagCount(eventDetailSumAndCount.containsKey("sagCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("sagCountSum").toString()) : 0); + + rStatSubstationMPO.setSagFreq(eventDetailSumAndCount.containsKey("sagCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("sagCountFrequency").toString()) : 0.0f); + + rStatSubstationMPO.setSwellCount(eventDetailSumAndCount.containsKey("swellCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("swellCountSum").toString()) : 0); + + rStatSubstationMPO.setSwellFreq(eventDetailSumAndCount.containsKey("swellCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("swellCountFrequency").toString()) : 0.0f); + + rStatSubstationMPO.setInterruptCount(eventDetailSumAndCount.containsKey("interruptCountSum") ? + Integer.parseInt(eventDetailSumAndCount.get("interruptCountSum").toString()) : 0); + + rStatSubstationMPO.setInterruptFreq(eventDetailSumAndCount.containsKey("interruptCountFrequency") ? + Float.parseFloat(eventDetailSumAndCount.get("interruptCountFrequency").toString()) : 0.0f); + + } else { + rStatSubstationMPO.setEffectiveMeasurementAverage(0.0f); + rStatSubstationMPO.setHarmonicOverDay(0.0f); + rStatSubstationMPO.setFreqOverDay(0.0f); + rStatSubstationMPO.setVDevOverDay(0.0f); + rStatSubstationMPO.setVOverDay(0.0f); + rStatSubstationMPO.setIOverDay(0.0f); + rStatSubstationMPO.setUnbalanceOverDay(0.0f); + rStatSubstationMPO.setINegOverDay(0.0f); + rStatSubstationMPO.setFlickerOverDay(0.0f); + rStatSubstationMPO.setInuharmOverDay(0.0f); + rStatSubstationMPO.setEventCount(0); + rStatSubstationMPO.setEventFreq(0.0f); + rStatSubstationMPO.setSagCount(0); + rStatSubstationMPO.setSagFreq(0.0f); + rStatSubstationMPO.setSwellCount(0); + rStatSubstationMPO.setSwellFreq(0.0f); + rStatSubstationMPO.setInterruptCount(0); + rStatSubstationMPO.setInterruptFreq(0.0f); + } + rStatSubstationMPOS.add(rStatSubstationMPO); + } + }); + + } + + if (!CollectionUtils.isEmpty(rStatSubstationMPOS)) { + rStatSubstationMPOService.saveOrUpdateBatchByMultiId(rStatSubstationMPOS, 500); + } + } + }