From eaaa3b0efcdc1751f34499a3c9b7d91aca401e99 Mon Sep 17 00:00:00 2001
From: xuyang <748613696@qq.com>
Date: Wed, 13 Dec 2023 17:36:17 +0800
Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E5=BA=95=E5=B1=82=E7=AE=97=E6=B3=95=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../njcn/harmonic/pojo/dto/LineDataDto.java | 2 +
.../harmonic/pojo/po/dim/RDimVoltageD.java | 4 +
.../harmonic/pojo/po/dim/RDimVoltageM.java | 4 +
.../harmonic/pojo/po/dim/RDimVoltageY.java | 4 +
.../po/upload/RUploadEvaluationDataD.java | 127 +++++++
.../prepare/harmonic/enums/UploadEnum.java | 16 +
.../prepare/harmonic/pojo/dto/BusBarDto.java | 50 +++
.../prepare/executor/OrgPointExecutor.java | 16 +
.../mysql/dim/mapping/RDimVoltageDMapper.xml | 24 +-
.../upload/RUploadEvaluationDataDMapper.java | 16 +
.../dim/impl/RDimVoltageDServiceImpl.java | 139 ++++----
.../dim/impl/RDimVoltageMServiceImpl.java | 4 +-
.../dim/impl/RDimVoltageYServiceImpl.java | 4 +-
.../IRUploadEvaluationDataDService.java | 24 ++
.../RUploadEvaluationDataDServiceImpl.java | 335 ++++++++++++++++++
15 files changed, 698 insertions(+), 71 deletions(-)
create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadEvaluationDataD.java
create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/dto/BusBarDto.java
create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadEvaluationDataDMapper.java
create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadEvaluationDataDService.java
create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/LineDataDto.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/LineDataDto.java
index d4b77d227..1065994d6 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/LineDataDto.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/LineDataDto.java
@@ -126,4 +126,6 @@ public class LineDataDto {
private Double v50;
+ private Double iNeg;
+
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageD.java
index e736b5ec6..f5d8f60fc 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageD.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageD.java
@@ -209,6 +209,9 @@ public class RDimVoltageD {
@TableField(value = "v_50")
private Double v50;
+ @TableField(value = "i_neg")
+ private Double iNeg;
+
public RDimVoltageD() {
this.v = 3.1415926;
this.vUnbalance = 3.1415926;
@@ -264,6 +267,7 @@ public class RDimVoltageD {
this.v48 = 3.1415926;
this.v49 = 3.1415926;
this.v50 = 3.1415926;
+ this.iNeg = 3.1415926;
}
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java
index fae84a1c9..33a9e1311 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java
@@ -215,6 +215,9 @@ public class RDimVoltageM {
@TableField(value = "v_50")
private Double v50;
+ @TableField(value = "i_neg")
+ private Double iNeg;
+
public RDimVoltageM() {
this.v = 3.1415926;
this.vUnbalance = 3.1415926;
@@ -270,6 +273,7 @@ public class RDimVoltageM {
this.v48 = 3.1415926;
this.v49 = 3.1415926;
this.v50 = 3.1415926;
+ this.iNeg = 3.1415926;
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageY.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageY.java
index 9bbe43800..ff74fa971 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageY.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageY.java
@@ -215,6 +215,9 @@ public class RDimVoltageY {
@TableField(value = "v_50")
private Double v50;
+ @TableField(value = "i_neg")
+ private Double iNeg;
+
public RDimVoltageY() {
this.v = 3.14159;
this.vUnbalance = 3.14159;
@@ -270,6 +273,7 @@ public class RDimVoltageY {
this.v48 = 3.14159;
this.v49 = 3.14159;
this.v50 = 3.14159;
+ this.iNeg = 3.14159;
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadEvaluationDataD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadEvaluationDataD.java
new file mode 100644
index 000000000..167be9b36
--- /dev/null
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadEvaluationDataD.java
@@ -0,0 +1,127 @@
+package com.njcn.harmonic.pojo.po.upload;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.Data;
+
+/**
+ *
+ * 电能质量基准水平评估数据-日表
+ *
+ *
+ * @author xuyang
+ * @since 2023-12-12
+ */
+@Data
+@TableName("r_upload_evaluation_data_d")
+public class RUploadEvaluationDataD {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * uuid
+ */
+ private String id;
+
+ /**
+ * 省级单位id
+ */
+ @MppMultiId
+ private String provinceId;
+
+ /**
+ * 省级单位名称
+ */
+ private String provinceName;
+
+ /**
+ * 市级单位id
+ */
+ @MppMultiId
+ private String cityId;
+
+ /**
+ * 市级单位名称
+ */
+ private String cityName;
+
+ /**
+ * 县级单位id
+ */
+ @MppMultiId
+ private String countyId;
+
+ /**
+ * 县级单位名称
+ */
+ private String countyName;
+
+ /**
+ * 谐波次数(次数应取2-50)
+ */
+ @MppMultiId
+ private Integer harmonicNum;
+
+ /**
+ * 指标类型(01:电压 02:长时间闪变 03:三相电压不平衡 04:电压总谐波畸变率 05:各次谐波电压 06:负序电流)
+ */
+ @MppMultiId
+ private String indexType;
+
+ /**
+ * 数据来源(01:仅在线监测 02:在线监测与现场测试)
+ */
+ @MppMultiId
+ private String dataSources;
+
+ /**
+ * 监测母线数量
+ */
+ private Integer monitorBusNum = 0;
+
+ /**
+ * 母线监测率(%)
+ */
+ private Double monitorBusRate = 0.0d;
+
+ /**
+ * 在运母线数量
+ */
+ private Integer onlineBusNum = 0;
+
+ /**
+ * 均值
+ */
+ private Double avgValue;
+
+ /**
+ * 标准差
+ */
+ private Double standardDeviation;
+
+ /**
+ * 统计日期
+ */
+ @MppMultiId
+ private String statisticalDate;
+
+ /**
+ * 统计层级(3:省 4:市 5:县)
+ */
+ @MppMultiId
+ private String statisticalLevel;
+
+ /**
+ * 统计类型(01:年 02:月 03:日)
+ */
+ @MppMultiId
+ private String statisticalType;
+
+ /**
+ * 电压等级
+ */
+ @MppMultiId
+ private String voltageLevel;
+
+
+}
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java
index d938a246e..bab0035d7 100644
--- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java
@@ -37,6 +37,22 @@ public enum UploadEnum {
DISTRIBUTION_FLAG_01("01","主网"),
DISTRIBUTION_FLAG_02("02","配网"),
+ /**
+ * 指标类型(01:电压 02:长时间闪变 03:三相电压不平衡 04:电压总谐波畸变率 05:各次谐波电压 06:负序电流)
+ */
+ INDEX_TYPE_01("01","电压"),
+ INDEX_TYPE_02("02","长时间闪变"),
+ INDEX_TYPE_03("03","三相电压不平衡"),
+ INDEX_TYPE_04("04","电压总谐波畸变率"),
+ INDEX_TYPE_05("05","各次谐波电压"),
+ INDEX_TYPE_06("06","负序电流"),
+
+ /**
+ * 数据来源(01:仅在线监测 02:在线监测与现场测试)
+ */
+ DATA_SOURCES_01("01","仅在线监测"),
+ DATA_SOURCES_02("02","在线监测与现场测试"),
+
;
private final String code;
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/dto/BusBarDto.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/dto/BusBarDto.java
new file mode 100644
index 000000000..3dec2c7bf
--- /dev/null
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/dto/BusBarDto.java
@@ -0,0 +1,50 @@
+package com.njcn.prepare.harmonic.pojo.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/12/12 16:32
+ */
+@Data
+public class BusBarDto {
+
+ /**
+ * 单位id
+ */
+ private String orgId;
+
+ /**
+ * 电压等级实体
+ */
+ private List voltageChild;
+
+ @Data
+ public static class VoltageChild {
+
+ /**
+ * 电压等级
+ */
+ private String voltageLevel;
+
+ /**
+ * 监测母线数量
+ */
+ private Integer monitorBusNum;
+
+ /**
+ * 在运母线数量
+ */
+ private Integer onlineBusNum;
+
+ /**
+ * 监测率
+ */
+ private Double monitorRate;
+ }
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java
index 825c5d0ab..41c9c2efc 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java
@@ -12,6 +12,7 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
import com.njcn.prepare.harmonic.service.mysql.dim.*;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
+import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService;
import com.njcn.prepare.harmonic.service.mysql.send.ConverterdetailstatisticsPOService;
import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService;
@@ -75,6 +76,7 @@ public class OrgPointExecutor extends BaseExecutor{
private final ConverterdetailstatisticsPOService converterdetailstatisticsPOService;
private final PqTypicalSourceCreatePOService pqTypicalSourceCreatePOService;
+ private final IRUploadEvaluationDataDService irUploadEvaluationDataDService;
/**
*
* 3.3.2. 单位标数据质量
@@ -648,4 +650,18 @@ public class OrgPointExecutor extends BaseExecutor{
CalculatedParam calculatedParam = bindCmp.getRequestData();
pqTypicalSourceCreatePOService.handlerDay(calculatedParam);
}
+ /**
+ * 河北国网上送接口
+ * 2.4.1.8接收电能质量基准水平评估数据接口
+ * xuyang
+ */
+ @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rUploadEvaluationData", nodeType = NodeTypeEnum.COMMON)
+ public boolean rUploadEvaluationDataAccess(NodeComponent bindCmp) {
+ return isAccess(bindCmp);
+ }
+ @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadEvaluationData", nodeType = NodeTypeEnum.COMMON)
+ public void rUploadEvaluationDataProcess(NodeComponent bindCmp) {
+ irUploadEvaluationDataDService.insertEvaluationDataDay(bindCmp.getRequestData());
+ }
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/mapping/RDimVoltageDMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/mapping/RDimVoltageDMapper.xml
index bebb70d63..7c5966bfb 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/mapping/RDimVoltageDMapper.xml
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/mapping/RDimVoltageDMapper.xml
@@ -19,7 +19,8 @@
B.v31,B.v32,B.v33,B.v34,B.v35,
B.v36,B.v37,B.v38,B.v39,B.v40,
B.v41,B.v42,B.v43,B.v44,B.v45,
- B.v46,B.v47,B.v48,B.v49,B.v50
+ B.v46,B.v47,B.v48,B.v49,B.v50,
+ E.iNeg
from
(
select
@@ -128,5 +129,26 @@
group by `time`,line_id
) D
on A.`time` = D.`time` and A.line_id = D.line_id
+ inner join
+ (
+ select
+ `time`,
+ line_id,
+ max(i_neg) iNeg
+ from
+ r_stat_data_i_d
+ where
+ `time` between #{startTime} and #{endTime}
+ and phasic_type = 'T'
+ and value_type in ('CP95')
+
+ and line_id in
+
+ #{item}
+
+
+ group by `time`,line_id
+ ) E
+ on A.`time` = E.`time` and A.line_id = E.line_id
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadEvaluationDataDMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadEvaluationDataDMapper.java
new file mode 100644
index 000000000..3e366902b
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadEvaluationDataDMapper.java
@@ -0,0 +1,16 @@
+package com.njcn.prepare.harmonic.mapper.mysql.upload;
+
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
+
+/**
+ *
+ * 电能质量基准水平评估数据-日表 Mapper 接口
+ *
+ *
+ * @author xuyang
+ * @since 2023-12-12
+ */
+public interface RUploadEvaluationDataDMapper extends MppBaseMapper {
+
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageDServiceImpl.java
index c38f12660..b05d7265b 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageDServiceImpl.java
@@ -18,6 +18,7 @@ import com.njcn.harmonic.pojo.dto.LineDataDto;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageDService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
@@ -74,19 +75,9 @@ public class RDimVoltageDServiceImpl extends MppServiceImpl> map1 = list4.stream().collect(Collectors.groupingBy(GeneratrixWire::getScale));
//循环分组数据,获取母线下监测点数据
map1.forEach((k, v) -> {
- rDimVoltageD.setVoltageType(k);
- //不同电压等级下,母线的id
- List list5 = v.stream().map(GeneratrixWire::getId).collect(Collectors.toList());
- //获取这些母线下的监测点
- List list6 = list1.stream().filter(obj -> list5.contains(obj.getLineId())).collect(Collectors.toList());
- //获取监测点数据
- List list7 = list2.stream().filter(vo->list6.stream().map(Monitor::getId).collect(Collectors.toList()).contains(vo.getLineId())).collect(Collectors.toList());
- if (CollectionUtil.isNotEmpty(list7)){
- //赋值
- assignment(list7,rDimVoltageD);
- }
+ RDimVoltageD dto = assignment(k,rDimVoltageD,v,list1,list2);
+ result.add(dto);
});
- result.add(rDimVoltageD);
}
});
}
@@ -130,64 +121,76 @@ public class RDimVoltageDServiceImpl extends MppServiceImpl list7, RDimVoltageD rDimVoltageD) {
- rDimVoltageD.setV(list7.stream().mapToDouble(LineDataDto::getRms).average().orElse(0d));
- rDimVoltageD.setVUnbalance(list7.stream().mapToDouble(LineDataDto::getVUnbalance).average().orElse(0d));
- rDimVoltageD.setPst(list7.stream().mapToDouble(LineDataDto::getPst).average().orElse(0d));
- rDimVoltageD.setVThd(list7.stream().mapToDouble(LineDataDto::getVThd).average().orElse(0d));
- rDimVoltageD.setV1(list7.stream().mapToDouble(LineDataDto::getV1).average().orElse(0d));
- rDimVoltageD.setV2(list7.stream().mapToDouble(LineDataDto::getV2).average().orElse(0d));
- rDimVoltageD.setV3(list7.stream().mapToDouble(LineDataDto::getV3).average().orElse(0d));
- rDimVoltageD.setV4(list7.stream().mapToDouble(LineDataDto::getV4).average().orElse(0d));
- rDimVoltageD.setV5(list7.stream().mapToDouble(LineDataDto::getV5).average().orElse(0d));
- rDimVoltageD.setV6(list7.stream().mapToDouble(LineDataDto::getV6).average().orElse(0d));
- rDimVoltageD.setV7(list7.stream().mapToDouble(LineDataDto::getV7).average().orElse(0d));
- rDimVoltageD.setV8(list7.stream().mapToDouble(LineDataDto::getV8).average().orElse(0d));
- rDimVoltageD.setV9(list7.stream().mapToDouble(LineDataDto::getV9).average().orElse(0d));
- rDimVoltageD.setV10(list7.stream().mapToDouble(LineDataDto::getV10).average().orElse(0d));
- rDimVoltageD.setV11(list7.stream().mapToDouble(LineDataDto::getV11).average().orElse(0d));
- rDimVoltageD.setV12(list7.stream().mapToDouble(LineDataDto::getV12).average().orElse(0d));
- rDimVoltageD.setV13(list7.stream().mapToDouble(LineDataDto::getV13).average().orElse(0d));
- rDimVoltageD.setV14(list7.stream().mapToDouble(LineDataDto::getV14).average().orElse(0d));
- rDimVoltageD.setV15(list7.stream().mapToDouble(LineDataDto::getV15).average().orElse(0d));
- rDimVoltageD.setV16(list7.stream().mapToDouble(LineDataDto::getV16).average().orElse(0d));
- rDimVoltageD.setV17(list7.stream().mapToDouble(LineDataDto::getV17).average().orElse(0d));
- rDimVoltageD.setV18(list7.stream().mapToDouble(LineDataDto::getV18).average().orElse(0d));
- rDimVoltageD.setV19(list7.stream().mapToDouble(LineDataDto::getV19).average().orElse(0d));
- rDimVoltageD.setV20(list7.stream().mapToDouble(LineDataDto::getV20).average().orElse(0d));
- rDimVoltageD.setV21(list7.stream().mapToDouble(LineDataDto::getV21).average().orElse(0d));
- rDimVoltageD.setV22(list7.stream().mapToDouble(LineDataDto::getV22).average().orElse(0d));
- rDimVoltageD.setV23(list7.stream().mapToDouble(LineDataDto::getV23).average().orElse(0d));
- rDimVoltageD.setV24(list7.stream().mapToDouble(LineDataDto::getV24).average().orElse(0d));
- rDimVoltageD.setV25(list7.stream().mapToDouble(LineDataDto::getV25).average().orElse(0d));
- rDimVoltageD.setV26(list7.stream().mapToDouble(LineDataDto::getV26).average().orElse(0d));
- rDimVoltageD.setV27(list7.stream().mapToDouble(LineDataDto::getV27).average().orElse(0d));
- rDimVoltageD.setV28(list7.stream().mapToDouble(LineDataDto::getV28).average().orElse(0d));
- rDimVoltageD.setV29(list7.stream().mapToDouble(LineDataDto::getV29).average().orElse(0d));
- rDimVoltageD.setV30(list7.stream().mapToDouble(LineDataDto::getV30).average().orElse(0d));
- rDimVoltageD.setV31(list7.stream().mapToDouble(LineDataDto::getV31).average().orElse(0d));
- rDimVoltageD.setV32(list7.stream().mapToDouble(LineDataDto::getV32).average().orElse(0d));
- rDimVoltageD.setV33(list7.stream().mapToDouble(LineDataDto::getV33).average().orElse(0d));
- rDimVoltageD.setV34(list7.stream().mapToDouble(LineDataDto::getV34).average().orElse(0d));
- rDimVoltageD.setV35(list7.stream().mapToDouble(LineDataDto::getV35).average().orElse(0d));
- rDimVoltageD.setV36(list7.stream().mapToDouble(LineDataDto::getV36).average().orElse(0d));
- rDimVoltageD.setV37(list7.stream().mapToDouble(LineDataDto::getV37).average().orElse(0d));
- rDimVoltageD.setV38(list7.stream().mapToDouble(LineDataDto::getV38).average().orElse(0d));
- rDimVoltageD.setV39(list7.stream().mapToDouble(LineDataDto::getV39).average().orElse(0d));
- rDimVoltageD.setV40(list7.stream().mapToDouble(LineDataDto::getV40).average().orElse(0d));
- rDimVoltageD.setV41(list7.stream().mapToDouble(LineDataDto::getV41).average().orElse(0d));
- rDimVoltageD.setV42(list7.stream().mapToDouble(LineDataDto::getV42).average().orElse(0d));
- rDimVoltageD.setV43(list7.stream().mapToDouble(LineDataDto::getV43).average().orElse(0d));
- rDimVoltageD.setV44(list7.stream().mapToDouble(LineDataDto::getV44).average().orElse(0d));
- rDimVoltageD.setV45(list7.stream().mapToDouble(LineDataDto::getV45).average().orElse(0d));
- rDimVoltageD.setV46(list7.stream().mapToDouble(LineDataDto::getV46).average().orElse(0d));
- rDimVoltageD.setV47(list7.stream().mapToDouble(LineDataDto::getV47).average().orElse(0d));
- rDimVoltageD.setV48(list7.stream().mapToDouble(LineDataDto::getV48).average().orElse(0d));
- rDimVoltageD.setV49(list7.stream().mapToDouble(LineDataDto::getV49).average().orElse(0d));
- rDimVoltageD.setV50(list7.stream().mapToDouble(LineDataDto::getV50).average().orElse(0d));
+ public RDimVoltageD assignment(String voltage, RDimVoltageD rDimVoltageD, List list1, List list2, List list3) {
+ RDimVoltageD result = new RDimVoltageD();
+ BeanUtils.copyProperties(rDimVoltageD,result);
+ result.setVoltageType(voltage);
+ //不同电压等级下,母线的id
+ List l1 = list1.stream().map(GeneratrixWire::getId).collect(Collectors.toList());
+ //获取这些母线下的监测点
+ List l2 = list2.stream().filter(obj -> l1.contains(obj.getLineId())).collect(Collectors.toList());
+ //获取监测点数据
+ List l3 = list3.stream().filter(vo->l2.stream().map(Monitor::getId).collect(Collectors.toList()).contains(vo.getLineId())).collect(Collectors.toList());
+ if (CollectionUtil.isNotEmpty(l3)){
+ result.setV(l3.stream().mapToDouble(LineDataDto::getRms).average().orElse(0d));
+ result.setVUnbalance(l3.stream().mapToDouble(LineDataDto::getVUnbalance).average().orElse(0d));
+ result.setPst(l3.stream().mapToDouble(LineDataDto::getPst).average().orElse(0d));
+ result.setVThd(l3.stream().mapToDouble(LineDataDto::getVThd).average().orElse(0d));
+ result.setV1(l3.stream().mapToDouble(LineDataDto::getV1).average().orElse(0d));
+ result.setV2(l3.stream().mapToDouble(LineDataDto::getV2).average().orElse(0d));
+ result.setV3(l3.stream().mapToDouble(LineDataDto::getV3).average().orElse(0d));
+ result.setV4(l3.stream().mapToDouble(LineDataDto::getV4).average().orElse(0d));
+ result.setV5(l3.stream().mapToDouble(LineDataDto::getV5).average().orElse(0d));
+ result.setV6(l3.stream().mapToDouble(LineDataDto::getV6).average().orElse(0d));
+ result.setV7(l3.stream().mapToDouble(LineDataDto::getV7).average().orElse(0d));
+ result.setV8(l3.stream().mapToDouble(LineDataDto::getV8).average().orElse(0d));
+ result.setV9(l3.stream().mapToDouble(LineDataDto::getV9).average().orElse(0d));
+ result.setV10(l3.stream().mapToDouble(LineDataDto::getV10).average().orElse(0d));
+ result.setV11(l3.stream().mapToDouble(LineDataDto::getV11).average().orElse(0d));
+ result.setV12(l3.stream().mapToDouble(LineDataDto::getV12).average().orElse(0d));
+ result.setV13(l3.stream().mapToDouble(LineDataDto::getV13).average().orElse(0d));
+ result.setV14(l3.stream().mapToDouble(LineDataDto::getV14).average().orElse(0d));
+ result.setV15(l3.stream().mapToDouble(LineDataDto::getV15).average().orElse(0d));
+ result.setV16(l3.stream().mapToDouble(LineDataDto::getV16).average().orElse(0d));
+ result.setV17(l3.stream().mapToDouble(LineDataDto::getV17).average().orElse(0d));
+ result.setV18(l3.stream().mapToDouble(LineDataDto::getV18).average().orElse(0d));
+ result.setV19(l3.stream().mapToDouble(LineDataDto::getV19).average().orElse(0d));
+ result.setV20(l3.stream().mapToDouble(LineDataDto::getV20).average().orElse(0d));
+ result.setV21(l3.stream().mapToDouble(LineDataDto::getV21).average().orElse(0d));
+ result.setV22(l3.stream().mapToDouble(LineDataDto::getV22).average().orElse(0d));
+ result.setV23(l3.stream().mapToDouble(LineDataDto::getV23).average().orElse(0d));
+ result.setV24(l3.stream().mapToDouble(LineDataDto::getV24).average().orElse(0d));
+ result.setV25(l3.stream().mapToDouble(LineDataDto::getV25).average().orElse(0d));
+ result.setV26(l3.stream().mapToDouble(LineDataDto::getV26).average().orElse(0d));
+ result.setV27(l3.stream().mapToDouble(LineDataDto::getV27).average().orElse(0d));
+ result.setV28(l3.stream().mapToDouble(LineDataDto::getV28).average().orElse(0d));
+ result.setV29(l3.stream().mapToDouble(LineDataDto::getV29).average().orElse(0d));
+ result.setV30(l3.stream().mapToDouble(LineDataDto::getV30).average().orElse(0d));
+ result.setV31(l3.stream().mapToDouble(LineDataDto::getV31).average().orElse(0d));
+ result.setV32(l3.stream().mapToDouble(LineDataDto::getV32).average().orElse(0d));
+ result.setV33(l3.stream().mapToDouble(LineDataDto::getV33).average().orElse(0d));
+ result.setV34(l3.stream().mapToDouble(LineDataDto::getV34).average().orElse(0d));
+ result.setV35(l3.stream().mapToDouble(LineDataDto::getV35).average().orElse(0d));
+ result.setV36(l3.stream().mapToDouble(LineDataDto::getV36).average().orElse(0d));
+ result.setV37(l3.stream().mapToDouble(LineDataDto::getV37).average().orElse(0d));
+ result.setV38(l3.stream().mapToDouble(LineDataDto::getV38).average().orElse(0d));
+ result.setV39(l3.stream().mapToDouble(LineDataDto::getV39).average().orElse(0d));
+ result.setV40(l3.stream().mapToDouble(LineDataDto::getV40).average().orElse(0d));
+ result.setV41(l3.stream().mapToDouble(LineDataDto::getV41).average().orElse(0d));
+ result.setV42(l3.stream().mapToDouble(LineDataDto::getV42).average().orElse(0d));
+ result.setV43(l3.stream().mapToDouble(LineDataDto::getV43).average().orElse(0d));
+ result.setV44(l3.stream().mapToDouble(LineDataDto::getV44).average().orElse(0d));
+ result.setV45(l3.stream().mapToDouble(LineDataDto::getV45).average().orElse(0d));
+ result.setV46(l3.stream().mapToDouble(LineDataDto::getV46).average().orElse(0d));
+ result.setV47(l3.stream().mapToDouble(LineDataDto::getV47).average().orElse(0d));
+ result.setV48(l3.stream().mapToDouble(LineDataDto::getV48).average().orElse(0d));
+ result.setV49(l3.stream().mapToDouble(LineDataDto::getV49).average().orElse(0d));
+ result.setV50(l3.stream().mapToDouble(LineDataDto::getV50).average().orElse(0d));
+ result.setINeg(l3.stream().mapToDouble(LineDataDto::getINeg).average().orElse(0d));
+ }
+ return result;
}
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java
index 5f4aa4d6e..b7790aa2c 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java
@@ -143,6 +143,7 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl list, String orgId, LocalDate time, String voltageLevel,RDimVoltageM rDimVoltageM) {
- double limit = 3.1415926000000005;
+ double limit = 3.1415926;
RDimVoltageM rDimVoltageM1 = new RDimVoltageM();
rDimVoltageM1.setOrgId(orgId);
rDimVoltageM1.setStatisDate(time);
@@ -211,6 +212,7 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl list, String orgId, LocalDate time, String voltageLevel,RDimVoltageY rDimVoltageY) {
- double limit = 3.1415926000000005;
+ double limit = 3.1415926;
RDimVoltageY rDimVoltageY1 = new RDimVoltageY();
rDimVoltageY1.setOrgId(orgId);
rDimVoltageY1.setStatisDate(time);
@@ -210,6 +211,7 @@ public class RDimVoltageYServiceImpl extends MppServiceImpl
+ * 电能质量基准水平评估数据-日表 服务类
+ *
+ *
+ * @author xuyang
+ * @since 2023-12-12
+ */
+public interface IRUploadEvaluationDataDService extends IService {
+
+ /**
+ * 电能质量基准水平评估数据-日表
+ * @param calculatedParam
+ */
+ void insertEvaluationDataDay(CalculatedParam calculatedParam);
+
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java
new file mode 100644
index 000000000..96d0aff1c
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java
@@ -0,0 +1,335 @@
+package com.njcn.prepare.harmonic.service.mysql.upload.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.common.pojo.enums.common.DataStateEnum;
+import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
+import com.njcn.device.biz.pojo.dto.DeptGetBase;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
+import com.njcn.device.biz.pojo.param.DeptGetLineParam;
+import com.njcn.device.pms.pojo.po.GeneratrixWire;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.harmonic.pojo.po.dim.RDimVoltageD;
+import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
+import com.njcn.prepare.harmonic.enums.UploadEnum;
+import com.njcn.prepare.harmonic.mapper.mysql.dim.GeneratrixWireMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadEvaluationDataDMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.dto.BusBarDto;
+import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService;
+import com.njcn.system.api.DicDataFeignClient;
+import com.njcn.system.enums.DicDataEnum;
+import com.njcn.system.enums.DicDataTypeEnum;
+import com.njcn.system.pojo.po.DictData;
+import com.njcn.user.api.DeptFeignClient;
+import com.njcn.user.pojo.po.Dept;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 电能质量基准水平评估数据-日表 服务实现类
+ *
+ *
+ * @author xuyang
+ * @since 2023-12-12
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl implements IRUploadEvaluationDataDService {
+
+ private final RDimVoltageDMapper rDimVoltageDMapper;
+ private final DeptFeignClient deptFeignClient;
+ private final PmsMonitorMapper pmsMonitorMapper;
+ private final GeneratrixWireMapper generatrixWireMapper;
+ private final DicDataFeignClient dicDataFeignClient;
+ private final CommTerminalGeneralClient commTerminalGeneralClient;
+
+ @Override
+ public void insertEvaluationDataDay(CalculatedParam calculatedParam) {
+ List result = new ArrayList<>();
+ //获取监测点信息
+ List list1 = getPmsMonitor();
+ //获取母线信息
+ List list2 = getBusBarInfo();
+ //获取【在运】字典id
+ List dicDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
+ DictData dictData = dicDataList.stream().filter(o->Objects.equals(o.getCode(), DicDataEnum.RUN.getCode())).findFirst().orElse(null);
+ //获取单位下各电压等级数据
+ List busBarList = getBusBarNum(list1,list2,dictData.getId());
+ List allDept = getAllDeptLineNum(busBarList);
+
+ //获取省级单位id
+ Dept data = deptFeignClient.getRootDept().getData();
+ String provinceId = deptFeignClient.getDepSonIdByDeptId(data.getId()).getData().get(0);
+ Dept dept = deptFeignClient.getDeptById(provinceId).getData();
+ //获取所有单位
+ List deptList = deptFeignClient.getAllDept().getData();
+ Map> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode));
+ List list = calculatedParam.getIdList();
+ //获取母线相关数据
+ Map> dimMap = getDimVoltageData(calculatedParam.getDataDate());
+ //数据处理
+ list.forEach(item->{
+ if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()),item.getDeptLevel())){
+ return;
+ }
+ List l1 = dimMap.get(item.getUnitId());
+ if (CollectionUtil.isNotEmpty(l1)){
+ l1.forEach(item2->{
+ RUploadEvaluationDataD dto = getLineNum(allDept,item2.getVoltageType(),item.getUnitId());
+ if (dto.getMonitorBusNum() !=0 ){
+ RUploadEvaluationDataD rUploadEvaluationDataD = new RUploadEvaluationDataD();
+ rUploadEvaluationDataD.setId(IdUtil.simpleUUID());
+ rUploadEvaluationDataD.setProvinceId(dept.getCode());
+ rUploadEvaluationDataD.setProvinceName(dept.getName());
+ rUploadEvaluationDataD.setDataSources(UploadEnum.DATA_SOURCES_01.getCode());
+ rUploadEvaluationDataD.setStatisticalDate(calculatedParam.getDataDate());
+ rUploadEvaluationDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode());
+ judgeLevel(item.getDeptLevel(),rUploadEvaluationDataD,item.getUnitId(),item.getUnitName(),deptList,deptMap);
+ //电压
+ RUploadEvaluationDataD dto1 = channelData(rUploadEvaluationDataD,item2.getV(),UploadEnum.INDEX_TYPE_01.getCode(),0,item2.getVoltageType(),dto);
+ result.add(dto1);
+ //长时间闪变
+ RUploadEvaluationDataD dto2 = channelData(rUploadEvaluationDataD,item2.getPst(),UploadEnum.INDEX_TYPE_02.getCode(),0,item2.getVoltageType(),dto);
+ result.add(dto2);
+ //三相电压不平衡
+ RUploadEvaluationDataD dto3 = channelData(rUploadEvaluationDataD,item2.getVUnbalance(),UploadEnum.INDEX_TYPE_03.getCode(),0,item2.getVoltageType(),dto);
+ result.add(dto3);
+ //电压总谐波畸变率
+ RUploadEvaluationDataD dto4 = channelData(rUploadEvaluationDataD,item2.getVThd(),UploadEnum.INDEX_TYPE_04.getCode(),0,item2.getVoltageType(),dto);
+ result.add(dto4);
+ //各次谐波电压
+ List harmonic = Arrays.asList(item2.getV2(),item2.getV3(),item2.getV4(),item2.getV5()
+ ,item2.getV6(),item2.getV7(),item2.getV8(),item2.getV9(),item2.getV10(),item2.getV11()
+ ,item2.getV12(),item2.getV13(),item2.getV14(),item2.getV15(),item2.getV16(),item2.getV17()
+ ,item2.getV18(),item2.getV19(),item2.getV20(),item2.getV21(),item2.getV22(),item2.getV23()
+ ,item2.getV24(),item2.getV25(),item2.getV26(),item2.getV27(),item2.getV28(),item2.getV29()
+ ,item2.getV30(),item2.getV31(),item2.getV32(),item2.getV33(),item2.getV34(),item2.getV35()
+ ,item2.getV36(),item2.getV37(),item2.getV38(),item2.getV39(),item2.getV40(),item2.getV41()
+ ,item2.getV42(),item2.getV43(),item2.getV44(),item2.getV45(),item2.getV46(),item2.getV47()
+ ,item2.getV48(),item2.getV49(),item2.getV50());
+ channelHarmonicData(rUploadEvaluationDataD,result,harmonic,UploadEnum.INDEX_TYPE_05.getCode(),item2.getVoltageType(),dto);
+ //负序电流
+ RUploadEvaluationDataD dto6 = channelData(rUploadEvaluationDataD,item2.getINeg(),UploadEnum.INDEX_TYPE_06.getCode(),0,item2.getVoltageType(),dto);
+ result.add(dto6);
+ }
+ });
+ }
+ });
+ if (CollectionUtil.isNotEmpty(result)){
+ this.saveOrUpdateBatchByMultiId(result,1000);
+ }
+ }
+
+
+ /**
+ * 获取区域母线不同电压等级指标数据日表
+ */
+ public Map> getDimVoltageData(String time) {
+ Map> map = new HashMap<>();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(RDimVoltageD::getStatisDate,time);
+ List list = rDimVoltageDMapper.selectList(lambdaQueryWrapper);
+ if (CollectionUtil.isNotEmpty(list)){
+ map = list.stream().collect(Collectors.groupingBy(RDimVoltageD::getOrgId));
+ }
+ return map;
+ }
+
+ /**
+ * 获取监测点信息
+ */
+ public List getPmsMonitor() {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
+ return pmsMonitorMapper.selectList(lambdaQueryWrapper);
+ }
+
+ /**
+ * 获取母线信息
+ */
+ public List getBusBarInfo() {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode());
+ return generatrixWireMapper.selectList(lambdaQueryWrapper);
+ }
+
+ /**
+ * 获取已知单位母线数量
+ */
+ public List getBusBarNum(List list1, List list2, String code) {
+ List result = new ArrayList<>();
+ Map> map = list1.stream().collect(Collectors.groupingBy(Monitor::getOrgId));
+ map.forEach((k,v)->{
+ List children = new ArrayList<>();
+ BusBarDto busBarDto = new BusBarDto();
+ busBarDto.setOrgId(k);
+ //所有母线集合
+ List allLine = v.stream().map(Monitor::getLineId).collect(Collectors.toList());
+ //在运母线集合
+ List online = v.stream().filter(o->Objects.equals(o.getMonitorState(),code)).map(Monitor::getLineId).collect(Collectors.toList());
+ List list3 = list2.stream().filter(o->allLine.contains(o.getId())).collect(Collectors.toList());
+ Map> map2 = list3.stream().collect(Collectors.groupingBy(GeneratrixWire::getScale));
+ map2.forEach((k1,v1)->{
+ BusBarDto.VoltageChild voltageChild = new BusBarDto.VoltageChild();
+ voltageChild.setVoltageLevel(getVoltage(k1));
+ voltageChild.setMonitorBusNum(v1.size());
+ List list4 = v1.stream().filter(o->online.contains(o.getId())).collect(Collectors.toList());
+ voltageChild.setOnlineBusNum(list4.size());
+ voltageChild.setMonitorRate(list4.size()*100.0/v1.size());
+ children.add(voltageChild);
+ });
+ busBarDto.setVoltageChild(children);
+ result.add(busBarDto);
+ });
+ return result;
+ }
+
+ /**
+ * 组装所有单位下各个电压等级的母线数量
+ */
+ public List getAllDeptLineNum(List list) {
+ List result = new ArrayList<>();
+ //获取所有部门信息
+ Dept data = deptFeignClient.getRootDept().getData();
+ DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
+ deptGetLineParam.setDeptId(data.getId());
+ List deptList = commTerminalGeneralClient.getDeptChildrenByParent(deptGetLineParam).getData();
+
+ deptList.forEach(item->{
+ List children = new ArrayList<>();
+ List child = new ArrayList<>();
+ BusBarDto busBarDto = new BusBarDto();
+ busBarDto.setOrgId(item.getUnitId());
+ //获取当前部门下 包含母线数量的部门
+ List newList = list.stream().filter(o->item.getUnitChildrenList().contains(o.getOrgId())).collect(Collectors.toList());
+ if (CollectionUtil.isNotEmpty(newList)){
+ newList.forEach(item2->{
+ child.addAll(item2.getVoltageChild());
+ });
+ Map> map = child.stream().collect(Collectors.groupingBy(BusBarDto.VoltageChild::getVoltageLevel));
+ map.forEach((k,v)->{
+ BusBarDto.VoltageChild c1 = new BusBarDto.VoltageChild();
+ c1.setVoltageLevel(k);
+ int monitorBusNum = v.stream().mapToInt(BusBarDto.VoltageChild::getMonitorBusNum).sum();
+ c1.setMonitorBusNum(monitorBusNum);
+ int online = v.stream().mapToInt(BusBarDto.VoltageChild::getOnlineBusNum).sum();
+ c1.setOnlineBusNum(online);
+ c1.setMonitorRate(monitorBusNum==0?0:online*100.0/monitorBusNum);
+ children.add(c1);
+ });
+ busBarDto.setVoltageChild(children);
+ }
+ result.add(busBarDto);
+ });
+ return result;
+ }
+
+ /**
+ * 生成母线数量
+ */
+ public RUploadEvaluationDataD getLineNum(List allDept, String voltage, String deptId) {
+ RUploadEvaluationDataD dto = new RUploadEvaluationDataD();
+ BusBarDto dto2 = allDept.stream().filter(o->Objects.equals(o.getOrgId(),deptId)).findFirst().orElse(null);
+ if (!Objects.isNull(dto2)){
+ List list = dto2.getVoltageChild();
+ if (CollectionUtil.isNotEmpty(list)){
+ list.forEach(item->{
+ if (Objects.equals(item.getVoltageLevel(),this.getVoltage(voltage))){
+ dto.setMonitorBusNum(item.getMonitorBusNum());
+ dto.setOnlineBusNum(item.getOnlineBusNum());
+ dto.setMonitorBusRate(item.getMonitorRate());
+ }
+ });
+ }
+ }
+ return dto;
+ }
+
+
+ /**
+ * 判断单位层级
+ */
+ public void judgeLevel(Integer level, RUploadEvaluationDataD rUploadEvaluationDataD, String id, String name, List deptList, Map> map) {
+ String result = "";
+ if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_2.getCode()))){
+ result = UploadEnum.STATISTICAL_LEVEL_3.getCode();
+ rUploadEvaluationDataD.setCityId("");
+ rUploadEvaluationDataD.setCountyId("");
+ } else if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_3.getCode()))) {
+ result = UploadEnum.STATISTICAL_LEVEL_4.getCode();
+ rUploadEvaluationDataD.setCityId(id);
+ rUploadEvaluationDataD.setCityName(name);
+ rUploadEvaluationDataD.setCountyId("");
+ } else if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()))) {
+ result = UploadEnum.STATISTICAL_LEVEL_5.getCode();
+ List list = Arrays.stream(map.get(id).get(0).getPids().split(",")).map(String::trim).collect(Collectors.toList());
+ String parentCode = deptList.stream().filter(o->Objects.equals(o.getId(),list.get(3))).findFirst().orElse(null).getCode();
+ rUploadEvaluationDataD.setCityId(parentCode);
+ rUploadEvaluationDataD.setCityName(map.get(parentCode).get(0).getName());
+ rUploadEvaluationDataD.setCountyId(id);
+ rUploadEvaluationDataD.setCountyName(name);
+ }
+ rUploadEvaluationDataD.setStatisticalLevel(result);
+ }
+
+ /**
+ * 单个指标数据处理
+ */
+ public RUploadEvaluationDataD channelData(RUploadEvaluationDataD rUploadEvaluationDataD,Double value, String indexType, Integer harmonicNum, String voltage,RUploadEvaluationDataD rUploadEvaluationDataD2) {
+ RUploadEvaluationDataD dto = new RUploadEvaluationDataD();
+ BeanUtils.copyProperties(rUploadEvaluationDataD,dto);
+ dto.setAvgValue(value);
+ dto.setIndexType(indexType);
+ dto.setHarmonicNum(harmonicNum);
+ dto.setStandardDeviation(value==3.1415926?3.1415926:0d);
+ dto.setVoltageLevel(this.getVoltage(voltage));
+ dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum());
+ dto.setOnlineBusNum(rUploadEvaluationDataD2.getOnlineBusNum());
+ dto.setMonitorBusRate(rUploadEvaluationDataD2.getMonitorBusRate());
+ return dto;
+ }
+
+ /**
+ * 各次谐波电压数据处理
+ */
+ public void channelHarmonicData(RUploadEvaluationDataD rUploadEvaluationDataD,List result,List valueList, String indexType, String voltage,RUploadEvaluationDataD rUploadEvaluationDataD2) {
+ for (int i = 0; i < valueList.size(); i++) {
+ RUploadEvaluationDataD dto = new RUploadEvaluationDataD();
+ BeanUtils.copyProperties(rUploadEvaluationDataD,dto);
+ dto.setAvgValue(valueList.get(i));
+ dto.setIndexType(indexType);
+ dto.setHarmonicNum(i+2);
+ dto.setStandardDeviation(valueList.get(i)==3.1415926?3.1415926:0d);
+ dto.setVoltageLevel(this.getVoltage(voltage));
+ dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum());
+ dto.setOnlineBusNum(rUploadEvaluationDataD2.getOnlineBusNum());
+ dto.setMonitorBusRate(rUploadEvaluationDataD2.getMonitorBusRate());
+ result.add(dto);
+ }
+ }
+
+ /**
+ * 电压等级转换
+ */
+ public String getVoltage(String voltage) {
+ DictData dictData = dicDataFeignClient.getDicDataById(voltage).getData();
+ Integer code = dictData.getAlgoDescribe();
+ if (Objects.isNull(code)){
+ return "99";
+ }
+ return (code < 10) ? "0" + code : String.valueOf(code);
+ }
+
+}