diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalD.java
index c792273b7..291b1de7d 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalD.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalD.java
@@ -1,12 +1,13 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
-import java.io.Serializable;
-import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
+import java.time.LocalDate;
+
/**
*
*
@@ -21,30 +22,29 @@ import lombok.Setter;
public class RDimObjGlobalD extends BaseEntity {
private static final long serialVersionUID = 1L;
-
+ @MppMultiId(value = "Org_Id")
private String orgId;
-
+ @MppMultiId(value = "Statis_Date")
private LocalDate statisDate;
/**
* 源荷对象类型
*/
+ @MppMultiId(value = "Object_Type")
private String objectType;
- /**
- * **源荷对象监测率(%)
- */
- private Float monitorRate;
+
/**
* **源荷对象超标占比(%)
*/
- private Float limitRate;
+ private Double limitRate;
/**
* **源荷对象平均超标占比(%)
*/
- private Float limitAvgRate;
+ private Double limitAvgRate;
+
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalM.java
index e118e2eb7..edce82ca6 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalM.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalM.java
@@ -1,12 +1,14 @@
package com.njcn.harmonic.pojo.po.dim;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
-import java.io.Serializable;
-import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
+import java.time.LocalDate;
+
/**
*
*
@@ -22,29 +24,33 @@ public class RDimObjGlobalM extends BaseEntity {
private static final long serialVersionUID = 1L;
+ @MppMultiId(value = "Org_Id")
private String orgId;
-
+ @MppMultiId(value = "Statis_Date")
private LocalDate statisDate;
/**
* 源荷对象类型
*/
+ @MppMultiId(value = "Object_Type")
private String objectType;
- /**
- * **源荷对象监测率(%)
- */
- private Float monitorRate;
+//
+// /**
+// * **源荷对象监测率(%)
+// */
+// private Double monitorRate;
/**
* **源荷对象超标占比(%)
*/
- private Float limitRate;
+ private Double limitRate;
/**
* **源荷对象平均超标占比(%)
*/
- private Float limitAvgRate;
-
+ private Double limitAvgRate;
+ @TableField(value = "Limit_Avg_Day")
+ private Double limitAvgDay;
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalY.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalY.java
index b75f235e2..545917355 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalY.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjGlobalY.java
@@ -1,12 +1,14 @@
package com.njcn.harmonic.pojo.po.dim;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
-import java.io.Serializable;
-import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
+import java.time.LocalDate;
+
/**
*
*
@@ -22,29 +24,33 @@ public class RDimObjGlobalY extends BaseEntity {
private static final long serialVersionUID = 1L;
+ @MppMultiId(value = "Org_Id")
private String orgId;
-
+ @MppMultiId(value = "Statis_Date")
private LocalDate statisDate;
/**
* 源荷对象类型
*/
+ @MppMultiId(value = "Object_Type")
private String objectType;
- /**
- * **源荷对象监测率(%)
- */
- private Float monitorRate;
+//
+// /**
+// * **源荷对象监测率(%)
+// */
+// private Double monitorRate;
/**
* **源荷对象超标占比(%)
*/
- private Float limitRate;
+ private Double limitRate;
/**
* **源荷对象平均超标占比(%)
*/
- private Float limitAvgRate;
-
+ private Double limitAvgRate;
+ @TableField(value = "Limit_Avg_Day")
+ private Double limitAvgDay;
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetM.java
index 2270e6950..4230564ab 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetM.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetM.java
@@ -43,17 +43,14 @@ public class RDimObjTargetM extends BaseEntity {
/**
* **源荷对象**指标超标占比(%)
*/
- private Float monitorRate;
+ private Double monitorRate;
/**
* **源荷对象**指标平均超标占比(%)
*/
- private Float limitRate;
+ private Double limitRate;
+
- /**
- * **源荷对象**指标平均超标天数(天)
- */
- private Float limitAvgRate;
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetY.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetY.java
index ba5b89d2b..9a0fa232e 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetY.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimObjTargetY.java
@@ -43,17 +43,17 @@ public class RDimObjTargetY extends BaseEntity {
/**
* **源荷对象**指标超标占比(%)
*/
- private Float monitorRate;
+ private Double monitorRate;
/**
* **源荷对象**指标平均超标占比(%)
*/
- private Float limitRate;
-
- /**
- * **源荷对象**指标平均超标天数(天)
- */
- private Float limitAvgRate;
+ private Double limitRate;
+//
+// /**
+// * **源荷对象**指标平均超标天数(天)
+// */
+// private Float limitAvgRate;
}
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 f4de91d8f..67dfca3d6 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
@@ -2,7 +2,6 @@ package com.njcn.prepare.executor;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
-import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.RDimStationTargetDPOService;
import com.njcn.prepare.harmonic.service.mysql.RDimStationTargetMPOService;
import com.njcn.prepare.harmonic.service.mysql.RDimStationTargetYPOService;
@@ -61,6 +60,10 @@ public class OrgPointExecutor extends BaseExecutor{
private final IRDimObjTargetMService irDimObjTargetMService;
private final IRDimObjTargetYService irDimObjTargetYService;
+ private final IRDimObjGlobalDService irDimObjGlobalDService;
+ private final IRDimObjGlobalMService irDimObjGlobalMService;
+ private final IRDimObjGlobalYService irDimObjGlobalYService;
+
/**
@@ -533,5 +536,34 @@ public class OrgPointExecutor extends BaseExecutor{
}
}
+ /**
+ * 河北主网新增算法表r_dim_obj_target_d/m/y
+ */
+ @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rDimObjGlobal", nodeType = NodeTypeEnum.COMMON)
+ public boolean processRDimObjGlobalAccess(NodeComponent bindCmp) {
+ return isAccess(bindCmp);
+ }
+ @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rDimObjGlobal", nodeType = NodeTypeEnum.COMMON)
+ public void processRDimObjGlobalProcess(NodeComponent bindCmp) {
+ String tag = bindCmp.getTag();
+ CalculatedParam calculatedParam = bindCmp.getRequestData();
+ if (tag.equalsIgnoreCase("r_dim_obj_global_d")) {
+ //日表
+ irDimObjGlobalDService.handleDay(calculatedParam);
+ } else if (tag.equalsIgnoreCase("r_dim_obj_global_m")) {
+ //数据补招不执行非日表算法
+ if (!calculatedParam.isRepair()) {
+ //月表
+ irDimObjGlobalMService.handleMonth(calculatedParam);
+ }
+ }else if (tag.equalsIgnoreCase("r_dim_obj_global_y")) {
+ //数据补招不执行非日表算法
+ if (!calculatedParam.isRepair()) {
+ //年表
+ irDimObjGlobalYService.handleYear(calculatedParam);
+ }
+ }
+ }
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalDMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalDMapper.java
index 3b81078af..f1d7727f2 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalDMapper.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalDMapper.java
@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalD;
/**
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalD;
* @author cdf
* @since 2023-11-22
*/
-public interface RDimObjGlobalDMapper extends BaseMapper {
+public interface RDimObjGlobalDMapper extends MppBaseMapper {
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalMMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalMMapper.java
index cc5ec23d1..10d5bf84c 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalMMapper.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalMMapper.java
@@ -1,6 +1,6 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalM;
/**
@@ -11,6 +11,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalM;
* @author cdf
* @since 2023-11-22
*/
-public interface RDimObjGlobalMMapper extends BaseMapper {
+public interface RDimObjGlobalMMapper extends MppBaseMapper {
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalYMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalYMapper.java
index 565376da1..72f5c185f 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalYMapper.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimObjGlobalYMapper.java
@@ -1,6 +1,6 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalY;
/**
@@ -11,6 +11,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalY;
* @author cdf
* @since 2023-11-22
*/
-public interface RDimObjGlobalYMapper extends BaseMapper {
+public interface RDimObjGlobalYMapper extends MppBaseMapper {
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalDService.java
index a97abae16..fa471e0a1 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalDService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalDService.java
@@ -1,7 +1,7 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
@@ -13,6 +13,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
* @author cdf
* @since 2023-11-22
*/
-public interface IRDimObjGlobalDService extends IService {
+public interface IRDimObjGlobalDService extends IMppService {
+ void handleDay(CalculatedParam calculatedParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalMService.java
index cdffa0dd0..d51ea73ff 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalMService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalMService.java
@@ -1,7 +1,9 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalM;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
*
@@ -11,6 +13,7 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalM;
* @author cdf
* @since 2023-11-22
*/
-public interface IRDimObjGlobalMService extends IService {
+public interface IRDimObjGlobalMService extends IMppService {
+ void handleMonth(CalculatedParam calculatedParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalYService.java
index 83d266b6b..7d5b0da6b 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalYService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimObjGlobalYService.java
@@ -1,7 +1,9 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalY;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
*
@@ -11,6 +13,7 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalY;
* @author cdf
* @since 2023-11-22
*/
-public interface IRDimObjGlobalYService extends IService {
+public interface IRDimObjGlobalYService extends IMppService {
+ void handleYear(CalculatedParam calculatedParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalDServiceImpl.java
index acd6c919d..9c4bd00f3 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalDServiceImpl.java
@@ -1,11 +1,35 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
+import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjGlobalDMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
+import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjGlobalDService;
+import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
+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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
*
@@ -16,6 +40,120 @@ import org.springframework.stereotype.Service;
* @since 2023-11-22
*/
@Service
-public class RDimObjGlobalDServiceImpl extends ServiceImpl implements IRDimObjGlobalDService {
+@RequiredArgsConstructor
+public class RDimObjGlobalDServiceImpl extends MppServiceImpl implements IRDimObjGlobalDService {
+
+ private final DicDataFeignClient dicDataFeignClient;
+ private final ROperatingMonitorService rOperatingMonitorService;
+ private final IRStatLimitRateDService irStatLimitRateDService;
+ //咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
+ private final PmsMonitorMapper pmsMonitorMapper;
+ @Override
+ public void handleDay(CalculatedParam calculatedParam) {
+ List rDimObjGlobalDS = new ArrayList<>();
+
+ LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
+ String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
+ String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
+ List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
+ //过滤电压总谐波畸变率、2-50次谐波电流、三相不平衡、负序电流、闪变
+ List finalIndicatorTypeDate = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())).collect(Collectors.toList());
+
+ List monitoringLabels = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
+ //过滤监测对象包括牵引站、风电场、光伏电站、重要,敏感用户
+ List monitoringLabelIds = monitoringLabels.stream().filter(temp -> Objects.equals(
+ temp.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.SENSITIVE_USERS.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.IMPORTANT_USERS.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.TRACTION_STATION.getCode())).map(DictData::getId).collect(Collectors.toList());
+
+ for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
+ if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
+ List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
+ if (CollectionUtils.isEmpty(lineBaseList)) {
+ continue;
+ }
+ List collect2 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List list = rOperatingMonitorService.lambdaQuery().
+ in(ROperatingMonitorDPO::getMeasurementPointId, collect2).
+ eq(ROperatingMonitorDPO::getDataDate, localDate).
+ ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95).
+ eq(ROperatingMonitorDPO::getIsUnusual, 1).list();
+ List monitorList = new ArrayList<>();
+
+ if(CollectionUtils.isEmpty(list)){
+ continue;
+ }
+ List collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
+ monitorList = monitorList.stream().filter(temp -> monitoringLabelIds.contains(temp.getMonitorTag())).collect(Collectors.toList());
+ Map> collect1 = monitorList.stream().
+ collect(Collectors.groupingBy(Monitor::getMonitorTag));
+
+ List linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
+ List rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, beginDay, endDay);
+ if(CollectionUtils.isEmpty(rStatLimitRateDPOS)){
+ continue;
+ }
+ collect1.forEach((tag, monitors)->{
+
+ RDimObjGlobalD rDimObjGlobalD = new RDimObjGlobalD();
+ rDimObjGlobalD.setOrgId(deptGetChildrenMoreDTO.getUnitId());
+ rDimObjGlobalD.setStatisDate(localDate);
+ rDimObjGlobalD.setObjectType(tag);
+ //有效接入监测点
+ int effectivePoint = monitors.size();
+ //对应指标的超表监测点
+ int overLimitsPoint = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getUaberranceOvertime()>0||
+ po.getUaberranceOvertime()>0||
+ po.getFlickerOvertime()>0 ||
+ po.getINegOvertime()>0||
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime()>0).count()+"");
+ double v = Double.valueOf(overLimitsPoint) / effectivePoint;
+ rDimObjGlobalD.setLimitAvgRate(Math.round(v * 100.0) / 100.0);
+ rDimObjGlobalD.setLimitRate(Math.round(v * 100.0) / 100.0);
+ rDimObjGlobalDS.add(rDimObjGlobalD);
+
+ });
+
+
+ }
+ }
+ if (!CollectionUtils.isEmpty(rDimObjGlobalDS)) {
+ this.saveOrUpdateBatchByMultiId(rDimObjGlobalDS, 500);
+ }
+ }
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalMServiceImpl.java
index 508260e70..3b5695749 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalMServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalMServiceImpl.java
@@ -1,11 +1,36 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
+import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjGlobalMMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
+import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjGlobalMService;
+import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
+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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
*
@@ -16,6 +41,152 @@ import org.springframework.stereotype.Service;
* @since 2023-11-22
*/
@Service
-public class RDimObjGlobalMServiceImpl extends ServiceImpl implements IRDimObjGlobalMService {
+@RequiredArgsConstructor
+public class RDimObjGlobalMServiceImpl extends MppServiceImpl implements IRDimObjGlobalMService {
+ private final DicDataFeignClient dicDataFeignClient;
+ private final ROperatingMonitorService rOperatingMonitorService;
+ private final IRStatLimitRateDService irStatLimitRateDService;
+ //咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
+ private final PmsMonitorMapper pmsMonitorMapper;
+ @Override
+ public void handleMonth(CalculatedParam calculatedParam) {
+ List rDimObjGlobalMS = new ArrayList<>();
+ LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
+ String begin = LocalDateTimeUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ String end = LocalDateTimeUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
+ //过滤电压总谐波畸变率、2-50次谐波电流、三相不平衡、负序电流、闪变
+ List finalIndicatorTypeDate = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())).collect(Collectors.toList());
+
+ List monitoringLabels = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
+ //过滤监测对象包括牵引站、风电场、光伏电站、重要,敏感用户
+ List monitoringLabelIds = monitoringLabels.stream().filter(temp -> Objects.equals(
+ temp.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.SENSITIVE_USERS.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.IMPORTANT_USERS.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.TRACTION_STATION.getCode())).map(DictData::getId).collect(Collectors.toList());
+
+ for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
+ if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
+ List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
+ if (CollectionUtils.isEmpty(lineBaseList)) {
+ continue;
+ }
+ List collect2 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List list = rOperatingMonitorService.lambdaQuery().
+ in(ROperatingMonitorDPO::getMeasurementPointId, collect2).
+ eq(ROperatingMonitorDPO::getDataDate, localDate).
+ ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95).
+ eq(ROperatingMonitorDPO::getIsUnusual, 1).list();
+ List monitorList = new ArrayList<>();
+
+ if(CollectionUtils.isEmpty(list)){
+ continue;
+ }
+ List collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
+ monitorList = monitorList.stream().filter(temp -> monitoringLabelIds.contains(temp.getMonitorTag())).collect(Collectors.toList());
+ Map> collect1 = monitorList.stream().
+ collect(Collectors.groupingBy(Monitor::getMonitorTag));
+
+ List linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
+ List rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, begin, end);
+ if(CollectionUtils.isEmpty(rStatLimitRateDPOS)){
+ continue;
+ }
+ collect1.forEach((tag, monitors)->{
+
+ RDimObjGlobalM rDimObjGlobalM = new RDimObjGlobalM();
+ rDimObjGlobalM.setOrgId(deptGetChildrenMoreDTO.getUnitId());
+ rDimObjGlobalM.setStatisDate(localDate);
+ rDimObjGlobalM.setObjectType(tag);
+ //有效接入监测点
+ Long effectivePoint = monitors.stream().map(Monitor::getId).distinct().count();
+ //对应指标的超表监测点
+ int overLimitsPoint = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getUaberranceOvertime()>0||
+ po.getUaberranceOvertime()>0||
+ po.getFlickerOvertime()>0 ||
+ po.getINegOvertime()>0||
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime()>0).map(RStatLimitRateDPO::getLineId).distinct().count()+"");
+
+ int overLimits = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getUaberranceOvertime()>0||
+ po.getUaberranceOvertime()>0||
+ po.getFlickerOvertime()>0 ||
+ po.getINegOvertime()>0||
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime()>0).map(RStatLimitRateDPO::getLineId).count()+"");
+
+ double v1 = Double.valueOf(overLimits) / overLimitsPoint;
+
+
+ double v = Double.valueOf(overLimitsPoint) / effectivePoint;
+ rDimObjGlobalM.setLimitAvgRate(Math.round(v * 100.0) / 100.0);
+ rDimObjGlobalM.setLimitRate(Math.round(v * 100.0) / 100.0);
+ rDimObjGlobalM.setLimitAvgDay((Math.round(v1 * 100.0) / 100.0));
+ rDimObjGlobalMS.add(rDimObjGlobalM);
+
+ });
+
+
+ }
+ }
+ if (!CollectionUtils.isEmpty(rDimObjGlobalMS)) {
+ this.saveOrUpdateBatchByMultiId(rDimObjGlobalMS, 500);
+ }
+ }
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalYServiceImpl.java
index 20f73ad5c..8f95ba4de 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalYServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjGlobalYServiceImpl.java
@@ -1,11 +1,36 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
+import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjGlobalYMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
+import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjGlobalYService;
+import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
+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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
*
@@ -16,6 +41,155 @@ import org.springframework.stereotype.Service;
* @since 2023-11-22
*/
@Service
-public class RDimObjGlobalYServiceImpl extends ServiceImpl implements IRDimObjGlobalYService {
+@RequiredArgsConstructor
+public class RDimObjGlobalYServiceImpl extends MppServiceImpl implements IRDimObjGlobalYService {
+ private final DicDataFeignClient dicDataFeignClient;
+ private final ROperatingMonitorService rOperatingMonitorService;
+ private final IRStatLimitRateDService irStatLimitRateDService;
+ //咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
+ private final PmsMonitorMapper pmsMonitorMapper;
+ @Override
+ public void handleYear(CalculatedParam calculatedParam) {
+ List rDimObjGlobalYS = new ArrayList<>();
+ LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
+ String begin = LocalDateTimeUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ String end = LocalDateTimeUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
+ //过滤电压总谐波畸变率、2-50次谐波电流、三相不平衡、负序电流、闪变
+ List finalIndicatorTypeDate = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())).collect(Collectors.toList());
+
+ List monitoringLabels = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
+ //过滤监测对象包括牵引站、风电场、光伏电站、重要,敏感用户
+ List monitoringLabelIds = monitoringLabels.stream().filter(temp -> Objects.equals(
+ temp.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.SENSITIVE_USERS.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.IMPORTANT_USERS.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.TRACTION_STATION.getCode())).map(DictData::getId).collect(Collectors.toList());
+
+ for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
+ if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
+ List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
+ if (CollectionUtils.isEmpty(lineBaseList)) {
+ continue;
+ }
+ List collect2 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List list = rOperatingMonitorService.lambdaQuery().
+ in(ROperatingMonitorDPO::getMeasurementPointId, collect2).
+ eq(ROperatingMonitorDPO::getDataDate, localDate).
+ ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95).
+ eq(ROperatingMonitorDPO::getIsUnusual, 1).list();
+ List monitorList = new ArrayList<>();
+
+ if(CollectionUtils.isEmpty(list)){
+ continue;
+ }
+ List collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
+ monitorList = monitorList.stream().filter(temp -> monitoringLabelIds.contains(temp.getMonitorTag())).collect(Collectors.toList());
+ Map> collect1 = monitorList.stream().
+ collect(Collectors.groupingBy(Monitor::getMonitorTag));
+
+ List linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
+ List rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, begin, end);
+ if(CollectionUtils.isEmpty(rStatLimitRateDPOS)){
+ continue;
+ }
+ collect1.forEach((tag, monitors)->{
+
+ RDimObjGlobalY rDimObjGlobalY = new RDimObjGlobalY();
+ rDimObjGlobalY.setOrgId(deptGetChildrenMoreDTO.getUnitId());
+ rDimObjGlobalY.setStatisDate(localDate);
+ rDimObjGlobalY.setObjectType(tag);
+ //有效接入监测点
+ Long effectivePoint = monitors.stream().map(Monitor::getId).distinct().count();
+ //对应指标的超表监测点
+ int overLimitsPoint = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getUaberranceOvertime()>0||
+ po.getUaberranceOvertime()>0||
+ po.getFlickerOvertime()>0 ||
+ po.getINegOvertime()>0||
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime()>0).map(RStatLimitRateDPO::getLineId).distinct().count()+"");
+
+ int overLimits = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getUaberranceOvertime()>0||
+ po.getUaberranceOvertime()>0||
+ po.getFlickerOvertime()>0 ||
+ po.getINegOvertime()>0||
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime()>0).map(RStatLimitRateDPO::getLineId).count()+"");
+ Double v1 = 0.00;
+ if(!(overLimitsPoint==0)){
+ v1 = Double.valueOf(overLimits) / overLimitsPoint;
+
+ }
+
+ double v = Double.valueOf(overLimitsPoint) / effectivePoint;
+ rDimObjGlobalY.setLimitAvgRate(Math.round(v * 100.0) / 100.0);
+ rDimObjGlobalY.setLimitRate(Math.round(v * 100.0) / 100.0);
+ rDimObjGlobalY.setLimitAvgDay((Math.round(v1 * 100.0) / 100.0));
+
+ rDimObjGlobalYS.add(rDimObjGlobalY);
+
+ });
+
+
+ }
+ }
+ if (!CollectionUtils.isEmpty(rDimObjGlobalYS)) {
+ this.saveOrUpdateBatchByMultiId(rDimObjGlobalYS, 500);
+ }
+ }
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java
index 79a26d44c..e1ff4c6d6 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java
@@ -1,14 +1,36 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
+import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetMMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
+import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetMService;
+import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
+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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
*
@@ -19,10 +41,132 @@ import org.springframework.stereotype.Service;
* @since 2023-11-22
*/
@Service
+@RequiredArgsConstructor
public class RDimObjTargetMServiceImpl extends MppServiceImpl implements IRDimObjTargetMService {
-
+ private final DicDataFeignClient dicDataFeignClient;
+ private final ROperatingMonitorService rOperatingMonitorService;
+ private final IRStatLimitRateDService irStatLimitRateDService;
+ //咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
+ private final PmsMonitorMapper pmsMonitorMapper;
@Override
public void handleMonth(CalculatedParam calculatedParam) {
+ List rdiObjTargetMs = new ArrayList<>();
+ LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
+ String begin = LocalDateTimeUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ String end = LocalDateTimeUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
+ //过滤电压总谐波畸变率、2-50次谐波电流、三相不平衡、负序电流、闪变
+ List finalIndicatorTypeDate = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())).collect(Collectors.toList());
+
+ List monitoringLabels = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
+ //过滤监测对象包括牵引站、风电场、光伏电站、重要,敏感用户
+ List monitoringLabelIds = monitoringLabels.stream().filter(temp -> Objects.equals(
+ temp.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.SENSITIVE_USERS.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.IMPORTANT_USERS.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.TRACTION_STATION.getCode())).map(DictData::getId).collect(Collectors.toList());
+
+ for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
+ if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
+ List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
+ if (CollectionUtils.isEmpty(lineBaseList)) {
+ continue;
+ }
+ List collect2 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List list = rOperatingMonitorService.lambdaQuery().
+ in(ROperatingMonitorDPO::getMeasurementPointId, collect2).
+ between(ROperatingMonitorDPO::getDataDate, begin,end).
+ ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95).
+ eq(ROperatingMonitorDPO::getIsUnusual, 1).list();
+ List monitorList = new ArrayList<>();
+
+ if(CollectionUtils.isEmpty(list)){
+ continue;
+ }
+ List collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
+ monitorList = monitorList.stream().filter(temp -> monitoringLabelIds.contains(temp.getMonitorTag())).collect(Collectors.toList());
+ Map> collect1 = monitorList.stream().
+ collect(Collectors.groupingBy(Monitor::getMonitorTag));
+
+ List linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
+ List rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, begin, end);
+ if(CollectionUtils.isEmpty(rStatLimitRateDPOS)){
+ continue;
+ }
+ collect1.forEach((tag, monitors)->{
+ finalIndicatorTypeDate.stream().forEach(temp->{
+ RDimObjTargetM rDimObjTargetM = new RDimObjTargetM();
+ rDimObjTargetM.setOrgId(deptGetChildrenMoreDTO.getUnitId());
+ rDimObjTargetM.setStatisDate(localDate);
+ rDimObjTargetM.setTargetType(temp.getId());
+ rDimObjTargetM.setObjectType(tag);
+ //有效接入监测点
+ long effectivePoint = monitors.stream().map(Monitor::getId).distinct().count();
+ //对应指标的超表监测点
+ int overLimitsPoint = overLimitsPointCount(temp,rStatLimitRateDPOS);
+ double v = Double.valueOf(overLimitsPoint) / effectivePoint;
+ rDimObjTargetM.setMonitorRate(Math.round(v * 100.0) / 100.0);
+ rDimObjTargetM.setLimitRate(Math.round(v * 100.0) / 100.0);
+ rdiObjTargetMs.add(rDimObjTargetM);
+ });
+ });
+
+
+ }
+ }
+ if (!CollectionUtils.isEmpty(rdiObjTargetMs)) {
+ this.saveOrUpdateBatchByMultiId(rdiObjTargetMs, 500);
+ }
+ }
+
+ private int overLimitsPointCount(DictData temp, List rStatLimitRateDPOS) {
+ Integer overLimiCount =0;
+
+ if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).distinct().count()+"");
+ } else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime()>0).distinct().count()+"");
+
+ } else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).distinct().count()+"");
+ } else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getFlickerOvertime()>0).distinct().count()+"");
+ } else if (Objects.equals(temp.getCode(), DicDataEnum.NEG_CURRENT.getCode())){
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getINegOvertime()>0).distinct().count()+"");
+ }
+ return overLimiCount;
}
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetYServiceImpl.java
index a69b270aa..6f72b0207 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetYServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetYServiceImpl.java
@@ -1,14 +1,36 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
+import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetYMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
+import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetYService;
+import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
+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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
*
@@ -19,10 +41,132 @@ import org.springframework.stereotype.Service;
* @since 2023-11-22
*/
@Service
+@RequiredArgsConstructor
public class RDimObjTargetYServiceImpl extends MppServiceImpl implements IRDimObjTargetYService {
-
+ private final DicDataFeignClient dicDataFeignClient;
+ private final ROperatingMonitorService rOperatingMonitorService;
+ private final IRStatLimitRateDService irStatLimitRateDService;
+ //咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
+ private final PmsMonitorMapper pmsMonitorMapper;
@Override
public void handleYear(CalculatedParam calculatedParam) {
+ List rdiObjTargetys = new ArrayList<>();
+ LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
+ String begin = LocalDateTimeUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ String end = LocalDateTimeUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toLocalDateTime(),DatePattern.NORM_DATETIME_PATTERN);
+ List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
+ //过滤电压总谐波畸变率、2-50次谐波电流、三相不平衡、负序电流、闪变
+ List finalIndicatorTypeDate = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())).collect(Collectors.toList());
+
+ List monitoringLabels = dicDataFeignClient.getDicDataByTypeCode(
+ DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
+ //过滤监测对象包括牵引站、风电场、光伏电站、重要,敏感用户
+ List monitoringLabelIds = monitoringLabels.stream().filter(temp -> Objects.equals(
+ temp.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.SENSITIVE_USERS.getCode()) ||
+ Objects.equals(temp.getCode(), DicDataEnum.IMPORTANT_USERS.getCode())||
+ Objects.equals(temp.getCode(), DicDataEnum.TRACTION_STATION.getCode())).map(DictData::getId).collect(Collectors.toList());
+
+ for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
+ if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
+ List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
+ if (CollectionUtils.isEmpty(lineBaseList)) {
+ continue;
+ }
+ List collect2 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List list = rOperatingMonitorService.lambdaQuery().
+ in(ROperatingMonitorDPO::getMeasurementPointId, collect2).
+ between(ROperatingMonitorDPO::getDataDate, begin,end).
+ ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95).
+ eq(ROperatingMonitorDPO::getIsUnusual, 1).list();
+ List monitorList = new ArrayList<>();
+
+ if(CollectionUtils.isEmpty(list)){
+ continue;
+ }
+ List collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
+ monitorList = monitorList.stream().filter(temp -> monitoringLabelIds.contains(temp.getMonitorTag())).collect(Collectors.toList());
+ Map> collect1 = monitorList.stream().
+ collect(Collectors.groupingBy(Monitor::getMonitorTag));
+
+ List linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
+ List rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, begin, end);
+ if(CollectionUtils.isEmpty(rStatLimitRateDPOS)){
+ continue;
+ }
+ collect1.forEach((tag, monitors)->{
+ finalIndicatorTypeDate.stream().forEach(temp->{
+ RDimObjTargetY rDimObjTargetY = new RDimObjTargetY();
+ rDimObjTargetY.setOrgId(deptGetChildrenMoreDTO.getUnitId());
+ rDimObjTargetY.setStatisDate(localDate);
+ rDimObjTargetY.setTargetType(temp.getId());
+ rDimObjTargetY.setObjectType(tag);
+ //有效接入监测点
+ long effectivePoint = monitors.stream().map(Monitor::getId).distinct().count();
+ //对应指标的超表监测点
+ int overLimitsPoint = overLimitsPointCount(temp,rStatLimitRateDPOS);
+ double v = Double.valueOf(overLimitsPoint) / effectivePoint;
+ rDimObjTargetY.setMonitorRate(Math.round(v * 100.0) / 100.0);
+ rDimObjTargetY.setLimitRate(Math.round(v * 100.0) / 100.0);
+ rdiObjTargetys.add(rDimObjTargetY);
+ });
+ });
+
+
+ }
+ }
+ if (!CollectionUtils.isEmpty(rdiObjTargetys)) {
+ this.saveOrUpdateBatchByMultiId(rdiObjTargetys, 500);
+ }
+ }
+
+ private int overLimitsPointCount(DictData temp, List rStatLimitRateDPOS) {
+ Integer overLimiCount =0;
+
+ if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).distinct().count()+"");
+ } else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
+ po.getIharm2Overtime()>0||
+ po.getIharm3Overtime() >0||
+ po.getIharm4Overtime() >0||
+ po.getIharm5Overtime() >0||
+ po.getIharm6Overtime() >0||
+ po.getIharm7Overtime() >0||
+ po.getIharm8Overtime() >0||
+ po.getIharm9Overtime() >0||
+ po.getIharm10Overtime() >0||
+ po.getIharm11Overtime() >0||
+ po.getIharm12Overtime() >0||
+ po.getIharm13Overtime() >0||
+ po.getIharm14Overtime() >0||
+ po.getIharm15Overtime() >0||
+ po.getIharm16Overtime() >0||
+ po.getIharm17Overtime() >0||
+ po.getIharm18Overtime() >0||
+ po.getIharm19Overtime() >0||
+ po.getIharm20Overtime() >0||
+ po.getIharm21Overtime() >0||
+ po.getIharm22Overtime() >0||
+ po.getIharm23Overtime() >0||
+ po.getIharm24Overtime() >0||
+ po.getIharm25Overtime() >0).distinct().count()+"");
+
+ } else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).distinct().count()+"");
+ } else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) {
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getFlickerOvertime()>0).distinct().count()+"");
+ } else if (Objects.equals(temp.getCode(), DicDataEnum.NEG_CURRENT.getCode())){
+ overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getINegOvertime()>0).distinct().count()+"");
+ }
+ return overLimiCount;
}
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/PmsStatisticsSpecialMonitorServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/PmsStatisticsSpecialMonitorServiceImpl.java
index a340d0f18..9e68716f0 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/PmsStatisticsSpecialMonitorServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/PmsStatisticsSpecialMonitorServiceImpl.java
@@ -19,7 +19,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
import java.util.ArrayList;
import java.util.List;