diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RMpEventDetailMNewPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RMpEventDetailMNewPO.java
new file mode 100644
index 000000000..39cb97587
--- /dev/null
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RMpEventDetailMNewPO.java
@@ -0,0 +1,51 @@
+package com.njcn.harmonic.pojo.po;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ * Description:
+ * 接口文档访问地址:http://serverIP:port/swagger-ui.html
+ * Date: 2022/12/28 14:58【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+
+/**
+ * 监测点暂态指标超标明细月表
+ */
+@Data
+public class RMpEventDetailMNewPO {
+ /**
+ * 监测点ID
+ */
+ private String measurementPointId;
+
+ /**
+ * 时间
+ */
+ private Date dataDate;
+
+ /**
+ * 电压暂升发生次数
+ */
+ private Integer swellTimes;
+
+ /**
+ * 电压暂降发生次数
+ */
+ private Integer sagTimes;
+
+ /**
+ * 短时中断发生次数
+ */
+ private Integer interruptTimes;
+
+ /**
+ * 电压等级
+ */
+ private String voltage;
+}
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventVoltageMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventVoltageMPO.java
new file mode 100644
index 000000000..99daab53a
--- /dev/null
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatEventVoltageMPO.java
@@ -0,0 +1,57 @@
+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-12
+ */
+@Data
+@TableName("r_stat_event_voltage_m")
+public class RStatEventVoltageMPO {
+
+ @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;
+
+ @MppMultiId(value = "voltage_type")
+ private String voltageType;
+
+ @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/newalgorithm/RStatEventVoltageMPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventVoltageMPOMapper.java
new file mode 100644
index 000000000..38ccd44ee
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatEventVoltageMPOMapper.java
@@ -0,0 +1,18 @@
+package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
+
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import com.njcn.prepare.harmonic.pojo.po.RStatEventMPO;
+import com.njcn.prepare.harmonic.pojo.po.RStatEventVoltageMPO;
+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 RStatEventVoltageMPOMapper 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/RStatEventVoltageMPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventVoltageMPOService.java
new file mode 100644
index 000000000..635f2194f
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatEventVoltageMPOService.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.RStatEventVoltageMPO;
+
+
+/**
+ * @author zbj
+ * @since 2023-06-12
+ */
+
+public interface RStatEventVoltageMPOService extends IMppService {
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageMPOServiceImpl.java
new file mode 100644
index 000000000..fa2b3b9cc
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageMPOServiceImpl.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.RStatEventVoltageMPOMapper;
+import com.njcn.prepare.harmonic.pojo.po.RStatEventVoltageMPO;
+import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventVoltageMPOService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 终端检测监督
+ *
+ *
+ * @author zbj
+ * @since 2023-06-08
+ */
+@Service
+@RequiredArgsConstructor
+public class RStatEventVoltageMPOServiceImpl extends MppServiceImpl implements RStatEventVoltageMPOService {
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageServiceImpl.java
index 9fc0cd826..592ea7381 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventVoltageServiceImpl.java
@@ -4,15 +4,13 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
-import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
-import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
-import com.njcn.harmonic.pojo.po.RStatOrgDPO;
-import com.njcn.harmonic.pojo.po.RStatOrgMPO;
+import com.njcn.harmonic.pojo.po.*;
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.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.RStatEventVoltageDPOMapper;
import com.njcn.prepare.harmonic.pojo.po.*;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
import com.njcn.system.api.DicDataFeignClient;
@@ -53,9 +51,9 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
private final RStatEventVoltageDPOService rStatEventVoltageDPOService;
- private final RStatEventMPOService rStatEventMPOService;
+ private final RStatEventVoltageMPOService rStatEventVoltageMPOService;
- private final RStatEventDPOMapper rStatEventDPOMapper;
+ private final RStatEventVoltageDPOMapper rStatEventVoltageDPOMapper;
private final RStatOrgDMapper rStatOrgDMapper;
@@ -260,7 +258,7 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
//月表
public void rStartEventVoltageMHandler(List data, String dataDate, Integer type) {
- List rStatEventMPOList = new ArrayList<>();
+ List rStatEventVoltageMPOS = new ArrayList<>();
DecimalFormat df = new DecimalFormat("0.00");
Date date = DateUtil.parse(dataDate);
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
@@ -276,12 +274,16 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
+ /*获取监测点电压等级*/
+ List voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
+ Map voltageMap = voltageList.stream().collect(Collectors.toMap(DictData::getValue, dictData -> dictData));
+
//详情表
QueryWrapper rMpEventDetailMPOQueryWrapper = new QueryWrapper<>();
//org表
QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>();
//天表
- QueryWrapper rStatEventDPOQueryWrapper = new QueryWrapper<>();
+ QueryWrapper rStatEventVoltageDPOQueryWrapper = new QueryWrapper<>();
data.forEach(deptGetChildrenMoreDTO -> {
@@ -307,32 +309,49 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
//天表
- rStatEventDPOQueryWrapper.clear();
- rStatEventDPOQueryWrapper.
+ rStatEventVoltageDPOQueryWrapper.clear();
+ rStatEventVoltageDPOQueryWrapper.
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)).
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
- List rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
+ List rStatEventVoltageDPOS = rStatEventVoltageDPOMapper.selectList(rStatEventVoltageDPOQueryWrapper);
//求各个类型的平均值
- Map avgEM = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingInt(RStatEventDPO::getEventMeasurement)));
+ Map> avgEM = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.averagingInt(RStatEventVoltageDPO::getEventMeasurement))));
//event_measurement的和
- Map sumEM = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
+ Map> sumEM = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.summingInt(RStatEventVoltageDPO::getEventMeasurement))));
//event_count
- Map sumEC = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
+ Map> sumEC = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.summingInt(RStatEventVoltageDPO::getEventCount))));
//event_measurement_ratio
- Map avgEMR = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingDouble(RStatEventDPO::getEventMeasurementRatio)));
-
+ Map> avgEMR = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.averagingDouble(RStatEventVoltageDPO::getEventMeasurementRatio))));
+ //循环拷贝
+ List poList = new ArrayList<>();
+ for (RMpEventDetailMPO rMpEventDetailMPO : rMpEventDetailMPOS) {
+ RMpEventDetailMNewPO po = new RMpEventDetailMNewPO();
+ BeanUtils.copyProperties(rMpEventDetailMPO, po);
+ poList.add(po);
+ }
+ for (RMpEventDetailMNewPO rMpEventDetailMNewPO : poList) {
+ for (LineDevGetDTO lineDevGetDTO : v) {
+ if (Objects.equals(lineDevGetDTO.getPointId(), rMpEventDetailMNewPO.getMeasurementPointId())) {
+ rMpEventDetailMNewPO.setVoltage(lineDevGetDTO.getVoltageLevel());
+ }
+ }
+ }
eventStatis.forEach(dictData -> {
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
@@ -340,37 +359,46 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
return;
}
- //累计发生暂态监测点数
- Integer statisData = getStatisData(dictData, rMpEventDetailMPOS);
-
- RStatEventMPO rStatEventMPO = new RStatEventMPO();
- rStatEventMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
- rStatEventMPO.setDataDate(localDate);
- rStatEventMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
- rStatEventMPO.setEventType(dictData.getId());
- rStatEventMPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEM.get(dictData.getId()))));
- rStatEventMPO.setEventMeasurementAccrued(statisData);
- rStatEventMPO.setEventCount(sumEC.get(dictData.getId()));
- rStatEventMPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMR.get(dictData.getId()))));
- rStatEventMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
-
- if (sumEM.get(dictData.getId()) == 0) {
- rStatEventMPO.setEventFreq(1.00f);
- } else {
- String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()));
- rStatEventMPO.setEventFreq(Float.parseFloat(value));
- }
- if (Objects.isNull(rStatOrgMPO)) {
- rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
- } else {
- if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
- rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
- } else {
- String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued());
- rStatEventMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
+ //电压
+ voltageMap.forEach((k1, v1) -> {
+ List poResult = poList.stream().filter(p -> Objects.equals(p.getVoltage(), k1)).collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(poResult)) {
+ return;
}
- }
- rStatEventMPOList.add(rStatEventMPO);
+ //累计发生暂态监测点数
+ Integer statisData = getStatisData(dictData, k1, poResult);
+
+ RStatEventVoltageMPO rStatEventVoltageMPO = new RStatEventVoltageMPO();
+ rStatEventVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
+ rStatEventVoltageMPO.setDataDate(localDate);
+ rStatEventVoltageMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
+ rStatEventVoltageMPO.setEventType(dictData.getId());
+ rStatEventVoltageMPO.setVoltageType(v1.getId());
+
+ rStatEventVoltageMPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEM.get(dictData.getId()).get(v1.getId()))));
+ rStatEventVoltageMPO.setEventMeasurementAccrued(statisData);
+ rStatEventVoltageMPO.setEventCount(sumEC.get(dictData.getId()).get(v1.getId()));
+ rStatEventVoltageMPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMR.get(dictData.getId()).get(v1.getId()))));
+ rStatEventVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
+
+ if (sumEM.get(dictData.getId()).get(v1.getId()) == 0) {
+ rStatEventVoltageMPO.setEventFreq(1.00f);
+ } else {
+ String value = df.format(sumEC.get(dictData.getId()).get(v1.getId()) / sumEM.get(dictData.getId()).get(v1.getId()));
+ rStatEventVoltageMPO.setEventFreq(Float.parseFloat(value));
+ }
+ if (Objects.isNull(rStatOrgMPO)) {
+ rStatEventVoltageMPO.setEventMeasurementRatioAccrued(1.00f);
+ } else {
+ if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
+ rStatEventVoltageMPO.setEventMeasurementRatioAccrued(1.00f);
+ } else {
+ String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued());
+ rStatEventVoltageMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
+ }
+ }
+ rStatEventVoltageMPOS.add(rStatEventVoltageMPO);
+ });
});
});
}
@@ -381,7 +409,6 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
collect.forEach((k, v) -> {
List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
-
rMpEventDetailMPOQueryWrapper.clear();
rMpEventDetailMPOQueryWrapper.
in("measurement_point_id", collect1).
@@ -397,32 +424,49 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
//天表
- rStatEventDPOQueryWrapper.clear();
- rStatEventDPOQueryWrapper.
+ rStatEventVoltageDPOQueryWrapper.clear();
+ rStatEventVoltageDPOQueryWrapper.
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)).
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
- List rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
+ List rStatEventVoltageDPOS = rStatEventVoltageDPOMapper.selectList(rStatEventVoltageDPOQueryWrapper);
//求各个类型的平均值
- Map avgEM = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingInt(RStatEventDPO::getEventMeasurement)));
+ Map> avgEM = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.averagingInt(RStatEventVoltageDPO::getEventMeasurement))));
//event_measurement的和
- Map sumEM = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
+ Map> sumEM = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.summingInt(RStatEventVoltageDPO::getEventMeasurement))));
//event_count
- Map sumEC = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
+ Map> sumEC = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.summingInt(RStatEventVoltageDPO::getEventCount))));
//event_measurement_ratio
- Map avgEMR = rStatEventDPO.stream()
- .collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingDouble(RStatEventDPO::getEventMeasurementRatio)));
-
+ Map> avgEMR = rStatEventVoltageDPOS.stream()
+ .collect(Collectors.groupingBy(RStatEventVoltageDPO::getEventType,
+ Collectors.groupingBy(RStatEventVoltageDPO::getVoltageType, Collectors.averagingDouble(RStatEventVoltageDPO::getEventMeasurementRatio))));
+ //循环拷贝
+ List poList = new ArrayList<>();
+ for (RMpEventDetailMPO rMpEventDetailMPO : rMpEventDetailMPOS) {
+ RMpEventDetailMNewPO po = new RMpEventDetailMNewPO();
+ BeanUtils.copyProperties(rMpEventDetailMPO, po);
+ poList.add(po);
+ }
+ for (RMpEventDetailMNewPO rMpEventDetailMNewPO : poList) {
+ for (LineDevGetDTO lineDevGetDTO : v) {
+ if (Objects.equals(lineDevGetDTO.getPointId(), rMpEventDetailMNewPO.getMeasurementPointId())) {
+ rMpEventDetailMNewPO.setVoltage(lineDevGetDTO.getVoltageLevel());
+ }
+ }
+ }
eventStatis.forEach(dictData -> {
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
@@ -430,44 +474,53 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
return;
}
- //累计发生暂态监测点数
- Integer statisData = getStatisData(dictData, rMpEventDetailMPOS);
-
- RStatEventMPO rStatEventMPO = new RStatEventMPO();
- rStatEventMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
- rStatEventMPO.setDataDate(localDate);
- rStatEventMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
- rStatEventMPO.setEventType(dictData.getId());
- rStatEventMPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEM.get(dictData.getId()))));
- rStatEventMPO.setEventMeasurementAccrued(statisData);
- rStatEventMPO.setEventCount(sumEC.get(dictData.getId()));
- rStatEventMPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMR.get(dictData.getId()))));
- rStatEventMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
-
- if (sumEM.get(dictData.getId()) == 0) {
- rStatEventMPO.setEventFreq(1.00f);
- } else {
- String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()));
- rStatEventMPO.setEventFreq(Float.parseFloat(value));
- }
- if (Objects.isNull(rStatOrgMPO)) {
- rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
- } else {
- if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
- rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
- } else {
- String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued());
- rStatEventMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
+ //电压
+ voltageMap.forEach((k1, v1) -> {
+ List poResult = poList.stream().filter(p -> Objects.equals(p.getVoltage(), k1)).collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(poResult)) {
+ return;
}
- }
- rStatEventMPOList.add(rStatEventMPO);
+ //累计发生暂态监测点数
+ Integer statisData = getStatisData(dictData, k1, poResult);
+
+ RStatEventVoltageMPO rStatEventVoltageMPO = new RStatEventVoltageMPO();
+ rStatEventVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
+ rStatEventVoltageMPO.setDataDate(localDate);
+ rStatEventVoltageMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
+ rStatEventVoltageMPO.setEventType(dictData.getId());
+ rStatEventVoltageMPO.setVoltageType(v1.getId());
+
+ rStatEventVoltageMPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEM.get(dictData.getId()).get(v1.getId()))));
+ rStatEventVoltageMPO.setEventMeasurementAccrued(statisData);
+ rStatEventVoltageMPO.setEventCount(sumEC.get(dictData.getId()).get(v1.getId()));
+ rStatEventVoltageMPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMR.get(dictData.getId()).get(v1.getId()))));
+ rStatEventVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
+
+ if (sumEM.get(dictData.getId()).get(v1.getId()) == 0) {
+ rStatEventVoltageMPO.setEventFreq(1.00f);
+ } else {
+ String value = df.format(sumEC.get(dictData.getId()).get(v1.getId()) / sumEM.get(dictData.getId()).get(v1.getId()));
+ rStatEventVoltageMPO.setEventFreq(Float.parseFloat(value));
+ }
+ if (Objects.isNull(rStatOrgMPO)) {
+ rStatEventVoltageMPO.setEventMeasurementRatioAccrued(1.00f);
+ } else {
+ if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
+ rStatEventVoltageMPO.setEventMeasurementRatioAccrued(1.00f);
+ } else {
+ String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued());
+ rStatEventVoltageMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
+ }
+ }
+ rStatEventVoltageMPOS.add(rStatEventVoltageMPO);
+ });
});
});
}
});
- if (!CollectionUtils.isEmpty(rStatEventMPOList)) {
- rStatEventMPOService.saveOrUpdateBatchByMultiId(rStatEventMPOList, 500);
+ if (!CollectionUtils.isEmpty(rStatEventVoltageMPOS)) {
+ rStatEventVoltageMPOService.saveOrUpdateBatchByMultiId(rStatEventVoltageMPOS, 500);
}
}
@@ -515,16 +568,16 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
}
//获取暂态各个类型发生的监测点数量
- private Integer getStatisData(DictData dictData, List list) {
+ private Integer getStatisData(DictData dictData, String voltage, List list) {
Integer value = 0;
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_DIP.getCode())) {
- value = Integer.valueOf(list.stream().filter(temp -> temp.getSagTimes() > 0).count() + "");
+ value = Integer.valueOf(list.stream().filter(temp -> temp.getSagTimes() > 0 && Objects.equals(temp.getVoltage(), voltage)).count() + "");
}
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_RISE.getCode())) {
- value = Integer.valueOf(list.stream().filter(temp -> temp.getSwellTimes() > 0).count() + "");
+ value = Integer.valueOf(list.stream().filter(temp -> temp.getSwellTimes() > 0 && Objects.equals(temp.getVoltage(), voltage)).count() + "");
}
if (Objects.equals(dictData.getCode(), DicDataEnum.SHORT_INTERRUPTIONS.getCode())) {
- value = Integer.valueOf(list.stream().filter(temp -> temp.getInterruptTimes() > 0).count() + "");
+ value = Integer.valueOf(list.stream().filter(temp -> temp.getInterruptTimes() > 0 && Objects.equals(temp.getVoltage(), voltage)).count() + "");
}
return value;