From 937783fdf3cd04eb2e12d2f136b3920948219e13 Mon Sep 17 00:00:00 2001 From: huangzj <826100833@qq.com> Date: Mon, 27 Nov 2023 13:55:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../harmonic/pojo/po/dim/RDimObjGlobalD.java | 20 +- .../harmonic/pojo/po/dim/RDimObjGlobalM.java | 26 ++- .../harmonic/pojo/po/dim/RDimObjGlobalY.java | 26 ++- .../harmonic/pojo/po/dim/RDimObjTargetM.java | 9 +- .../harmonic/pojo/po/dim/RDimObjTargetY.java | 14 +- .../prepare/executor/OrgPointExecutor.java | 34 +++- .../mysql/dim/RDimObjGlobalDMapper.java | 3 +- .../mysql/dim/RDimObjGlobalMMapper.java | 4 +- .../mysql/dim/RDimObjGlobalYMapper.java | 4 +- .../mysql/dim/IRDimObjGlobalDService.java | 7 +- .../mysql/dim/IRDimObjGlobalMService.java | 7 +- .../mysql/dim/IRDimObjGlobalYService.java | 7 +- .../dim/impl/RDimObjGlobalDServiceImpl.java | 142 +++++++++++++- .../dim/impl/RDimObjGlobalMServiceImpl.java | 175 ++++++++++++++++- .../dim/impl/RDimObjGlobalYServiceImpl.java | 178 +++++++++++++++++- .../dim/impl/RDimObjTargetMServiceImpl.java | 148 ++++++++++++++- .../dim/impl/RDimObjTargetYServiceImpl.java | 148 ++++++++++++++- ...msStatisticsSpecialMonitorServiceImpl.java | 1 - 18 files changed, 886 insertions(+), 67 deletions(-) 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;