From 10c9f823a07f5e2603831196625b79c18a3d354d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E6=9C=A8c?= <857448963@qq.com> Date: Fri, 24 Nov 2023 16:07:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../harmonic/pojo/po/dim/RDimBusGlobalD.java | 13 +- .../harmonic/pojo/po/dim/RDimBusGlobalM.java | 10 +- .../harmonic/pojo/po/dim/RDimBusGlobalY.java | 15 ++- .../pojo/po/dim/RDimBusStationEventD.java | 53 ++++++++ .../pojo/po/dim/RDimBusStationEventM.java | 53 ++++++++ .../pojo/po/dim/RDimBusStationEventY.java | 53 ++++++++ .../pojo/po/dim/RDimStationBaseD.java | 4 + .../pojo/po/dim/RDimStationTargetM.java | 4 + .../pojo/po/dim/RDimStationTargetY.java | 4 + .../njcn/prepare/executor/PmsDimExecutor.java | 2 +- .../mysql/dim/RDimBusGlobalMMapper.java | 3 +- .../mysql/dim/RDimBusGlobalYMapper.java | 3 +- .../mysql/dim/RDimBusStationEventDMapper.java | 17 +++ .../mysql/dim/RDimBusStationEventMMapper.java | 17 +++ .../mysql/dim/RDimBusStationEventYMapper.java | 16 +++ .../mysql/dim/RDimStationTargetDMapper.java | 3 +- .../mysql/dim/RDimStationTargetMMapper.java | 3 +- .../mysql/dim/RDimStationTargetYMapper.java | 3 +- .../mysql/dim/IRDimBusGlobalDService.java | 7 - .../mysql/dim/IRDimBusGlobalMService.java | 6 +- .../mysql/dim/IRDimBusGlobalYService.java | 7 +- .../dim/IRDimBusStationEventDService.java | 25 ++++ .../dim/IRDimBusStationEventMService.java | 25 ++++ .../dim/IRDimBusStationEventYService.java | 25 ++++ .../mysql/dim/IRDimStationGlobalDService.java | 16 --- .../mysql/dim/IRDimStationGlobalMService.java | 16 --- .../mysql/dim/IRDimStationGlobalYService.java | 17 --- .../mysql/dim/IRDimStationTargetDService.java | 3 +- .../mysql/dim/IRDimStationTargetMService.java | 3 +- .../mysql/dim/IRDimStationTargetYService.java | 11 +- .../dim/impl/RDimBusGlobalDServiceImpl.java | 109 ++++++++------- .../dim/impl/RDimBusGlobalMServiceImpl.java | 102 +++++++++++++- .../dim/impl/RDimBusGlobalYServiceImpl.java | 98 +++++++++++++- .../impl/RDimBusStationEventDServiceImpl.java | 112 ++++++++++++++++ .../impl/RDimBusStationEventMServiceImpl.java | 126 ++++++++++++++++++ .../impl/RDimBusStationEventYServiceImpl.java | 123 +++++++++++++++++ .../impl/RDimStationGlobalDServiceImpl.java | 4 +- .../impl/RDimStationGlobalMServiceImpl.java | 4 +- .../impl/RDimStationGlobalYServiceImpl.java | 4 +- .../impl/RDimStationTargetDServiceImpl.java | 7 +- .../impl/RDimStationTargetMServiceImpl.java | 3 +- .../impl/RDimStationTargetYServiceImpl.java | 76 ++++++++++- 42 files changed, 1053 insertions(+), 152 deletions(-) create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventD.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventM.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventY.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventDMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventMMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventYMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalD.java index 20830f6a6..8cc260d48 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalD.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalD.java @@ -20,7 +20,7 @@ import lombok.Setter; @Getter @Setter @TableName("r_dim_bus_global_d") -public class RDimBusGlobalD extends BaseEntity { +public class RDimBusGlobalD { private static final long serialVersionUID = 1L; @@ -36,11 +36,6 @@ public class RDimBusGlobalD extends BaseEntity { @MppMultiId private LocalDate statisDate; - /** - * 母线监测率(%) - */ - private Float monitorRate; - /** * 稳态指标超标或监测到暂态指标的变电站/换流站母线占比(%) */ @@ -51,12 +46,6 @@ public class RDimBusGlobalD extends BaseEntity { */ private Float limitAvgRate; - /** - * 电站监测率(%) - */ - private Float stationMonitorRate; - - /** * 电站指标超标或监测到暂态指标的变电站/换流站占比(%) */ diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalM.java index 1354202cc..5a1dba0d2 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalM.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalM.java @@ -1,6 +1,7 @@ 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; @@ -23,16 +24,19 @@ public class RDimBusGlobalM extends BaseEntity { private static final long serialVersionUID = 1L; + @MppMultiId private String orgId; - + @MppMultiId private LocalDate statisDate; - private Float monitorRate; - private Float limitRate; private Float limitAvgRate; + private Float stationLimitRate; + + private Float stationLimitAvgRate; + private Integer state; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalY.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalY.java index 4501b1d36..8eedf0a18 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalY.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusGlobalY.java @@ -1,6 +1,7 @@ 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; @@ -19,21 +20,23 @@ import lombok.Setter; @Getter @Setter @TableName("r_dim_bus_global_y") -public class RDimBusGlobalY extends BaseEntity { +public class RDimBusGlobalY { private static final long serialVersionUID = 1L; - + @MppMultiId private String orgId; - + @MppMultiId private LocalDate statisDate; - private Float monitorRate; - private Float limitRate; private Float limitAvgRate; - private Integer state; + private Float stationLimitRate; + + private Float stationLimitAvgRate; + + diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventD.java new file mode 100644 index 000000000..b55c3d423 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventD.java @@ -0,0 +1,53 @@ +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; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2023-11-24 + */ +@Getter +@Setter +@TableName("r_dim_bus_station_event_d") +public class RDimBusStationEventD { + + private static final long serialVersionUID = 1L; + + @MppMultiId + private String orgId; + + @MppMultiId + private LocalDate statisDate; + + /** + * 监测到暂态指标的变电站母线占比(%) + */ + private Float limitRate; + + /** + * 变电站母线暂态指标发生频次(次/线) + */ + private Float limitFreq; + + /** + * 监测到暂态指标的变电站占比(%) + */ + private Float stationLimitRate; + + /** + * 变电站暂态指标发生频次(次/站) + */ + private Float stationFreq; + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventM.java new file mode 100644 index 000000000..678280f0f --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventM.java @@ -0,0 +1,53 @@ +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; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2023-11-24 + */ +@Getter +@Setter +@TableName("r_dim_bus_station_event_m") +public class RDimBusStationEventM{ + + private static final long serialVersionUID = 1L; + + @MppMultiId + private String orgId; + + @MppMultiId + private LocalDate statisDate; + + /** + * 监测到暂态指标的变电站母线占比(%) + */ + private Float limitRate; + + /** + * 变电站母线暂态指标发生频次(次/线) + */ + private Float limitFreq; + + /** + * 监测到暂态指标的变电站占比(%) + */ + private Float stationLimitRate; + + /** + * 变电站暂态指标发生频次(次/站) + */ + private Float stationFreq; + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventY.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventY.java new file mode 100644 index 000000000..40c83ee1f --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusStationEventY.java @@ -0,0 +1,53 @@ +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; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2023-11-24 + */ +@Getter +@Setter +@TableName("r_dim_bus_station_event_y") +public class RDimBusStationEventY { + + private static final long serialVersionUID = 1L; + + @MppMultiId + private String orgId; + + @MppMultiId + private LocalDate statisDate; + + /** + * 监测到暂态指标的变电站母线占比(%) + */ + private Float limitRate; + + /** + * 变电站母线暂态指标发生频次(次/线) + */ + private Float limitFreq; + + /** + * 监测到暂态指标的变电站占比(%) + */ + private Float stationLimitRate; + + /** + * 变电站暂态指标发生频次(次/站) + */ + private Float stationFreq; + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationBaseD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationBaseD.java index 7eadcaad6..04d5d8a52 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationBaseD.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationBaseD.java @@ -1,6 +1,7 @@ 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; @@ -26,16 +27,19 @@ public class RDimStationBaseD extends BaseEntity { /** * 统计时间yyyy-mm-dd */ + @MppMultiId private LocalDate statisDate; /** * 电站id */ + @MppMultiId private String stationId; /** * 稳态,暂态指标类型(字典) */ + @MppMultiId private String targetType; /** diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetM.java index 81434a5ac..a3994ace0 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetM.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetM.java @@ -1,6 +1,7 @@ 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; @@ -23,13 +24,16 @@ public class RDimStationTargetM extends BaseEntity { private static final long serialVersionUID = 1L; + @MppMultiId private String orgId; + @MppMultiId private LocalDate statisDate; /** * 统计类型 */ + @MppMultiId private String targetType; /** diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetY.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetY.java index 7203c5d6d..465355ab9 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetY.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimStationTargetY.java @@ -1,6 +1,7 @@ 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; @@ -23,13 +24,16 @@ public class RDimStationTargetY extends BaseEntity { private static final long serialVersionUID = 1L; + @MppMultiId private String orgId; + @MppMultiId private LocalDate statisDate; /** * 统计类型 */ + @MppMultiId private String targetType; /** diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/PmsDimExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/PmsDimExecutor.java index 601ae7459..20f0071b2 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/PmsDimExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/PmsDimExecutor.java @@ -55,7 +55,7 @@ public class PmsDimExecutor extends BaseExecutor{ //数据补招不执行非日表算法 if (!calculatedParam.isRepair()) { //月表 - irDimBusGlobalDService.globalCalBusBarMonth(calculatedParam); + //irDimBusGlobalDService.globalCalBusBarMonth(calculatedParam); } } else if (Objects.equals(tag,"r_dim_bus_global_y")) { //数据补招不执行非日表算法 diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalMMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalMMapper.java index 7951dfb93..9c6f25b9d 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalMMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalMMapper.java @@ -2,6 +2,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.RDimBusGlobalM; /** @@ -12,6 +13,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM; * @author hongawen * @since 2023-11-14 */ -public interface RDimBusGlobalMMapper extends BaseMapper { +public interface RDimBusGlobalMMapper extends MppBaseMapper { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalYMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalYMapper.java index e3f72c7bc..ce9868133 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalYMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusGlobalYMapper.java @@ -2,6 +2,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.RDimBusGlobalY; /** @@ -12,6 +13,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY; * @author hongawen * @since 2023-11-14 */ -public interface RDimBusGlobalYMapper extends BaseMapper { +public interface RDimBusGlobalYMapper extends MppBaseMapper { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventDMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventDMapper.java new file mode 100644 index 000000000..acffdfd18 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventDMapper.java @@ -0,0 +1,17 @@ +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.RDimBusStationEventD; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +public interface RDimBusStationEventDMapper extends MppBaseMapper { + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventMMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventMMapper.java new file mode 100644 index 000000000..3f0c3c881 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventMMapper.java @@ -0,0 +1,17 @@ +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.RDimBusStationEventM; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +public interface RDimBusStationEventMMapper extends MppBaseMapper { + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventYMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventYMapper.java new file mode 100644 index 000000000..a2bf34675 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimBusStationEventYMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.dim; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +public interface RDimBusStationEventYMapper extends MppBaseMapper { + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetDMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetDMapper.java index 2e1854fce..29312a099 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetDMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetDMapper.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.RDimStationTargetD; /** @@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetD; * @author cdf * @since 2023-11-21 */ -public interface RDimStationTargetDMapper extends BaseMapper { +public interface RDimStationTargetDMapper extends MppBaseMapper { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetMMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetMMapper.java index d016b5bf5..1a0aba83d 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetMMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetMMapper.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.RDimStationTargetM; /** @@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM; * @author cdf * @since 2023-11-21 */ -public interface RDimStationTargetMMapper extends BaseMapper { +public interface RDimStationTargetMMapper extends MppBaseMapper { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetYMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetYMapper.java index b76d4bc63..6d7828164 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetYMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/dim/RDimStationTargetYMapper.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.RDimStationTargetY; /** @@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY; * @author cdf * @since 2023-11-21 */ -public interface RDimStationTargetYMapper extends BaseMapper { +public interface RDimStationTargetYMapper extends MppBaseMapper { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalDService.java index a526ade28..436c53873 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalDService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalDService.java @@ -20,11 +20,4 @@ public interface IRDimBusGlobalDService extends IMppService { void globalCalBusBarDay(CalculatedParam calculatedParam); - void globalCalBusBarMonth(CalculatedParam calculatedParam); - - - void globalCalBusBarYear(CalculatedParam calculatedParam); - - - } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java index a687de064..96e2f35f9 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java @@ -1,7 +1,10 @@ package com.njcn.prepare.harmonic.service.mysql.dim; +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; /** *

@@ -11,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService; * @author hongawen * @since 2023-11-14 */ -public interface IRDimBusGlobalMService extends IService { +public interface IRDimBusGlobalMService extends IMppService { + void globalCalBusBarMonth(CalculatedParam calculatedParam); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java index 80815273d..a5bb3a35a 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java @@ -1,7 +1,10 @@ package com.njcn.prepare.harmonic.service.mysql.dim; +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; /** *

@@ -11,6 +14,8 @@ import com.baomidou.mybatisplus.extension.service.IService; * @author hongawen * @since 2023-11-14 */ -public interface IRDimBusGlobalYService extends IService { +public interface IRDimBusGlobalYService extends IMppService { + + void globalCalBusBarYear(CalculatedParam calculatedParam); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java new file mode 100644 index 000000000..1b81eef09 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java @@ -0,0 +1,25 @@ +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.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +public interface IRDimBusStationEventDService extends IMppService { + + /** + * 统计母线电站的暂态情况 + * @author cdf + * @date 2023/11/24 + */ + void calEventDay(CalculatedParam calculatedParam); +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java new file mode 100644 index 000000000..f7575a3aa --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java @@ -0,0 +1,25 @@ +package com.njcn.prepare.harmonic.service.mysql.dim; + + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +public interface IRDimBusStationEventMService extends IMppService { + + /** + * 统计母线电站的暂态情况 + * @author cdf + * @date 2023/11/24 + */ + void calEventMonth(CalculatedParam calculatedParam); +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java new file mode 100644 index 000000000..45c876dd5 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java @@ -0,0 +1,25 @@ +package com.njcn.prepare.harmonic.service.mysql.dim; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +public interface IRDimBusStationEventYService extends IMppService { + + + /** + * 统计母线电站的暂态情况 + * @author cdf + * @date 2023/11/24 + */ + void calEventYear(CalculatedParam calculatedParam); +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java deleted file mode 100644 index d397098b8..000000000 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.njcn.prepare.harmonic.service.mysql.dim; - -import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalD; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

- * 服务类 - *

- * - * @author hongawen - * @since 2023-11-14 - */ -public interface IRDimStationGlobalDService extends IService { - -} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java deleted file mode 100644 index 71027b809..000000000 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.njcn.prepare.harmonic.service.mysql.dim; - -import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalM; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

- * 服务类 - *

- * - * @author hongawen - * @since 2023-11-14 - */ -public interface IRDimStationGlobalMService extends IService { - -} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java deleted file mode 100644 index b73cabd00..000000000 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.njcn.prepare.harmonic.service.mysql.dim; - - -import com.baomidou.mybatisplus.extension.service.IService; -import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalY; - -/** - *

- * 服务类 - *

- * - * @author hongawen - * @since 2023-11-14 - */ -public interface IRDimStationGlobalYService extends IService { - -} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java index 24b93b4f2..dcff530e3 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java @@ -1,6 +1,7 @@ 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.DeptGetBase; import com.njcn.harmonic.pojo.po.dim.RDimStationTargetD; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; @@ -13,7 +14,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; * @author cdf * @since 2023-11-21 */ -public interface IRDimStationTargetDService extends IService { +public interface IRDimStationTargetDService extends IMppService { diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java index d2935dfe0..faef125fe 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java @@ -1,6 +1,7 @@ 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.DeptGetBase; import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; @@ -13,7 +14,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; * @author cdf * @since 2023-11-21 */ -public interface IRDimStationTargetMService extends IService { +public interface IRDimStationTargetMService extends IMppService { diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java index 32e2fabcb..688f7bdf4 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java @@ -1,7 +1,10 @@ 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.DeptGetBase; import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; /** *

@@ -11,6 +14,12 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY; * @author cdf * @since 2023-11-21 */ -public interface IRDimStationTargetYService extends IService { +public interface IRDimStationTargetYService extends IMppService { + /** + * **kV变电站**指标超标占比(%) + * @author cdf + * @date 2023/11/21 + */ + void calDimStationTargetYear(CalculatedParam calculatedParam); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java index 425851644..83130f3bb 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java @@ -21,7 +21,9 @@ import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO; import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; @@ -34,6 +36,8 @@ import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalDService; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.po.Dept; import lombok.RequiredArgsConstructor; @@ -81,6 +85,10 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl poList = new ArrayList<>(); LocalDate date = LocalDate.parse(calculatedParam.getDataDate()); - List pmsMidLedgerList = pmsCountLedgerMapper.newDateData(); - Map map = pmsMidLedgerList.stream().collect(Collectors.toMap(PmsCountLedger::getSection, Function.identity())); - List deptList = calculatedParam.getIdList(); + for (DeptGetChildrenDTO dto : deptList) { - Integer stationNum; - Integer busBarNum; + RDimBusGlobalD rDimBusGlobalD = new RDimBusGlobalD(); - if (map.containsKey(dto.getDeptId())) { - PmsCountLedger pmsCountLedger = map.get(dto.getDeptId()); - stationNum = pmsCountLedger.getSubCount(); - busBarNum = pmsCountLedger.getSubvCount(); + List childDept = dto.getDeptChildren(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(RDimBusbarHarmnicDPO::getOrgId,childDept).eq(RDimBusbarHarmnicDPO::getStatisDate,date); + List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper); + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){ + List goodIds = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().collect(Collectors.toList()); - if (stationNum == 0 || busBarNum == 0) { - continue; + List limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limtList)){ + rDimBusGlobalD.setLimitRate(0f); + rDimBusGlobalD.setLimitAvgRate(0f); + }else { + List busBarIds = limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().collect(Collectors.toList()); + rDimBusGlobalD.setLimitRate((float)busBarIds.size()/goodIds.size()); + rDimBusGlobalD.setLimitAvgRate((float)busBarIds.size()/goodIds.size()); } - } else { - continue; } - List monitorIds = dto.getLineIds(); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(RDimStationBaseD::getOrgId,childDept).eq(RDimStationBaseD::getStatisDate,date); + List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper); + + if(CollUtil.isNotEmpty(rDimStationBaseDList)){ + long goodStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + + List limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + + if(CollUtil.isEmpty(limtList)){ + rDimBusGlobalD.setStationLimitRate(0f); + rDimBusGlobalD.setStationLimitAvgRate(0f); + }else { + long limitCount = limtList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + rDimBusGlobalD.setStationLimitRate((float)limitCount/goodStation); + rDimBusGlobalD.setStationLimitAvgRate((float)limitCount/goodStation); + } + } + + if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){ + rDimBusGlobalD.setLimitRate(3.14159f); + rDimBusGlobalD.setLimitAvgRate(3.14159f); + } + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){ + rDimBusGlobalD.setStationLimitRate(3.14159f); + rDimBusGlobalD.setStationLimitAvgRate(3.14159f); + } + poList.add(rDimBusGlobalD); + + this.saveOrUpdateBatchByMultiId(poList,100); + + /* List monitorIds = dto.getLineIds(); if (CollectionUtil.isNotEmpty(monitorIds)) { RDimBusGlobalD rDimBusGlobalD = new RDimBusGlobalD(); rDimBusGlobalD.setOrgId(dto.getDeptId()); @@ -124,11 +167,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl integrityDList = rStatIntegrityDMapper.selectList(lambdaQueryWrapper); if (CollectionUtil.isEmpty(integrityDList)) { - rDimBusGlobalD.setMonitorRate(0f); rDimBusGlobalD.setLimitRate(3.14159f); rDimBusGlobalD.setLimitAvgRate(3.14159f); - rDimBusGlobalD.setStationMonitorRate(0f); rDimBusGlobalD.setStationLimitRate(3.14159f); rDimBusGlobalD.setStationLimitAvgRate(3.14159f); poList.add(rDimBusGlobalD); @@ -140,11 +181,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl it.getRealTime() / it.getDueTime() >= 0.95f) .collect(Collectors.toList()); if (CollectionUtil.isEmpty(integrityDList)) { - rDimBusGlobalD.setMonitorRate(0f); rDimBusGlobalD.setLimitRate(3.14159f); rDimBusGlobalD.setLimitAvgRate(3.14159f); - rDimBusGlobalD.setStationMonitorRate(0f); rDimBusGlobalD.setStationLimitRate(3.14159f); rDimBusGlobalD.setStationLimitAvgRate(3.14159f); poList.add(rDimBusGlobalD); @@ -159,8 +198,6 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl goodStationIds = monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); - rDimBusGlobalD.setMonitorRate((float) goodLineIds.size() / busBarNum * 100); - rDimBusGlobalD.setStationMonitorRate((float) goodStationIds.size() / stationNum * 100); LambdaQueryWrapper limitWrapper = new LambdaQueryWrapper<>(); limitWrapper.in(RStatLimitTargetDPO::getLineId, goodMonitorIds).eq(RStatLimitTargetDPO::getTime, date); @@ -216,43 +253,13 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl item.setState(DataStateEnum.ENABLE.getCode())).collect(Collectors.toList()); - this.saveOrUpdateBatchByMultiId(poList); - } - @Override - public void globalCalBusBarMonth(CalculatedParam calculatedParam) { - DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); - DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.between(RDimBusGlobalD::getStatisDate, start, end) - .eq(RDimBusGlobalD::getState, DataStateEnum.ENABLE.getCode()); - List dayDataList = this.list(lambdaQueryWrapper); - if (CollUtil.isNotEmpty(dayDataList)) { - Map deptMap = calculatedParam.getIdList().stream().collect(Collectors.toMap(DeptGetChildrenDTO::getDeptId, Function.identity())); - Map> map = dayDataList.stream().collect(Collectors.groupingBy(RDimBusGlobalD::getOrgId)); - - map.forEach((key, val) -> { - DeptGetChildrenDTO dto = deptMap.get(key); - List monitorIds = dto.getLineIds(); - - }); - - } - - - } - - @Override - public void globalCalBusBarYear(CalculatedParam calculatedParam) { - - } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java index 45707ebad..6130cc17c 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java @@ -1,12 +1,34 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD; import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalMMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalMService; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + /** *

* 服务实现类 @@ -16,6 +38,84 @@ import org.springframework.stereotype.Service; * @since 2023-11-14 */ @Service -public class RDimBusGlobalMServiceImpl extends ServiceImpl implements IRDimBusGlobalMService { +@RequiredArgsConstructor +public class RDimBusGlobalMServiceImpl extends MppServiceImpl implements IRDimBusGlobalMService { + + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; + + private final IRDimStationBaseDService irDimStationBaseDService; + + @Override + public void globalCalBusBarMonth(CalculatedParam calculatedParam) { + List poList = new ArrayList<>(); + + + DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + + List deptList = calculatedParam.getIdList(); + + for (DeptGetChildrenDTO dto : deptList) { + RDimBusGlobalM rDimBusGlobalM = new RDimBusGlobalM(); + + List childDept = dto.getDeptChildren(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count"); + queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end); + queryWrapper.groupBy("Statis_Date,BusBar_Id"); + + List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(queryWrapper); + + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){ + List limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limtList)){ + rDimBusGlobalM.setLimitRate(0f); + rDimBusGlobalM.setLimitAvgRate(0f); + }else { + long good =rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + long limit =limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + rDimBusGlobalM.setLimitRate((float)limit/good); + rDimBusGlobalM.setLimitAvgRate((float)limtList.size()/rDimBusbarHarmnicDPOList.size()); + } + } + + + LambdaQueryWrapper stationQueryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count"); + queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end); + queryWrapper.groupBy("Statis_Date,Station_Id"); + List rDimStationBaseDList = irDimStationBaseDService.list(stationQueryWrapper); + + if(CollUtil.isNotEmpty(rDimStationBaseDList)){ + List limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limtList)){ + rDimBusGlobalM.setStationLimitRate(0f); + rDimBusGlobalM.setStationLimitAvgRate(0f); + }else { + + long good =rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + long limit =limtList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + rDimBusGlobalM.setStationLimitRate((float)limit/good); + rDimBusGlobalM.setStationLimitAvgRate((float)limtList.size()/rDimStationBaseDList.size()); + } + } + + if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){ + rDimBusGlobalM.setLimitRate(3.14159f); + rDimBusGlobalM.setLimitAvgRate(3.14159f); + } + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){ + rDimBusGlobalM.setStationLimitRate(3.14159f); + rDimBusGlobalM.setStationLimitAvgRate(3.14159f); + } + poList.add(rDimBusGlobalM); + + this.saveOrUpdateBatchByMultiId(poList,100); + + + } + + + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java index e8dd3ba87..061b9bb86 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java @@ -1,12 +1,31 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM; import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalYMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalYService; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + /** *

* 服务实现类 @@ -16,6 +35,83 @@ import org.springframework.stereotype.Service; * @since 2023-11-14 */ @Service -public class RDimBusGlobalYServiceImpl extends ServiceImpl implements IRDimBusGlobalYService { +@RequiredArgsConstructor +public class RDimBusGlobalYServiceImpl extends MppServiceImpl implements IRDimBusGlobalYService { + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; + + private final IRDimStationBaseDService irDimStationBaseDService; + + @Override + public void globalCalBusBarYear(CalculatedParam calculatedParam) { + + List poList = new ArrayList<>(); + + + DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + + List deptList = calculatedParam.getIdList(); + + for (DeptGetChildrenDTO dto : deptList) { + RDimBusGlobalY rDimBusGlobalY = new RDimBusGlobalY(); + + List childDept = dto.getDeptChildren(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count"); + queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end); + queryWrapper.groupBy("Statis_Date,BusBar_Id"); + + List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(queryWrapper); + + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){ + List limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limtList)){ + rDimBusGlobalY.setLimitRate(0f); + rDimBusGlobalY.setLimitAvgRate(0f); + }else { + long good =rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + long limit =limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + rDimBusGlobalY.setLimitRate((float)limit/good); + rDimBusGlobalY.setLimitAvgRate((float)limtList.size()/rDimBusbarHarmnicDPOList.size()); + } + } + + + LambdaQueryWrapper stationQueryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count"); + queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end); + queryWrapper.groupBy("Statis_Date,Station_Id"); + List rDimStationBaseDList = irDimStationBaseDService.list(stationQueryWrapper); + + if(CollUtil.isNotEmpty(rDimStationBaseDList)){ + List limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limtList)){ + rDimBusGlobalY.setStationLimitRate(0f); + rDimBusGlobalY.setStationLimitAvgRate(0f); + }else { + + long good =rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + long limit =limtList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + rDimBusGlobalY.setStationLimitRate((float)limit/good); + rDimBusGlobalY.setStationLimitAvgRate((float)limtList.size()/rDimStationBaseDList.size()); + } + } + + if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){ + rDimBusGlobalY.setLimitRate(3.14159f); + rDimBusGlobalY.setLimitAvgRate(3.14159f); + } + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){ + rDimBusGlobalY.setStationLimitRate(3.14159f); + rDimBusGlobalY.setStationLimitAvgRate(3.14159f); + } + poList.add(rDimBusGlobalY); + + this.saveOrUpdateBatchByMultiId(poList,100); + + + } + + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java new file mode 100644 index 000000000..464676da7 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java @@ -0,0 +1,112 @@ +package com.njcn.prepare.harmonic.service.mysql.dim.impl; + + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; +import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventDMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventDService; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +@Service +@RequiredArgsConstructor +public class RDimBusStationEventDServiceImpl extends MppServiceImpl implements IRDimBusStationEventDService { + + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; + + private final IRDimStationBaseDService irDimStationBaseDService; + + @Override + public void calEventDay(CalculatedParam calculatedParam) { + List poList = new ArrayList<>(); + LocalDate date = LocalDate.parse(calculatedParam.getDataDate()); + + List deptList = calculatedParam.getIdList(); + for(DeptGetChildrenDTO dto : deptList){ + List deptIds = dto.getDeptChildren(); + RDimBusStationEventD rDimBusStationEventD = new RDimBusStationEventD(); + rDimBusStationEventD.setOrgId(dto.getDeptId()); + rDimBusStationEventD.setStatisDate(date); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(RDimBusbarHarmnicDPO::getOrgId,deptIds) + .eq(RDimBusbarHarmnicDPO::getStatisDate,date) + .eq(RDimBusbarHarmnicDPO::getLevel,1); + + List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper); + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){ + long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + List limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + + if(CollUtil.isEmpty(limitBus)){ + rDimBusStationEventD.setLimitRate(0f); + rDimBusStationEventD.setLimitFreq(0f); + }else { + long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + rDimBusStationEventD.setLimitRate((float)limit/allBus); + + int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum(); + rDimBusStationEventD.setLimitFreq((float)sum/allBus); + + //TODO 后续加入暂态指标的代码 + } + } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(RDimStationBaseD::getOrgId,deptIds) + .eq(RDimStationBaseD::getStatisDate,date) + .eq(RDimStationBaseD::getLevel,1); + + List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper); + if(CollUtil.isNotEmpty(rDimStationBaseDList)){ + long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + List limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + + if(CollUtil.isEmpty(limitStation)){ + rDimBusStationEventD.setStationLimitRate(0f); + rDimBusStationEventD.setStationFreq(0f); + }else { + long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count(); + rDimBusStationEventD.setLimitRate((float)limitNum/allStation); + + int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum(); + rDimBusStationEventD.setLimitFreq((float)sum/allStation); + } + } + + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){ + rDimBusStationEventD.setStationLimitRate(3.14159f); + rDimBusStationEventD.setStationFreq(3.14159f); + } + if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){ + rDimBusStationEventD.setLimitRate(3.14159f); + rDimBusStationEventD.setLimitFreq(3.14159f); + } + poList.add(rDimBusStationEventD); + + } + this.saveOrUpdateBatchByMultiId(poList,100); + + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java new file mode 100644 index 000000000..6867051dd --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java @@ -0,0 +1,126 @@ +package com.njcn.prepare.harmonic.service.mysql.dim.impl; + + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; +import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventMMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventMService; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +@Service +@RequiredArgsConstructor +public class RDimBusStationEventMServiceImpl extends MppServiceImpl implements IRDimBusStationEventMService { + + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; + + private final IRDimStationBaseDService irDimStationBaseDService; + + @Override + public void calEventMonth(CalculatedParam calculatedParam) { + List poList = new ArrayList<>(); + + DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + + + List deptList = calculatedParam.getIdList(); + for(DeptGetChildrenDTO dto : deptList){ + List deptIds = dto.getDeptChildren(); + RDimBusStationEventM rDimBusStationEventM = new RDimBusStationEventM(); + rDimBusStationEventM.setOrgId(dto.getDeptId()); + rDimBusStationEventM.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN))); + + QueryWrapper lambdaQueryWrapper = new QueryWrapper<>(); + lambdaQueryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count"); + lambdaQueryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,deptIds).between(RDimBusbarHarmnicDPO::getStatisDate,start,end).eq(RDimBusbarHarmnicDPO::getLevel,1); + lambdaQueryWrapper.groupBy("Statis_Date,BusBar_Id"); + + + + + List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper); + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){ + List limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limitBus)){ + rDimBusStationEventM.setLimitRate(0f); + rDimBusStationEventM.setLimitFreq(0f); + }else { + long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + rDimBusStationEventM.setLimitRate((float)limit/allBus); + + int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum(); + rDimBusStationEventM.setLimitFreq((float)sum/allBus); + + //TODO 后续加入暂态指标的代码 + } + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count"); + queryWrapper.lambda().in(RDimStationBaseD::getOrgId,deptIds).between(RDimStationBaseD::getStatisDate,start,end); + queryWrapper.groupBy("Statis_Date,Station_Id"); + List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper); + + if(CollUtil.isNotEmpty(rDimStationBaseDList)){ + long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + List limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + + if(CollUtil.isEmpty(limitStation)){ + rDimBusStationEventM.setStationLimitRate(0f); + rDimBusStationEventM.setStationFreq(0f); + }else { + long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count(); + rDimBusStationEventM.setStationLimitRate((float)limitNum/allStation); + int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum(); + rDimBusStationEventM.setStationFreq((float)sum/allStation); + } + } + + + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){ + rDimBusStationEventM.setStationLimitRate(3.14159f); + rDimBusStationEventM.setStationFreq(3.14159f); + } + if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){ + rDimBusStationEventM.setLimitRate(3.14159f); + rDimBusStationEventM.setLimitFreq(3.14159f); + } + poList.add(rDimBusStationEventM); + + } + + this.saveOrUpdateBatchByMultiId(poList,100); + + + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java new file mode 100644 index 000000000..d053db16b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java @@ -0,0 +1,123 @@ +package com.njcn.prepare.harmonic.service.mysql.dim.impl; + + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM; +import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; +import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventYMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventYService; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2023-11-24 + */ +@Service +@RequiredArgsConstructor +public class RDimBusStationEventYServiceImpl extends MppServiceImpl implements IRDimBusStationEventYService { + + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; + + private final IRDimStationBaseDService irDimStationBaseDService; + + @Override + public void calEventYear(CalculatedParam calculatedParam) { + List poList = new ArrayList<>(); + + DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)); + + + List deptList = calculatedParam.getIdList(); + for(DeptGetChildrenDTO dto : deptList){ + List deptIds = dto.getDeptChildren(); + RDimBusStationEventY rDimBusStationEventY = new RDimBusStationEventY(); + rDimBusStationEventY.setOrgId(dto.getDeptId()); + rDimBusStationEventY.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN))); + + QueryWrapper lambdaQueryWrapper = new QueryWrapper<>(); + lambdaQueryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count"); + lambdaQueryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,deptIds).between(RDimBusbarHarmnicDPO::getStatisDate,start,end).eq(RDimBusbarHarmnicDPO::getLevel,1); + lambdaQueryWrapper.groupBy("Statis_Date,BusBar_Id"); + + + + + List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper); + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){ + List limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + if(CollUtil.isEmpty(limitBus)){ + rDimBusStationEventY.setLimitRate(0f); + rDimBusStationEventY.setLimitFreq(0f); + }else { + long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + rDimBusStationEventY.setLimitRate((float)limit/allBus); + + int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum(); + rDimBusStationEventY.setLimitFreq((float)sum/allBus); + + //TODO 后续加入暂态指标的代码 + } + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count"); + queryWrapper.lambda().in(RDimStationBaseD::getOrgId,deptIds).between(RDimStationBaseD::getStatisDate,start,end); + queryWrapper.groupBy("Statis_Date,Station_Id"); + List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper); + + if(CollUtil.isNotEmpty(rDimStationBaseDList)){ + long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count(); + List limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList()); + + if(CollUtil.isEmpty(limitStation)){ + rDimBusStationEventY.setStationLimitRate(0f); + rDimBusStationEventY.setStationFreq(0f); + }else { + long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count(); + rDimBusStationEventY.setStationLimitRate((float)limitNum/allStation); + int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum(); + rDimBusStationEventY.setStationFreq((float)sum/allStation); + } + } + + + if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){ + rDimBusStationEventY.setStationLimitRate(3.14159f); + rDimBusStationEventY.setStationFreq(3.14159f); + } + if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){ + rDimBusStationEventY.setLimitRate(3.14159f); + rDimBusStationEventY.setLimitFreq(3.14159f); + } + poList.add(rDimBusStationEventY); + + } + + this.saveOrUpdateBatchByMultiId(poList,100); + + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java index 67141e5a4..881437a06 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java @@ -1,10 +1,10 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalD; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalDMapper; -import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalDService; import org.springframework.stereotype.Service; /** @@ -16,6 +16,6 @@ import org.springframework.stereotype.Service; * @since 2023-11-14 */ @Service -public class RDimStationGlobalDServiceImpl extends ServiceImpl implements IRDimStationGlobalDService { +public class RDimStationGlobalDServiceImpl extends ServiceImpl implements IService { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java index 3cc64bb30..de766c794 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java @@ -1,10 +1,10 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalM; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalMMapper; -import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalMService; import org.springframework.stereotype.Service; /** @@ -16,6 +16,6 @@ import org.springframework.stereotype.Service; * @since 2023-11-14 */ @Service -public class RDimStationGlobalMServiceImpl extends ServiceImpl implements IRDimStationGlobalMService { +public class RDimStationGlobalMServiceImpl extends ServiceImpl implements IService { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java index c581b4113..f51fccdc0 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java @@ -1,10 +1,10 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalY; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalYMapper; -import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalYService; import org.springframework.stereotype.Service; /** @@ -16,6 +16,6 @@ import org.springframework.stereotype.Service; * @since 2023-11-14 */ @Service -public class RDimStationGlobalYServiceImpl extends ServiceImpl implements IRDimStationGlobalYService { +public class RDimStationGlobalYServiceImpl extends ServiceImpl implements IService { } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java index aa08d0b07..911a61ae2 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java @@ -4,6 +4,7 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.device.biz.pojo.dto.DeptGetBase; import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; @@ -31,7 +32,7 @@ import java.util.stream.Collectors; */ @Service @RequiredArgsConstructor -public class RDimStationTargetDServiceImpl extends ServiceImpl implements IRDimStationTargetDService { +public class RDimStationTargetDServiceImpl extends MppServiceImpl implements IRDimStationTargetDService { private final IRDimStationBaseDService irDimStationBaseDService; @@ -58,7 +59,7 @@ public class RDimStationTargetDServiceImpl extends ServiceImpl> voltageMap = rDimStationBaseDList.stream().collect(Collectors.groupingBy(RDimStationBaseD::getVoltageLevel)); voltageMap.forEach((voltageKey,voltageVal)->{ - int stationNum = voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().collect(Collectors.toList()).size(); + long stationNum = voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().count(); Map> targetMap = voltageVal.stream().collect(Collectors.groupingBy(RDimStationBaseD::getTargetType)); targetMap.forEach((targetKey,targetVal)->{ @@ -80,7 +81,7 @@ public class RDimStationTargetDServiceImpl extends ServiceImpl implements IRDimStationTargetMService { +public class RDimStationTargetMServiceImpl extends MppServiceImpl implements IRDimStationTargetMService { private final IRDimStationBaseDService irDimStationBaseDService; diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java index 924cc77af..f10389539 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java @@ -1,12 +1,31 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.device.biz.pojo.dto.DeptGetBase; +import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD; +import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM; import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationTargetYMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationTargetYService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** *

* 服务实现类 @@ -16,6 +35,61 @@ import org.springframework.stereotype.Service; * @since 2023-11-21 */ @Service -public class RDimStationTargetYServiceImpl extends ServiceImpl implements IRDimStationTargetYService { +@RequiredArgsConstructor +public class RDimStationTargetYServiceImpl extends MppServiceImpl implements IRDimStationTargetYService { + private final IRDimStationBaseDService irDimStationBaseDService; + + @Override + public void calDimStationTargetYear(CalculatedParam calculatedParam) { + List poList = new ArrayList<>(); + DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + + List deptList = calculatedParam.getIdList(); + + for(DeptGetBase deptGetBase : deptList){ + List deptCodes = deptGetBase.getUnitChildrenList(); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(RDimStationBaseD::getOrgId,deptCodes) + .between(RDimStationBaseD::getStatisDate,start,end).eq(RDimStationBaseD::getLevel,0); + + List rDimStationBaseDList = irDimStationBaseDService.list(lambdaQueryWrapper); + if(CollectionUtil.isEmpty(rDimStationBaseDList)){ + continue; + } + + + Map> voltageMap = rDimStationBaseDList.stream().collect(Collectors.groupingBy(RDimStationBaseD::getVoltageLevel)); + voltageMap.forEach((voltageKey,voltageVal)->{ + int stationNum = (int) voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().count(); + int stationAllNum = (int) voltageVal.stream().map(RDimStationBaseD::getStationId).count(); + + Map> targetMap = voltageVal.stream().collect(Collectors.groupingBy(RDimStationBaseD::getTargetType)); + targetMap.forEach((targetKey,targetVal)->{ + RDimStationTargetY rDimStationTargetY = new RDimStationTargetY(); + rDimStationTargetY.setOrgId(deptGetBase.getUnitId()); + rDimStationTargetY.setStatisDate(LocalDate.parse(calculatedParam.getDataDate())); + rDimStationTargetY.setVoltageLevel(voltageKey); + rDimStationTargetY.setTargetType(targetKey); + + List limitList = targetVal.stream().filter(targetItem->targetItem.getLimitCount()>0).map(RDimStationBaseD::getStationId).distinct().collect(Collectors.toList()); + rDimStationTargetY.setLimitRate((double) (limitList.size() / stationNum)); + + long limitAllList = targetVal.stream().filter(targetItem->targetItem.getLimitCount()>0).map(RDimStationBaseD::getStationId).count(); + rDimStationTargetY.setLimitAvgRate((double) (limitAllList / stationAllNum)); + + //**kV变电站**指标合格率(%) + int limit = targetVal.stream().mapToInt(RDimStationBaseD::getLimitCount).sum(); + int all = targetVal.stream().mapToInt(RDimStationBaseD::getStatisCount).sum(); + rDimStationTargetY.setPassRate((double)(all-limit)/all); + rDimStationTargetY.setPassAvgRate((double)(all-limit)/all); + rDimStationTargetY.setState(DataStateEnum.ENABLE.getCode()); + poList.add(rDimStationTargetY); + }); + }); + this.saveOrUpdateBatchByMultiId(poList,100); + } + } }