From e5ca1cbd056dbe481dca801965fd28a85ab120da Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Wed, 13 Dec 2023 15:40:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=97=E6=B3=95=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapping/PmsGeneratrixWireMapper.xml | 4 +- .../dto/ConverterDetailStatisticsDTO.java | 83 +++-- .../pojo/dto/PqTypicalSourceCreateDTO.java | 100 ++++++ .../dto/SubstationQualityStatisticsDTO.java | 14 +- .../po/send/ConverterdetailstatisticsPO.java | 93 ++++++ .../pojo/po/send/PqTypicalSourceCreatePO.java | 123 ++++++++ .../send/SubstationQualityStatisticsPO.java | 115 +++++++ .../StationDataQualitySendController.java | 41 --- .../ConverterdetailstatisticsController.java | 27 ++ .../send/PqTypicalSourceCreateController.java | 24 ++ ...SubstationQualityStatisticsController.java | 29 ++ .../ConverterdetailstatisticsPOMapper.java | 15 + .../send/PqTypicalSourceCreatePOMapper.java | 15 + .../SubstationQualityStatisticsPOMapper.java | 15 + .../ConverterdetailstatisticsPOMapper.xml | 15 + .../mapping/PqTypicalSourceCreatePOMapper.xml | 13 + .../SubstationQualityStatisticsPOMapper.xml | 12 + .../StationDataQualityService.java | 12 - .../impl/StationDataQualityServiceImpl.java | 46 --- .../ConverterdetailstatisticsPOService.java | 17 + .../send/PqTypicalSourceCreatePOService.java | 17 + .../SubstationQualityStatisticsPOService.java | 17 + ...onverterdetailstatisticsPOServiceImpl.java | 23 ++ .../PqTypicalSourceCreatePOServiceImpl.java | 25 ++ ...stationQualityStatisticsPOServiceImpl.java | 24 ++ .../prepare/executor/OrgPointExecutor.java | 33 ++ .../prepare/executor/SubStationExecutor.java | 22 ++ .../ConverterdetailstatisticsPOMapper.java | 15 + .../send/PqTypicalSourceCreatePOMapper.java | 15 + .../SubstationQualityStatisticsPOMapper.java | 15 + .../ConverterdetailstatisticsPOMapper.xml | 40 +++ .../mapping/PqTypicalSourceCreatePOMapper.xml | 13 + .../SubstationQualityStatisticsPOMapper.xml | 46 +++ .../ConverterdetailstatisticsPOService.java | 20 ++ .../send/PqTypicalSourceCreatePOService.java | 20 ++ .../SubstationQualityStatisticsPOService.java | 19 ++ ...onverterdetailstatisticsPOServiceImpl.java | 290 +++++++++++++++++ .../PqTypicalSourceCreatePOServiceImpl.java | 294 ++++++++++++++++++ ...stationQualityStatisticsPOServiceImpl.java | 208 +++++++++++++ 39 files changed, 1834 insertions(+), 135 deletions(-) create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/PqTypicalSourceCreateDTO.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/ConverterdetailstatisticsPO.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/PqTypicalSourceCreatePO.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/SubstationQualityStatisticsPO.java delete mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/ConverterdetailstatisticsController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/PqTypicalSourceCreateController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/SubstationQualityStatisticsController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/ConverterdetailstatisticsPOMapper.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/PqTypicalSourceCreatePOMapper.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/SubstationQualityStatisticsPOMapper.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/ConverterdetailstatisticsPOMapper.xml create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/PqTypicalSourceCreatePOMapper.xml create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/SubstationQualityStatisticsPOMapper.xml delete mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java delete mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/ConverterdetailstatisticsPOService.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/PqTypicalSourceCreatePOService.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/SubstationQualityStatisticsPOService.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/ConverterdetailstatisticsPOServiceImpl.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/SubstationQualityStatisticsPOServiceImpl.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/ConverterdetailstatisticsPOMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/PqTypicalSourceCreatePOMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/SubstationQualityStatisticsPOMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/ConverterdetailstatisticsPOMapper.xml create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/PqTypicalSourceCreatePOMapper.xml create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/SubstationQualityStatisticsPOMapper.xml create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/ConverterdetailstatisticsPOService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/PqTypicalSourceCreatePOService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/SubstationQualityStatisticsPOService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/ConverterdetailstatisticsPOServiceImpl.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/SubstationQualityStatisticsPOServiceImpl.java diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsGeneratrixWireMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsGeneratrixWireMapper.xml index 14385ded1..f6d7ad29b 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsGeneratrixWireMapper.xml +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PmsGeneratrixWireMapper.xml @@ -10,8 +10,8 @@ pm.Powerr_Id AS powerId, pm.Powerr_Name AS powerName, pm.org_name as orgName, - pg.Generatrix_Id AS generatrixId, - pm.Generatrix_Name AS generatrixName, + pg.id AS generatrixId, + pm.Line_Name AS generatrixName, pm.Id AS monitorId, pm.`Name` AS monitorName, pg.Scale AS generatrixVoltageLevel diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java index a83287f81..45e71a2d2 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java @@ -17,44 +17,42 @@ public class ConverterDetailStatisticsDTO { /*主键 是否必填:是*/ private String id; - /*发生超标或暂态母线日均占比(%) 是否必填:否*/ - private BigDecimal abnormalBusAvgRate; - /*发生超标或暂态母线数量(条) 是否必填:是*/ - private Integer abnormalBusNum; - /*发生超标或暂态母线占比(%) 是否必填:否*/ - private BigDecimal abnormalBusRate; - /*发生超标或暂态换流站日均占比(%) 是否必填:否*/ - private BigDecimal abnormalConverterAvgRate; - /*发生超标或暂态换流站数量(条) 是否必填:否*/ - private Integer abnormalConverterNum; - /*发生超标或暂态换流站占比(%) 是否必填:否*/ - private BigDecimal abnormalConverterRate; - /*市级单位id 是否必填:是*/ - private String cityId; - /*市级单位名称 是否必填:否*/ - private String cityName; - /*监测交流母线数量(条) 是否必填:否*/ - private Integer monitorAlternatingBusNum; - /*交流母线监测率(%) 是否必填:否*/ - private BigDecimal monitorAlternatingBusRate; - /*监测换流站数量(座) 是否必填:是*/ - private Integer monitorConverterNum; - /*换流站监测率(%) 是否必填:*/ - private BigDecimal monitorConverterRate; - /*在运交流母线数量(条) 是否必填:是*/ - private Integer onlineAlternatingBusNum; - /*在运换流站数量(座) 是否必填:是*/ - private Integer onlineConverterNum; + /*省级单位名称 是否必填:否*/ private String provinceName; /*省级单位id 是否必填:是*/ private String provinceId; + + /*市级单位id 是否必填:是*/ + private String cityId; + /*市级单位名称 是否必填:否*/ + private String cityName; + + + /*统计日期 是否必填:是*/ private String statisticalDate; /*统计类型 是否必填:是*/ private String statisticalType; + /*统计层级 是否必填:是*/ private String statisticalLevel; + + + /*在运交流母线数量(条) 是否必填:是*/ + private Integer onlineAlternatingBusNum; + /*在运换流站数量(座) 是否必填:是*/ + private Integer onlineConverterNum; + + /*发生超标或暂态母线数量(条) 是否必填:是*/ + private Integer abnormalBusNum; + + + /*监测换流站数量(座) 是否必填:是*/ + private Integer monitorConverterNum; + /*监测交流母线数量(条) 是否必填:否*/ + private Integer monitorAlternatingBusNum; + /*累计发生超标或暂态换流站数量(座) 是否必填:否*/ private Integer abnormalConverterCount; /*累计监测换流站数量(座) 是否必填:否*/ @@ -66,4 +64,33 @@ public class ConverterDetailStatisticsDTO { + + /*发生超标或暂态换流站数量(条) 是否必填:否*/ + private Integer abnormalConverterNum; + + /*发生超标或暂态母线日均占比(%) 是否必填:否*/ + private BigDecimal abnormalBusAvgRate; + + /*发生超标或暂态母线占比(%) 是否必填:否*/ + private BigDecimal abnormalBusRate; + /*发生超标或暂态换流站日均占比(%) 是否必填:否*/ + private BigDecimal abnormalConverterAvgRate; + + /*发生超标或暂态换流站占比(%) 是否必填:否*/ + private BigDecimal abnormalConverterRate; + + + /*交流母线监测率(%) 是否必填:否*/ + private BigDecimal monitorAlternatingBusRate; + + /*换流站监测率(%) 是否必填:*/ + private BigDecimal monitorConverterRate; + + + + + + + + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/PqTypicalSourceCreateDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/PqTypicalSourceCreateDTO.java new file mode 100644 index 000000000..d42076809 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/PqTypicalSourceCreateDTO.java @@ -0,0 +1,100 @@ +package com.njcn.harmonic.pojo.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Description: + * Date: 2023/12/12 14:40【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class PqTypicalSourceCreateDTO { + + /*唯一标识 uuid是否必填:是*/ + private String id; + + /*统计日期 年yyyy,月yyyy-MM,日yyyy-MM-dd是否必填:是*/ + private String statisticalDate; + /*统计层级 见3.20是否必填:是*/ + private String statisticalLevel; + /*统计类型 见3.19是否必填:是*/ + private String statisticalType; + /*指标类型 见3.18是否必填:是*/ + private String indexType; + + /*所属网省id 取ISC平台上的组织id是否必填:是*/ + private String provinceId; + /*所属网省名称 取ISC平台上的组织名称是否必填:是*/ + private String provinceName; + /*所属地市id 取ISC平台上的组织id是否必填:*/ + private String cityId; + /*所属地市名称 取ISC平台上的组织名称是否必填:*/ + private String cityName; + /*所属区县id 取ISC平台上的组织id是否必填:*/ + private String countyId; + /*所属区县名称 取ISC平台上的组织名称是否必填:*/ + private String countyName; + + /*行业分类 见3.21,当典型源荷为“其他干扰源”的时候为必填。是否必填:*/ + private String industryType; + /*干扰源数量 是否必填:是*/ + private Integer interferenceSourceNum; + + + /*闪变平均超占比 存放百分比是否必填:是*/ + private BigDecimal flickerAvgOvRate; + /*闪变超标数 是否必填:是*/ + private Integer flickerOvNum; + /*闪变超标占比 是否必填:是*/ + private BigDecimal flickerOvRate; + + + /*谐波电流平均超标占比 是否必填:是*/ + private BigDecimal iAvgOvRate; + /*谐波电流超标数 是否必填:是*/ + private Integer iOvNum; + /*谐波电流超标占比 是否必填:是*/ + private BigDecimal iOvRate; + + /*负序电流平均超标占比 是否必填:是*/ + private BigDecimal inseqAvgOvRate; + /*负序电流超标数 是否必填:是*/ + private Integer inseqOvNum; + /*负序电流超标占比 是否必填:是*/ + private BigDecimal inseqOvRate; + + + + /*三相不平衡超标数 是否必填:是*/ + private Integer unbanOvNum; + /*三相不平衡超标占比 是否必填:是*/ + private BigDecimal unbanOvRate; + /*三相不平衡平均超标占比 是否必填:是*/ + private BigDecimal unbanAvgOvRate; + + /*谐波电压平均超标占比 是否必填:是*/ + private BigDecimal vAvgOvRate; + /*谐波电压超标数 是否必填:是*/ + private Integer vOvNum; + /*谐波电压超标占比 是否必填:是*/ + private BigDecimal vOvRate; + + /*实现监测数量 是否必填:是*/ + private Integer monitorNum; + /*监测率 是否必填:是*/ + private BigDecimal monitoringRate; + /*超标数 是否必填:是*/ + private Integer ovNum; + /*超标占比 是否必填:是*/ + private BigDecimal ovRate; + + /*累计超标天数合计 是否必填:*/ + private Integer ovDayCount; + /*平均超标天数 当统计类型是月数据、年数据时必填是否必填:*/ + private BigDecimal averageOvDays; + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java index 4cbc5b523..c98ee3c23 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java @@ -38,6 +38,8 @@ public class SubstationQualityStatisticsDTO { private String converterId; /*换流站名称 是否必填:是*/ private String converterName; + /*电压等级 是否必填:是*/ + private String voltageLevel; /*母线id 是否必填:否*/ private String busId; @@ -51,8 +53,13 @@ public class SubstationQualityStatisticsDTO { /*站内有效监测点数量(个) 是否必填:是*/ private Integer effectiveMonitorNum; + /*谐波电压超标天数 是否必填:否*/ + private Integer harmvOvDay; + /*当年累计月数 是否必填:否*/ + private Integer monthsCount; /*月均超标天数 是否必填:否*/ private BigDecimal monthOvDays; + /*奇次谐波电压限值(%) 是否必填:是*/ private BigDecimal oddVoltLimit; /*累计超标天数 是否必填:否*/ @@ -71,18 +78,13 @@ public class SubstationQualityStatisticsDTO { private BigDecimal v5; /*7次谐波电压95%概率值(%) 是否必填:否*/ private BigDecimal v7; - /*电压等级 是否必填:是*/ - private String voltageLevel; + /*电压总谐波畸变率95%概率值统计值(%) 是否必填:否*/ private BigDecimal vthd; /*电压总谐波畸变率95%概率值限值(%) 是否必填:是*/ private BigDecimal vthdLimit; - /*谐波电压超标天数 是否必填:否*/ - private Integer harmvOvDay; - /*当年累计月数 是否必填:否*/ - private Integer monthsCount; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/ConverterdetailstatisticsPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/ConverterdetailstatisticsPO.java new file mode 100644 index 000000000..adf9d58ec --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/ConverterdetailstatisticsPO.java @@ -0,0 +1,93 @@ +package com.njcn.harmonic.pojo.po.send; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "converterdetailstatistics") +public class ConverterdetailstatisticsPO { + @TableId(value = "id", type = IdType.INPUT) + private String id; + + @TableField(value = "abnormalBusAvgRate") + private BigDecimal abnormalBusAvgRate; + + @TableField(value = "abnormalBusNum") + private Integer abnormalBusNum; + + @TableField(value = "abnormalBusRate") + private BigDecimal abnormalBusRate; + + @TableField(value = "abnormalConverterAvgRate") + private BigDecimal abnormalConverterAvgRate; + + @TableField(value = "abnormalConverterNum") + private Integer abnormalConverterNum; + + @TableField(value = "abnormalConverterRate") + private BigDecimal abnormalConverterRate; + + @TableField(value = "cityId") + private String cityId; + + @TableField(value = "cityName") + private String cityName; + + @TableField(value = "monitorAlternatingBusNum") + private Integer monitorAlternatingBusNum; + + @TableField(value = "monitorAlternatingBusRate") + private BigDecimal monitorAlternatingBusRate; + + @TableField(value = "monitorConverterNum") + private Integer monitorConverterNum; + + @TableField(value = "monitorConverterRate") + private BigDecimal monitorConverterRate; + + @TableField(value = "onlineAlternatingBusNum") + private Integer onlineAlternatingBusNum; + + @TableField(value = "onlineConverterNum") + private Integer onlineConverterNum; + + @TableField(value = "provinceName") + private String provinceName; + + @TableField(value = "provinceId") + private String provinceId; + + @TableField(value = "statisticalDate") + private String statisticalDate; + + @TableField(value = "statisticalType") + private String statisticalType; + + @TableField(value = "statisticalLevel") + private String statisticalLevel; + + @TableField(value = "abnormalConverterCount") + private Integer abnormalConverterCount; + + @TableField(value = "monitorConverterCount") + private Integer monitorConverterCount; + + @TableField(value = "abnormalBusCount") + private Integer abnormalBusCount; + + @TableField(value = "monitorAlternatingBusCount") + private Integer monitorAlternatingBusCount; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/PqTypicalSourceCreatePO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/PqTypicalSourceCreatePO.java new file mode 100644 index 000000000..6916afd6d --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/PqTypicalSourceCreatePO.java @@ -0,0 +1,123 @@ +package com.njcn.harmonic.pojo.po.send; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "pq_typical_source_create") +public class PqTypicalSourceCreatePO { + @TableId(value = "id", type = IdType.INPUT) + private String id; + + @TableField(value = "statisticalDate") + private String statisticalDate; + + @TableField(value = "statisticalLevel") + private String statisticalLevel; + + @TableField(value = "statisticalType") + private String statisticalType; + + @TableField(value = "indexType") + private String indexType; + + @TableField(value = "provinceId") + private String provinceId; + + @TableField(value = "provinceName") + private String provinceName; + + @TableField(value = "cityId") + private String cityId; + + @TableField(value = "cityName") + private String cityName; + + @TableField(value = "countyId") + private String countyId; + + @TableField(value = "countyName") + private String countyName; + + @TableField(value = "industryType") + private String industryType; + + @TableField(value = "interferenceSourceNum") + private Integer interferenceSourceNum; + + @TableField(value = "averageOvDays") + private BigDecimal averageOvDays; + + @TableField(value = "flickerAvgOvRate") + private BigDecimal flickerAvgOvRate; + + @TableField(value = "flickerOvNum") + private Integer flickerOvNum; + + @TableField(value = "flickerOvRate") + private BigDecimal flickerOvRate; + + @TableField(value = "iAvgOvRate") + private BigDecimal iAvgOvRate; + + @TableField(value = "iOvNum") + private Integer iOvNum; + + @TableField(value = "iOvRate") + private BigDecimal iOvRate; + + @TableField(value = "inseqAvgOvRate") + private BigDecimal inseqAvgOvRate; + + @TableField(value = "inseqOvNum") + private Integer inseqOvNum; + + @TableField(value = "inseqOvRate") + private BigDecimal inseqOvRate; + + @TableField(value = "monitorNum") + private Integer monitorNum; + + @TableField(value = "monitoringRate") + private BigDecimal monitoringRate; + + @TableField(value = "ovNum") + private Integer ovNum; + + @TableField(value = "ovRate") + private BigDecimal ovRate; + + @TableField(value = "unbanOvNum") + private Integer unbanOvNum; + + @TableField(value = "unbanOvRate") + private BigDecimal unbanOvRate; + + @TableField(value = "vAvgOvRate") + private BigDecimal vAvgOvRate; + + @TableField(value = "vOvNum") + private Integer vOvNum; + + @TableField(value = "vOvRate") + private BigDecimal vOvRate; + + @TableField(value = "unbanAvgOvRate") + private BigDecimal unbanAvgOvRate; + + @TableField(value = "ovDayCount") + private Integer ovDayCount; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/SubstationQualityStatisticsPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/SubstationQualityStatisticsPO.java new file mode 100644 index 000000000..480f6ef87 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/send/SubstationQualityStatisticsPO.java @@ -0,0 +1,115 @@ +package com.njcn.harmonic.pojo.po.send; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "substation_quality_statistics") +public class SubstationQualityStatisticsPO { + + @TableId(value = "id", type = IdType.INPUT) + private String id; + + @TableField(value = "statisticalDate") + private String statisticalDate; + + @TableField(value = "statisticalType") + private String statisticalType; + + @TableField(value = "provinceId") + private String provinceId; + + @TableField(value = "provinceName") + private String provinceName; + + @TableField(value = "cityId") + private String cityId; + + @TableField(value = "cityName") + private String cityName; + + @TableField(value = "countyId") + private String countyId; + + @TableField(value = "countyName") + private String countyName; + + @TableField(value = "converterId") + private String converterId; + + @TableField(value = "converterName") + private String converterName; + + @TableField(value = "voltageLevel") + private String voltageLevel; + + @TableField(value = "busId") + private String busId; + + @TableField(value = "busName") + private String busName; + + @TableField(value = "busVoltageLevel") + private String busVoltageLevel; + + @TableField(value = "monitorId") + private String monitorId; + + @TableField(value = "effectiveMonitorNum") + private Integer effectiveMonitorNum; + + @TableField(value = "harmvOvDay") + private Integer harmvOvDay; + + @TableField(value = "monthsCount") + private Integer monthsCount; + + @TableField(value = "monthOvDays") + private BigDecimal monthOvDays; + + @TableField(value = "oddVoltLimit") + private BigDecimal oddVoltLimit; + + @TableField(value = "totalOvDays") + private Integer totalOvDays; + + @TableField(value = "v11") + private BigDecimal v11; + + @TableField(value = "v13") + private BigDecimal v13; + + @TableField(value = "v23") + private BigDecimal v23; + + @TableField(value = "v25") + private BigDecimal v25; + + @TableField(value = "v3") + private BigDecimal v3; + + @TableField(value = "v5") + private BigDecimal v5; + + @TableField(value = "v7") + private BigDecimal v7; + + @TableField(value = "vthd") + private BigDecimal vthd; + + @TableField(value = "vthdLimit") + private BigDecimal vthdLimit; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java deleted file mode 100644 index 7f6089193..000000000 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.njcn.harmonic.controller.majornetwork; - -import com.njcn.common.pojo.annotation.OperateInfo; -import com.njcn.common.pojo.enums.common.LogEnum; -import com.njcn.common.pojo.enums.response.CommonResponseEnum; -import com.njcn.common.pojo.response.HttpResult; -import com.njcn.common.utils.HttpResultUtil; -import com.njcn.harmonic.service.majornetwork.StationDataQualityService; -import com.njcn.web.controller.BaseController; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * Description: - * Date: 2023/12/6 15:50【需求编号】 - * - * @author clam - * @version V1.0.0 - */ - -@RestController -@Api(tags = "上报电能质量换流站指标统计明细及统计数据接口") -@RequiredArgsConstructor -@RequestMapping("/StationDataQuality") -public class StationDataQualitySendController extends BaseController { - private final StationDataQualityService stationDataQualityService; - @PostMapping("/report") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @ApiOperation("上报电能质量换流站指标统计明细及统计数据接口") - public HttpResult report() { - String methodDescribe = getMethodDescribe("report"); - - boolean flag = stationDataQualityService.report(); - - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); - } -} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/ConverterdetailstatisticsController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/ConverterdetailstatisticsController.java new file mode 100644 index 000000000..ddfaea419 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/ConverterdetailstatisticsController.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.controller.send; + +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Description:河北国网上送接口 + * * 2.4.1.17接收电能质量主配网监测点统计数据接口 + * Date: 2023/12/13 14:52【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@RestController +@RequestMapping("/Converterdetail") +@Api(tags = "电能质量主配网监测点统计数据") +@RequiredArgsConstructor +public class ConverterdetailstatisticsController extends BaseController { + + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/PqTypicalSourceCreateController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/PqTypicalSourceCreateController.java new file mode 100644 index 000000000..60542147b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/PqTypicalSourceCreateController.java @@ -0,0 +1,24 @@ +package com.njcn.harmonic.controller.send; + +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Description:2.4.1.9 接收电能质量典型源荷指标统计数据接口 + * Date: 2023/12/13 14:52【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + +@Slf4j +@RestController +@RequestMapping("/pqTypicalSourceCreate") +@Api(tags = "能质量典型源荷指标统计数据") +@RequiredArgsConstructor +public class PqTypicalSourceCreateController extends BaseController { +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/SubstationQualityStatisticsController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/SubstationQualityStatisticsController.java new file mode 100644 index 000000000..1cec5b9b1 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/send/SubstationQualityStatisticsController.java @@ -0,0 +1,29 @@ +package com.njcn.harmonic.controller.send; + +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *需求: + * * FWJK-PMS3.0-TC0013-电能质量管理两级贯通接口V1.10 + * * 2.4.1.19 接收电能质量换流站指标统计明细数据接口 + * + * @author clam + * @version V1.0.0 + */ + + +@Slf4j +@RestController +@RequestMapping("/substationQuality") +@Api(tags = "接收电能质量换流站指标统计明细数据") +@RequiredArgsConstructor +public class SubstationQualityStatisticsController extends BaseController { + + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/ConverterdetailstatisticsPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/ConverterdetailstatisticsPOMapper.java new file mode 100644 index 000000000..abf902323 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/ConverterdetailstatisticsPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.harmonic.mapper.send; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.send.ConverterdetailstatisticsPO; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ConverterdetailstatisticsPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/PqTypicalSourceCreatePOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/PqTypicalSourceCreatePOMapper.java new file mode 100644 index 000000000..6b6c4986e --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/PqTypicalSourceCreatePOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.harmonic.mapper.send; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqTypicalSourceCreatePOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/SubstationQualityStatisticsPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/SubstationQualityStatisticsPOMapper.java new file mode 100644 index 000000000..42479a443 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/SubstationQualityStatisticsPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.harmonic.mapper.send; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.send.SubstationQualityStatisticsPO; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SubstationQualityStatisticsPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/ConverterdetailstatisticsPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/ConverterdetailstatisticsPOMapper.xml new file mode 100644 index 000000000..56f766a12 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/ConverterdetailstatisticsPOMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + id, abnormalBusAvgRate, abnormalBusNum, abnormalBusRate, abnormalConverterAvgRate, + abnormalConverterNum, abnormalConverterRate, cityId, cityName, monitorAlternatingBusNum, + monitorAlternatingBusRate, monitorConverterNum, monitorConverterRate, onlineAlternatingBusNum, + onlineConverterNum, provinceName, provinceId, statisticalDate, statisticalType, statisticalLevel, + abnormalConverterCount, monitorConverterCount, abnormalBusCount, monitorAlternatingBusCount + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/PqTypicalSourceCreatePOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/PqTypicalSourceCreatePOMapper.xml new file mode 100644 index 000000000..5ad6a7132 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/PqTypicalSourceCreatePOMapper.xml @@ -0,0 +1,13 @@ + + + + + + + id, statisticalDate, statisticalLevel, statisticalType, indexType, provinceId, provinceName, + cityId, cityName, countyId, countyName, industryType, interferenceSourceNum, averageOvDays, + flickerAvgOvRate, flickerOvNum, flickerOvRate, iAvgOvRate, iOvNum, iOvRate, inseqAvgOvRate, + inseqOvNum, inseqOvRate, monitorNum, monitoringRate, ovNum, ovRate, unbanOvNum, unbanOvRate, + vAvgOvRate, vOvNum, vOvRate, unbanAvgOvRate, ovDayCount + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/SubstationQualityStatisticsPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/SubstationQualityStatisticsPOMapper.xml new file mode 100644 index 000000000..07e4ac234 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/send/mapping/SubstationQualityStatisticsPOMapper.xml @@ -0,0 +1,12 @@ + + + + + + + id, statisticalDate, statisticalType, provinceId, provinceName, cityId, cityName, + countyId, countyName, converterId, converterName, voltageLevel, busId, busName, busVoltageLevel, + monitorId, effectiveMonitorNum, harmvOvDay, monthsCount, monthOvDays, oddVoltLimit, + totalOvDays, v11, v13, v23, v25, v3, v5, v7, vthd, vthdLimit + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java deleted file mode 100644 index 886fd3061..000000000 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.njcn.harmonic.service.majornetwork; - -/** - * Description: - * Date: 2023/12/6 15:57【需求编号】 - * - * @author clam - * @version V1.0.0 - */ -public interface StationDataQualityService { - boolean report(); -} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java deleted file mode 100644 index 623852cfc..000000000 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.njcn.harmonic.service.majornetwork.impl; - -import com.njcn.device.pms.api.MonitorClient; -import com.njcn.device.pms.pojo.po.Monitor; -import com.njcn.harmonic.pojo.dto.SubstationQualityStatisticsDTO; -import com.njcn.harmonic.service.majornetwork.StationDataQualityService; -import com.njcn.user.api.DeptFeignClient; -import com.njcn.user.pojo.vo.PvTerminalTreeVO; -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; - -/** - * Description: - * Date: 2023/12/6 15:57【需求编号】 - * - * @author clam - * @version V1.0.0 - */ -@Service -@RequiredArgsConstructor -public class StationDataQualityServiceImpl implements StationDataQualityService { - - private final MonitorClient monitorClient; - private final DeptFeignClient deptFeignClient; - @Override - public boolean report() { - - List data = monitorClient.getMonitorList(new ArrayList<>()).getData(); - List deptList = deptFeignClient.allDeptList().getData(); - Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); - Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); - data.stream().forEach(temp->{ - SubstationQualityStatisticsDTO substaticsDTO = new SubstationQualityStatisticsDTO(); - substaticsDTO.setId("1"); - - }); - - return true; - } -} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/ConverterdetailstatisticsPOService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/ConverterdetailstatisticsPOService.java new file mode 100644 index 000000000..88b88a2db --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/ConverterdetailstatisticsPOService.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.service.send; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.po.send.ConverterdetailstatisticsPO; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ConverterdetailstatisticsPOService extends IService{ + + + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/PqTypicalSourceCreatePOService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/PqTypicalSourceCreatePOService.java new file mode 100644 index 000000000..0d75c2eb7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/PqTypicalSourceCreatePOService.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.service.send; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqTypicalSourceCreatePOService extends IService{ + + + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/SubstationQualityStatisticsPOService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/SubstationQualityStatisticsPOService.java new file mode 100644 index 000000000..c9063cbac --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/SubstationQualityStatisticsPOService.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.service.send; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.po.send.SubstationQualityStatisticsPO; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SubstationQualityStatisticsPOService extends IService{ + + + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/ConverterdetailstatisticsPOServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/ConverterdetailstatisticsPOServiceImpl.java new file mode 100644 index 000000000..a75a093da --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/ConverterdetailstatisticsPOServiceImpl.java @@ -0,0 +1,23 @@ +package com.njcn.harmonic.service.send.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.po.send.ConverterdetailstatisticsPO; +import com.njcn.harmonic.service.send.ConverterdetailstatisticsPOService; +import com.njcn.prepare.harmonic.mapper.mysql.send.ConverterdetailstatisticsPOMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class ConverterdetailstatisticsPOServiceImpl extends ServiceImpl implements ConverterdetailstatisticsPOService { + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java new file mode 100644 index 000000000..c614cc32b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.service.send.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; +import com.njcn.harmonic.service.send.PqTypicalSourceCreatePOService; +import com.njcn.prepare.harmonic.mapper.mysql.send.PqTypicalSourceCreatePOMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl implements PqTypicalSourceCreatePOService { + + + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/SubstationQualityStatisticsPOServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/SubstationQualityStatisticsPOServiceImpl.java new file mode 100644 index 000000000..c7a5f7a1f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/SubstationQualityStatisticsPOServiceImpl.java @@ -0,0 +1,24 @@ +package com.njcn.harmonic.service.send.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.po.send.SubstationQualityStatisticsPO; +import com.njcn.harmonic.service.send.SubstationQualityStatisticsPOService; +import com.njcn.prepare.harmonic.mapper.mysql.send.SubstationQualityStatisticsPOMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class SubstationQualityStatisticsPOServiceImpl extends ServiceImpl implements SubstationQualityStatisticsPOService { + + + +} 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 605aed896..825c5d0ab 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java @@ -12,6 +12,8 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService; import com.njcn.prepare.harmonic.service.mysql.dim.*; import com.njcn.prepare.harmonic.service.mysql.line.PollutionService; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; +import com.njcn.prepare.harmonic.service.mysql.send.ConverterdetailstatisticsPOService; +import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService; import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; @@ -69,6 +71,10 @@ public class OrgPointExecutor extends BaseExecutor{ private final RDimBusStationEventStartisMPOService rDimBusStationEventStartisMPOService; private final RDimBusStationEventStartisYPOService rDimBusStationEventStartisYPOService; private final IRUploadPointStatisticalDataDService irUploadPointStatisticalDataDService; + + + private final ConverterdetailstatisticsPOService converterdetailstatisticsPOService; + private final PqTypicalSourceCreatePOService pqTypicalSourceCreatePOService; /** * * 3.3.2. 单位标数据质量 @@ -615,4 +621,31 @@ public class OrgPointExecutor extends BaseExecutor{ irUploadPointStatisticalDataDService.insertPointStatisticalDataDay(bindCmp.getRequestData()); } + /** + * 河北国网上送接口 + * 2.4.1.18 接收电能质量换流站指标汇总统计数据接口 + * xuyang + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "converterdetailstatistics", nodeType = NodeTypeEnum.COMMON) + public boolean converterdetailstatisticsAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "converterdetailstatistics", nodeType = NodeTypeEnum.COMMON) + public void converterdetailstatisticsProcess(NodeComponent bindCmp) { + CalculatedParam calculatedParam = bindCmp.getRequestData(); + converterdetailstatisticsPOService.handlerDay(calculatedParam); + } + /** + *河北国网上送接口 + *2.4.1.9 接收电能质量典型源荷指标统计数据接口 + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "pqTypicalSourceCreatePOService", nodeType = NodeTypeEnum.COMMON) + public boolean pqTypicalSourceCreatePOServiceAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "pqTypicalSourceCreatePOService", nodeType = NodeTypeEnum.COMMON) + public void pqTypicalSourceCreatePOServiceProcess(NodeComponent bindCmp) { + CalculatedParam calculatedParam = bindCmp.getRequestData(); + pqTypicalSourceCreatePOService.handlerDay(calculatedParam); + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/SubStationExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/SubStationExecutor.java index 83d24225a..fb2ae25db 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/SubStationExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/SubStationExecutor.java @@ -4,6 +4,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.service.mysql.line.PollutionService; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationService; import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadSubstationStatisticalDataDService; +import com.njcn.prepare.harmonic.service.mysql.send.SubstationQualityStatisticsPOService; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; import com.yomahub.liteflow.core.NodeComponent; @@ -26,6 +27,7 @@ public class SubStationExecutor extends BaseExecutor{ private final PollutionService pollutionService; private final RStatSubstationService rStatSubstationService; + private final SubstationQualityStatisticsPOService substationQualityStatisticsPOService; private final IRUploadSubstationStatisticalDataDService rUploadSubstationStatisticalDataDService; @@ -64,6 +66,26 @@ public class SubStationExecutor extends BaseExecutor{ } } } + /**需求: + * FWJK-PMS3.0-TC0013-电能质量管理两级贯通接口V1.10 + * 2.4.1.19 接收电能质量换流站指标统计明细数据接口 + * + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "substationQualityStatistics", nodeType = NodeTypeEnum.COMMON) + public boolean processSubstationQualityStatistics(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "substationQualityStatistics", nodeType = NodeTypeEnum.COMMON) + public void processSubstationQualityStatisticss(NodeComponent bindCmp) { + String tag = bindCmp.getTag(); + CalculatedParam calculatedParam = bindCmp.getRequestData(); + + substationQualityStatisticsPOService.handleDay(calculatedParam); + + + } + + /********************************************算法负责人:xy***********************************************************/ diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/ConverterdetailstatisticsPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/ConverterdetailstatisticsPOMapper.java new file mode 100644 index 000000000..09af2a210 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/ConverterdetailstatisticsPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.send; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.send.ConverterdetailstatisticsPO; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ConverterdetailstatisticsPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/PqTypicalSourceCreatePOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/PqTypicalSourceCreatePOMapper.java new file mode 100644 index 000000000..aa7bf4657 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/PqTypicalSourceCreatePOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.send; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqTypicalSourceCreatePOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/SubstationQualityStatisticsPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/SubstationQualityStatisticsPOMapper.java new file mode 100644 index 000000000..c14cdf05d --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/SubstationQualityStatisticsPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.send; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.send.SubstationQualityStatisticsPO; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SubstationQualityStatisticsPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/ConverterdetailstatisticsPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/ConverterdetailstatisticsPOMapper.xml new file mode 100644 index 000000000..682bc8bb9 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/ConverterdetailstatisticsPOMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, abnormalBusAvgRate, abnormalBusNum, abnormalBusRate, abnormalConverterAvgRate, + abnormalConverterNum, abnormalConverterRate, cityId, cityName, monitorAlternatingBusNum, + monitorAlternatingBusRate, monitorConverterNum, monitorConverterRate, onlineAlternatingBusNum, + onlineConverterNum, provinceName, provinceId, statisticalDate, statisticalType, statisticalLevel, + abnormalConverterCount, monitorConverterCount, abnormalBusCount, monitorAlternatingBusCount + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/PqTypicalSourceCreatePOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/PqTypicalSourceCreatePOMapper.xml new file mode 100644 index 000000000..5ad6a7132 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/PqTypicalSourceCreatePOMapper.xml @@ -0,0 +1,13 @@ + + + + + + + id, statisticalDate, statisticalLevel, statisticalType, indexType, provinceId, provinceName, + cityId, cityName, countyId, countyName, industryType, interferenceSourceNum, averageOvDays, + flickerAvgOvRate, flickerOvNum, flickerOvRate, iAvgOvRate, iOvNum, iOvRate, inseqAvgOvRate, + inseqOvNum, inseqOvRate, monitorNum, monitoringRate, ovNum, ovRate, unbanOvNum, unbanOvRate, + vAvgOvRate, vOvNum, vOvRate, unbanAvgOvRate, ovDayCount + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/SubstationQualityStatisticsPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/SubstationQualityStatisticsPOMapper.xml new file mode 100644 index 000000000..4739d4a94 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/send/mapping/SubstationQualityStatisticsPOMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, statisticalDate, statisticalType, provinceId, provinceName, cityId, cityName, + countyId, countyName, converterId, converterName, voltageLevel, busId, busName, busVoltageLevel, + monitorId, effectiveMonitorNum, harmvOvDay, monthsCount, monthOvDays, oddVoltLimit, + totalOvDays, v11, v13, v23, v25, v3, v5, v7, vthd, vthdLimit + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/ConverterdetailstatisticsPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/ConverterdetailstatisticsPOService.java new file mode 100644 index 000000000..ce57042e5 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/ConverterdetailstatisticsPOService.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.send; + +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.harmonic.pojo.po.send.ConverterdetailstatisticsPO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ConverterdetailstatisticsPOService extends IService{ + + + void handlerDay(CalculatedParam calculatedParam); + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/PqTypicalSourceCreatePOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/PqTypicalSourceCreatePOService.java new file mode 100644 index 000000000..91e5d3aa1 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/PqTypicalSourceCreatePOService.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.send; + +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqTypicalSourceCreatePOService extends IService{ + + + void handlerDay(CalculatedParam calculatedParam); + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/SubstationQualityStatisticsPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/SubstationQualityStatisticsPOService.java new file mode 100644 index 000000000..469b9c4f7 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/SubstationQualityStatisticsPOService.java @@ -0,0 +1,19 @@ +package com.njcn.prepare.harmonic.service.mysql.send; + +import com.njcn.harmonic.pojo.po.send.SubstationQualityStatisticsPO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SubstationQualityStatisticsPOService extends IService{ + + + void handleDay(CalculatedParam calculatedParam); + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/ConverterdetailstatisticsPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/ConverterdetailstatisticsPOServiceImpl.java new file mode 100644 index 000000000..3b1fca808 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/ConverterdetailstatisticsPOServiceImpl.java @@ -0,0 +1,290 @@ +package com.njcn.prepare.harmonic.service.mysql.send.impl; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.api.PmsGeneratrixClient; +import com.njcn.device.pms.api.StatationStatClient; +import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO; +import com.njcn.device.pms.pojo.param.PmsBaseParam; +import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.pojo.po.StatationStat; +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; +import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO; +import com.njcn.harmonic.pojo.po.send.ConverterdetailstatisticsPO; +import com.njcn.prepare.harmonic.mapper.mysql.send.ConverterdetailstatisticsPOMapper; +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.line.RMpEventDetailDService; +import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService; +import com.njcn.prepare.harmonic.service.mysql.send.ConverterdetailstatisticsPOService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * + * Description: + * Date: 2023/12/11 11:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class ConverterdetailstatisticsPOServiceImpl extends ServiceImpl implements ConverterdetailstatisticsPOService{ + + + private final MonitorClient monitorClient; + private final DeptFeignClient deptFeignClient; + private final StatationStatClient statationStatClient; + private final PmsGeneratrixClient pmsGeneratrixClient; + private final DicDataFeignClient dicDataFeignClient; + private final IRStatLimitRateDService irStatLimitRateDService; + private final ROperatingMonitorService rOperatingMonitorService; + private final RMpEventDetailDService rMpEventDetailDService; + + @Override + public void handlerDay(CalculatedParam calculatedParam) { + + List converterdetailstatisticsPOList = new ArrayList<>(); + LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); + + + List supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + //过滤交流电压等级 + List exchangeList = supvVoltageDicList.stream().filter(temp -> temp.getName().contains("交流")).map(DictData::getId).collect(Collectors.toList()); + Map mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + List stationList = statationStatClient.getstatationStatList(new PmsBaseParam()).getData(); + List data1 = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + DictData run = data1.stream().filter(temp->Objects.equals(temp.getCode(),DicDataEnum.RUN.getCode())).findFirst().get(); + List deptList = deptFeignClient.allDeptList().getData(); + Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); + Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); + + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + + ConverterdetailstatisticsPO converterdetailstatisticsPO = new ConverterdetailstatisticsPO(); + converterdetailstatisticsPO.setStatisticalDate(calculatedParam.getDataDate()); + converterdetailstatisticsPO.setStatisticalType("03"); + + if (mapCode.containsKey(deptGetChildrenMoreDTO.getUnitId())) { + PvTerminalTreeVO pvTerminalTreeVO = mapCode.get(deptGetChildrenMoreDTO.getUnitId()); + String[] split = (pvTerminalTreeVO.getPids() + StrUtil.COMMA + pvTerminalTreeVO.getId()) + .split(StrUtil.COMMA); + if (split.length != 4) { + continue; + } + for (int i = 2; i < split.length; i++) { + //省 + if (i == 2) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + converterdetailstatisticsPO.setProvinceName(pvTerminalTreeVO.getName()); + converterdetailstatisticsPO.setProvinceId(pvTerminalTreeVO.getCode()); + converterdetailstatisticsPO.setStatisticalLevel("3"); + } + } + //市 + if (i == 3) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + converterdetailstatisticsPO.setCityName(pvTerminalTreeVO.getName()); + converterdetailstatisticsPO.setCityId(pvTerminalTreeVO.getCode()); + converterdetailstatisticsPO.setStatisticalLevel("4"); + + } + } + } + } + converterdetailstatisticsPO.setId(converterdetailstatisticsPO.getCityId()+"-"+calculatedParam.getDataDate()); + + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + List tempLineList = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + List tempMonitor = monitorClient.getMonitorList(tempLineList).getData(); + tempMonitor = tempMonitor.stream().filter(temp -> Objects.equals(temp.getMonitorState(), run.getId())).collect(Collectors.toList()); + List tempIds = tempMonitor.stream().map(Monitor::getId).collect(Collectors.toList()); + List generatrixIds = tempMonitor.stream().map(Monitor::getLineId).distinct().collect(Collectors.toList()); + List powerrIds = tempMonitor.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + PmsGeneratrixParam pmsGeneratrixParam = new PmsGeneratrixParam(); + pmsGeneratrixParam.setGeneratrixIds(generatrixIds); + List data = pmsGeneratrixClient.getGeneratrixInfo(pmsGeneratrixParam).getData(); + List exchangelineIds = data.stream().filter(temp -> exchangeList.contains(temp.getGeneratrixVoltageLevel())). + map(PmsGeneratrixDTO::getGeneratrixId).collect(Collectors.toList()); + converterdetailstatisticsPO.setOnlineAlternatingBusNum(exchangelineIds.size()); + converterdetailstatisticsPO.setOnlineConverterNum(powerrIds.size()); + //监测监测点 + List list = new ArrayList<>(); + if (!CollectionUtils.isEmpty(tempIds)) { + list = rOperatingMonitorService.lambdaQuery(). + in(ROperatingMonitorDPO::getMeasurementPointId, tempIds). + eq(ROperatingMonitorDPO::getDataDate, calculatedParam.getDataDate()). + ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95). + eq(ROperatingMonitorDPO::getIsUnusual, 1).list(); + + } + // + List collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).collect(Collectors.toList()); + //监测监测点 + List supervisLines = tempMonitor.stream().filter(temp -> collect.contains(temp.getId())).distinct().collect(Collectors.toList()); + List supervispowerrIds = supervisLines.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + + List supervisgeneratrixIds = supervisLines.stream().map(Monitor::getLineId).distinct().collect(Collectors.toList()); + List supervisexchangelineIds = data.stream().filter(temp -> supervisgeneratrixIds.contains(temp.getGeneratrixVoltageLevel())). + map(PmsGeneratrixDTO::getGeneratrixId).collect(Collectors.toList()); + + converterdetailstatisticsPO.setMonitorAlternatingBusCount(supervisexchangelineIds.size()); + converterdetailstatisticsPO.setMonitorConverterCount(supervispowerrIds.size()); + converterdetailstatisticsPO.setMonitorAlternatingBusNum(supervisexchangelineIds.size()); + converterdetailstatisticsPO.setMonitorConverterNum(supervispowerrIds.size()); + //发生暂态,稳态的监测点集合 + List abnormallines; + if (!CollectionUtils.isEmpty(tempIds)) { + List rStatLimitRateDPOS = irStatLimitRateDService.lambdaQuery().in(RStatLimitRateDPO::getLineId,tempIds).eq(RStatLimitRateDPO::getTime,localDate).eq(RStatLimitRateDPO::getPhasicType,"T").list(); + List rMpEventDetailDPOList = rMpEventDetailDService.lambdaQuery().in(RMpEventDetailDPO::getMeasurementPointId, tempIds).eq(RMpEventDetailDPO::getDataDate, localDate).list(); + List limitIds = rStatLimitRateDPOS.stream().filter(temp -> + (temp.getVoltageDevOvertime() + + temp.getFlickerOvertime() + + temp.getUbalanceOvertime() + + temp.getUharm2Overtime() + + temp.getUharm3Overtime() + + temp.getUharm4Overtime() + + temp.getUharm5Overtime() + + temp.getUharm6Overtime() + + temp.getUharm7Overtime() + + temp.getUharm8Overtime() + + temp.getUharm9Overtime() + + temp.getUharm10Overtime() + + temp.getUharm11Overtime() + + temp.getUharm12Overtime() + + temp.getUharm13Overtime() + + temp.getUharm14Overtime() + + temp.getUharm15Overtime() + + temp.getUharm16Overtime() + + temp.getUharm17Overtime() + + temp.getUharm18Overtime() + + temp.getUharm19Overtime() + + temp.getUharm20Overtime() + + temp.getUharm21Overtime() + + temp.getUharm22Overtime() + + temp.getUharm23Overtime() + + temp.getUharm24Overtime() + + temp.getUharm25Overtime() + + temp.getIharm2Overtime() + + temp.getIharm3Overtime() + + temp.getIharm4Overtime() + + temp.getIharm5Overtime() + + temp.getIharm6Overtime() + + temp.getIharm7Overtime() + + temp.getIharm8Overtime() + + temp.getIharm9Overtime() + + temp.getIharm10Overtime() + + temp.getIharm11Overtime() + + temp.getIharm12Overtime() + + temp.getIharm13Overtime() + + temp.getIharm14Overtime() + + temp.getIharm15Overtime() + + temp.getIharm16Overtime() + + temp.getIharm17Overtime() + + temp.getIharm18Overtime() + + temp.getIharm19Overtime() + + temp.getIharm20Overtime() + + temp.getIharm21Overtime() + + temp.getIharm22Overtime() + + temp.getIharm23Overtime() + + temp.getIharm24Overtime() + + temp.getIharm25Overtime() + + temp.getInuharm1Overtime() + + temp.getInuharm2Overtime() + + temp.getInuharm3Overtime() + + temp.getInuharm4Overtime() + + temp.getInuharm5Overtime() + + temp.getInuharm6Overtime() + + temp.getInuharm7Overtime() + + temp.getInuharm8Overtime() + + temp.getInuharm9Overtime() + + temp.getInuharm10Overtime() + + temp.getInuharm11Overtime() + + temp.getInuharm12Overtime() + + temp.getInuharm13Overtime() + + temp.getInuharm14Overtime() + + temp.getInuharm15Overtime() + + temp.getInuharm16Overtime() + + temp.getFreqDevOvertime() + + temp.getINegOvertime()) > 0 + ).map(RStatLimitRateDPO::getLineId).distinct().collect(Collectors.toList()); + List eventLineIds = rMpEventDetailDPOList.stream().filter(temp -> (temp.getInterruptTimes() + + temp.getSagTimes() + + temp.getSwellTimes()) > 0).map(RMpEventDetailDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + limitIds.retainAll(eventLineIds); + abnormallines = limitIds; + } else { + abnormallines = new ArrayList<>(); + } + List abnormalmonitor = tempMonitor.stream().filter(temp -> abnormallines.contains(temp.getId())).distinct().collect(Collectors.toList()); + + List abnormalpowerrIds = supervisLines.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + + List abnormalgeneratrixIds = supervisLines.stream().map(Monitor::getLineId).distinct().collect(Collectors.toList()); + converterdetailstatisticsPO.setAbnormalBusNum(abnormalgeneratrixIds.size()); + converterdetailstatisticsPO.setAbnormalBusCount(abnormalgeneratrixIds.size()); + converterdetailstatisticsPO.setAbnormalConverterCount(abnormalpowerrIds.size()); + converterdetailstatisticsPO.setAbnormalConverterNum(abnormalpowerrIds.size()); + + converterdetailstatisticsPO.setAbnormalBusRate(divideAndRound(converterdetailstatisticsPO.getAbnormalBusNum(),generatrixIds.size())); + converterdetailstatisticsPO.setAbnormalBusAvgRate(divideAndRound(converterdetailstatisticsPO.getAbnormalBusNum(),generatrixIds.size())); + + converterdetailstatisticsPO.setAbnormalConverterRate(divideAndRound(converterdetailstatisticsPO.getAbnormalConverterNum(),powerrIds.size())); + converterdetailstatisticsPO.setAbnormalConverterAvgRate(divideAndRound(converterdetailstatisticsPO.getAbnormalConverterNum(),powerrIds.size())); + + converterdetailstatisticsPO.setMonitorConverterRate(divideAndRound(converterdetailstatisticsPO.getMonitorConverterNum(),powerrIds.size())); + converterdetailstatisticsPO.setMonitorAlternatingBusRate(divideAndRound(converterdetailstatisticsPO.getMonitorAlternatingBusNum(),generatrixIds.size())); + } + converterdetailstatisticsPOList.add(converterdetailstatisticsPO); + + } + if(!CollectionUtils.isEmpty(converterdetailstatisticsPOList)){ + this.saveOrUpdateBatch(converterdetailstatisticsPOList); + } + } + /** + * @Description: divideAndRound + * @Param: 两个int做除法返回BigDecimal保留2位小数 考虑到被除数为0的情况 + * @return: java.math.BigDecimal + * @Author: clam + * @Date: 2023/12/12 + */ + public BigDecimal divideAndRound(Integer a, Integer b) { + if (b == 0) { + return BigDecimal.valueOf(0.00); + } + BigDecimal num1 = new BigDecimal(a); + BigDecimal num2 = new BigDecimal(b); + BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP); + return result; + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java new file mode 100644 index 000000000..8af3eb2fa --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java @@ -0,0 +1,294 @@ +package com.njcn.prepare.harmonic.service.mysql.send.impl; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; +import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.send.PqTypicalSourceCreatePOMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; +import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService; +import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * + * Description: + * Date: 2023/12/12 15:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl implements PqTypicalSourceCreatePOService{ + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + + private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; + private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; + private final ROperatingMonitorService rOperatingMonitorService; + + /* + *01 电压 + *02 长时间闪变 + *03 三相电压不平衡 + *04 电压总谐波畸变率 + *05 各次谐波电压 + *06 负序电流 + * + * */ + @Override + public void handlerDay(CalculatedParam calculatedParam) { + + List pqTypicalSourceCreatePOList = new ArrayList<>(); + LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>(); + + + List deptList = deptFeignClient.allDeptList().getData(); + Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); + Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + List collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + + //站内有效监测点数量 + Integer effectiveMonitorNum; + + List rMpPartHarmonicDetailDS; + List rMpSurplusHarmonicDetailDS; + if (!CollectionUtils.isEmpty(collect1)) { + List list = rOperatingMonitorService.lambdaQuery(). + in(ROperatingMonitorDPO::getMeasurementPointId, collect1). + eq(ROperatingMonitorDPO::getDataDate, calculatedParam.getDataDate()). + ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95). + eq(ROperatingMonitorDPO::getIsUnusual, 1).list(); + effectiveMonitorNum = list.size(); + + queryWrapper.clear(); + queryWrapper. + in("measurement_point_id",collect1). + eq("data_date",localDate); + rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailDQueryWrapper.clear(); + rMpSurplusHarmonicDetailDQueryWrapper. + in("measurement_point_id",collect1). + eq("data_date",localDate); + rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper); + + } else { + rMpSurplusHarmonicDetailDS = new ArrayList<>(); + rMpPartHarmonicDetailDS = new ArrayList<>(); + effectiveMonitorNum = 0; + } + +// rStatOrgDPOQueryWrapper.clear(); +// rStatOrgDPOQueryWrapper.select("effective_measurement"). +// eq("org_no",deptGetChildrenMoreDTO.getUnitId()). +// eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). +// eq("data_date",localDate); +// RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper); + + indicatorTypeDate.forEach(dictData -> { + if(Objects.equals(dictData.getCode(), DicDataEnum.HARMONIC_VOLTAGE.getCode())|| + Objects.equals(dictData.getCode(), DicDataEnum.FLICKER.getCode())|| + Objects.equals(dictData.getCode(), DicDataEnum.phase_Voltage.getCode())|| +// Objects.equals(dictData.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())|| + Objects.equals(dictData.getCode(), DicDataEnum.NEG_CURRENT.getCode() + )){ + PqTypicalSourceCreatePO pqTypicalSourceCreatePO = new PqTypicalSourceCreatePO(); + pqTypicalSourceCreatePO = initPqTypicalSourceCreatePO(pqTypicalSourceCreatePO,dictData.getCode(),rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS,collect1.size()); + pqTypicalSourceCreatePO.setStatisticalDate(calculatedParam.getDataDate()); + pqTypicalSourceCreatePO.setStatisticalType("03"); + + pqTypicalSourceCreatePO.setMonitorNum(effectiveMonitorNum); + pqTypicalSourceCreatePO.setMonitoringRate(divideAndRound(effectiveMonitorNum,collect1.size())); + + + if (mapCode.containsKey(deptGetChildrenMoreDTO.getUnitId())) { + PvTerminalTreeVO pvTerminalTreeVO = mapCode.get(deptGetChildrenMoreDTO.getUnitId()); + String[] split = (pvTerminalTreeVO.getPids() + StrUtil.COMMA + pvTerminalTreeVO.getId()) + .split(StrUtil.COMMA); + if (split.length <3) { + return; + } + + for (int i = 2; i < split.length; i++) { + //省 + if (i == 2) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + pqTypicalSourceCreatePO.setProvinceName(pvTerminalTreeVO.getName()); + pqTypicalSourceCreatePO.setProvinceId(pvTerminalTreeVO.getCode()); + pqTypicalSourceCreatePO.setStatisticalLevel("3"); + } + } + //市 + if (i == 3) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + pqTypicalSourceCreatePO.setCityName(pvTerminalTreeVO.getName()); + pqTypicalSourceCreatePO.setCityId(pvTerminalTreeVO.getCode()); + pqTypicalSourceCreatePO.setStatisticalLevel("4"); + + } + } + //县 + if (i == 4) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + pqTypicalSourceCreatePO.setCountyName(pvTerminalTreeVO.getName()); + pqTypicalSourceCreatePO.setCountyId(pvTerminalTreeVO.getCode()); + pqTypicalSourceCreatePO.setStatisticalLevel("5"); + + } + } + } + } + pqTypicalSourceCreatePO.setId(deptGetChildrenMoreDTO.getUnitId()+"-"+pqTypicalSourceCreatePO.getIndexType()+"-"+calculatedParam.getDataDate()); + pqTypicalSourceCreatePOList.add(pqTypicalSourceCreatePO); + } + }); + + + } + if(!CollectionUtils.isEmpty(pqTypicalSourceCreatePOList)){ + this.saveOrUpdateBatch(pqTypicalSourceCreatePOList); + } + } + + private PqTypicalSourceCreatePO initPqTypicalSourceCreatePO(PqTypicalSourceCreatePO pqTypicalSourceCreatePO, + String code, + List rMpPartHarmonicDetailDS, + List rMpSurplusHarmonicDetailDS, + int count) { + BigDecimal initialvalue = new BigDecimal(0.00); + pqTypicalSourceCreatePO.setInterferenceSourceNum(count); + + pqTypicalSourceCreatePO.setFlickerOvNum(0); + pqTypicalSourceCreatePO.setFlickerOvRate(initialvalue); + pqTypicalSourceCreatePO.setFlickerAvgOvRate(initialvalue); + + pqTypicalSourceCreatePO.setIOvNum(0); + pqTypicalSourceCreatePO.setIOvRate(initialvalue); + pqTypicalSourceCreatePO.setIAvgOvRate(initialvalue); + //负序电流 + int inseqOvNum = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsINeg()==1).count()+""); + pqTypicalSourceCreatePO.setInseqOvNum(inseqOvNum); + pqTypicalSourceCreatePO.setInseqOvRate(divideAndRound(inseqOvNum,count)); + pqTypicalSourceCreatePO.setInseqAvgOvRate(divideAndRound(inseqOvNum,count)); + + pqTypicalSourceCreatePO.setUnbanOvNum(0); + pqTypicalSourceCreatePO.setUnbanOvRate(initialvalue); + pqTypicalSourceCreatePO.setUnbanAvgOvRate(initialvalue); + + pqTypicalSourceCreatePO.setVOvNum(0); + pqTypicalSourceCreatePO.setVOvRate(initialvalue); + pqTypicalSourceCreatePO.setVAvgOvRate(initialvalue); + + //稳态指标是否超标(0:否 1:是) + int ovNum = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsHarmonic()==1).count()+""); + pqTypicalSourceCreatePO.setOvNum(ovNum); + pqTypicalSourceCreatePO.setOvRate(divideAndRound(ovNum,count)); + if(ovNum>0){ + pqTypicalSourceCreatePO.setOvDayCount(1); + pqTypicalSourceCreatePO.setAverageOvDays(new BigDecimal(1.00)); + }else { + pqTypicalSourceCreatePO.setOvDayCount(0); + pqTypicalSourceCreatePO.setAverageOvDays(initialvalue); + } + + if (Objects.equals(code,DicDataEnum.FLICKER.getCode())) { + pqTypicalSourceCreatePO.setIndexType("02"); + int value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsFlicker()==1).count()+""); + pqTypicalSourceCreatePO.setFlickerOvNum(value); + pqTypicalSourceCreatePO.setFlickerOvRate(divideAndRound(value,count)); + pqTypicalSourceCreatePO.setFlickerAvgOvRate(divideAndRound(value,count)); + + } else if (Objects.equals(code,DicDataEnum.NEG_CURRENT.getCode())) { + pqTypicalSourceCreatePO.setIndexType("06"); + int value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsINeg()==1).count()+""); + + pqTypicalSourceCreatePO.setInseqOvNum(value); + pqTypicalSourceCreatePO.setInseqOvRate(divideAndRound(value,count)); + pqTypicalSourceCreatePO.setInseqAvgOvRate(divideAndRound(value,count)); + + } +// else if (Objects.equals(code,DicDataEnum.HARMONIC_CURRENT.getCode())) { +// pqTypicalSourceCreatePO.setIndexType("02"); +// +// } + else if (Objects.equals(code,DicDataEnum.phase_Voltage.getCode())) { + int value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsUnbalance()==1).count()+""); + + pqTypicalSourceCreatePO.setIndexType("03"); + + pqTypicalSourceCreatePO.setUnbanOvNum(value); + pqTypicalSourceCreatePO.setUnbanOvRate(divideAndRound(value,count)); + pqTypicalSourceCreatePO.setUnbanAvgOvRate(divideAndRound(value,count)); + + } else if (Objects.equals(code,DicDataEnum.HARMONIC_VOLTAGE.getCode())) { + int value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsV()==1).count()+""); + + pqTypicalSourceCreatePO.setIndexType("01"); + pqTypicalSourceCreatePO.setVOvNum(value); + pqTypicalSourceCreatePO.setVOvRate(divideAndRound(value,count)); + pqTypicalSourceCreatePO.setVAvgOvRate(divideAndRound(value,count)); + + } + + return pqTypicalSourceCreatePO; + } + + /** + * @Description: divideAndRound + * @Param: 两个int做除法返回BigDecimal保留2位小数 考虑到被除数为0的情况 + * @return: java.math.BigDecimal + * @Author: clam + * @Date: 2023/12/12 + */ + public BigDecimal divideAndRound(Integer a, Integer b) { + if (b == 0) { + return BigDecimal.valueOf(0.00); + } + BigDecimal num1 = new BigDecimal(a); + BigDecimal num2 = new BigDecimal(b); + BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP); + return result; + } + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/SubstationQualityStatisticsPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/SubstationQualityStatisticsPOServiceImpl.java new file mode 100644 index 000000000..9070d4825 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/SubstationQualityStatisticsPOServiceImpl.java @@ -0,0 +1,208 @@ +package com.njcn.prepare.harmonic.service.mysql.send.impl; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.api.StatationStatClient; +import com.njcn.device.pms.pojo.param.PmsBaseParam; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.pojo.po.StatationStat; +import com.njcn.harmonic.pojo.po.day.RStatDataVDPO; +import com.njcn.harmonic.pojo.po.send.SubstationQualityStatisticsPO; +import com.njcn.prepare.harmonic.mapper.mysql.send.SubstationQualityStatisticsPOMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; +import com.njcn.prepare.harmonic.pojo.po.RStatSubstationMPO; +import com.njcn.prepare.harmonic.service.mysql.day.IRStatDataVDService; +import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationMPOService; +import com.njcn.prepare.harmonic.service.mysql.send.SubstationQualityStatisticsPOService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * + * Description: + * Date: 2023/12/7 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class SubstationQualityStatisticsPOServiceImpl extends ServiceImpl implements SubstationQualityStatisticsPOService{ + + private final MonitorClient monitorClient; + private final DeptFeignClient deptFeignClient; + private final StatationStatClient statationStatClient; +// private final PmsGeneratrixClient pmsGeneratrixClient; + private final DicDataFeignClient dicDataFeignClient; + private final ROperatingMonitorService rOperatingMonitorService; + + private final IRStatDataVDService IRStatDataVDService; + private final RStatSubstationMPOService rStatSubstationMPOService; + @Override + public void handleDay(CalculatedParam calculatedParam) { + + + List substationQualityStatisticsPOList = new ArrayList<>(); + List monitorList = monitorClient.getMonitorList(new ArrayList<>()).getData(); +// List pmsGeneratrixDTOList = pmsGeneratrixClient.getGeneratrixAndPowerStationInfo(new PmsGeneratrixParam()).getData(); + List stationList = statationStatClient.getstatationStatList(new PmsBaseParam()).getData(); + List deptList = deptFeignClient.allDeptList().getData(); + Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); + Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); + + + DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + //日date +// LocalDate date = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(),DatePattern.NORM_DATE_PATTERN); + //月date + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); + + List supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + DictData run = dicDataFeignClient.getDicDataByCode(DicDataEnum.RUN.getCode()).getData(); + + + for (StatationStat temp : stationList) { + SubstationQualityStatisticsPO substationQualityStatisticsPO = new SubstationQualityStatisticsPO(); +// List tempGeneratrixDTOList = pmsGeneratrixDTOList.stream().filter(pmsGeneratrixDTO -> Objects.equals(pmsGeneratrixDTO.getPowerId(), temp.getPowerId())).collect(Collectors.toList()); + List tempMonitorList = monitorList.stream().filter(monitor -> Objects.equals(monitor.getPowerrId(), temp.getPowerId())).collect(Collectors.toList()); + List monitorIdList = tempMonitorList.stream().map(Monitor::getId).collect(Collectors.toList()); + substationQualityStatisticsPO.setStatisticalDate(calculatedParam.getDataDate()); + substationQualityStatisticsPO.setStatisticalType("03"); + + if (mapCode.containsKey(temp.getOrgId())) { + PvTerminalTreeVO pvTerminalTreeVO = mapCode.get(temp.getOrgId()); + String[] split = (pvTerminalTreeVO.getPids() + StrUtil.COMMA + pvTerminalTreeVO.getId()) + .split(StrUtil.COMMA); + for (int i = 2; i < split.length; i++) { + //省 + if (i == 2) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + substationQualityStatisticsPO.setProvinceName(pvTerminalTreeVO.getName()); + substationQualityStatisticsPO.setProvinceId(pvTerminalTreeVO.getCode()); + } + } + //市 + if (i == 3) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + substationQualityStatisticsPO.setCityName(pvTerminalTreeVO.getName()); + substationQualityStatisticsPO.setCityId(pvTerminalTreeVO.getCode()); + } + } + //县 + if (i == 4) { + if (mapList.containsKey(split[i])) { + pvTerminalTreeVO = mapList.get(split[i]); + substationQualityStatisticsPO.setCountyName(pvTerminalTreeVO.getName()); + substationQualityStatisticsPO.setCountyId(pvTerminalTreeVO.getCode()); + } + } + } + } + + + substationQualityStatisticsPO.setConverterId(temp.getPowerId()); + substationQualityStatisticsPO.setConverterName(temp.getPowerName()); + substationQualityStatisticsPO.setId(temp.getPowerId()+"-"+calculatedParam.getDataDate()); + + //电站等级 + if (mapVoltage.containsKey(temp.getVoltageLevel())) { + substationQualityStatisticsPO.setVoltageLevel(String.format("%02d", mapVoltage.get(temp.getVoltageLevel()).getAlgoDescribe())); + } + substationQualityStatisticsPO.setBusId(""); + substationQualityStatisticsPO.setBusName(""); + substationQualityStatisticsPO.setBusVoltageLevel(""); + substationQualityStatisticsPO.setMonitorId(""); + + //站内有效监测点数量 + Integer effectiveMonitorNum = 0; + if (!CollectionUtils.isEmpty(monitorIdList)) { + List list = rOperatingMonitorService.lambdaQuery(). + in(ROperatingMonitorDPO::getMeasurementPointId, monitorIdList). + eq(ROperatingMonitorDPO::getDataDate, calculatedParam.getDataDate()). + ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95). + eq(ROperatingMonitorDPO::getIsUnusual, 1).list(); + effectiveMonitorNum = list.size(); + } + + + substationQualityStatisticsPO.setEffectiveMonitorNum(effectiveMonitorNum); + //换流站电压等级》500kv,奇次谐波电压限值为1.6,压总谐波畸变率95%概率值限值为2.0 + substationQualityStatisticsPO.setOddVoltLimit(BigDecimal.valueOf(1.6).setScale(1,BigDecimal.ROUND_HALF_UP)); + substationQualityStatisticsPO.setVthdLimit(BigDecimal.valueOf(2.0).setScale(1,BigDecimal.ROUND_HALF_UP)); + RStatSubstationMPO one = rStatSubstationMPOService.lambdaQuery().eq(RStatSubstationMPO::getSubstationId, temp.getPowerId()).eq(RStatSubstationMPO::getDataDate, localDate).one(); + if (!Objects.isNull(one)){ + substationQualityStatisticsPO.setHarmvOvDay(one.getVOverDay().intValue()); + substationQualityStatisticsPO.setMonthsCount(localDate.getMonthValue()); + substationQualityStatisticsPO.setMonthOvDays(BigDecimal.valueOf(one.getVOverDay())); + substationQualityStatisticsPO.setTotalOvDays(one.getHarmonicOverDay().intValue()); + } + if (!CollectionUtils.isEmpty(monitorIdList)) { + List cp95 = IRStatDataVDService.lambdaQuery(). + in(RStatDataVDPO::getLineId, monitorIdList). + eq(RStatDataVDPO::getTime, calculatedParam.getDataDate()). + eq(RStatDataVDPO::getValueType, "CP95").list(); + + if (!CollectionUtils.isEmpty(cp95)) { + double vthd = cp95.stream().mapToDouble(RStatDataVDPO::getVThd).average().getAsDouble(); + substationQualityStatisticsPO.setVthd(BigDecimal.valueOf(vthd).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v3 = cp95.stream().mapToDouble(RStatDataVDPO::getVThd).average().getAsDouble(); + substationQualityStatisticsPO.setV3(BigDecimal.valueOf(v3).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v5 = cp95.stream().mapToDouble(RStatDataVDPO::getV5).average().getAsDouble(); + substationQualityStatisticsPO.setV5(BigDecimal.valueOf(v5).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v7 = cp95.stream().mapToDouble(RStatDataVDPO::getV7).average().getAsDouble(); + substationQualityStatisticsPO.setV7(BigDecimal.valueOf(v7).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v11 = cp95.stream().mapToDouble(RStatDataVDPO::getV11).average().getAsDouble(); + substationQualityStatisticsPO.setV11(BigDecimal.valueOf(v11).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v13 = cp95.stream().mapToDouble(RStatDataVDPO::getV13).average().getAsDouble(); + substationQualityStatisticsPO.setV13(BigDecimal.valueOf(v13).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v23 = cp95.stream().mapToDouble(RStatDataVDPO::getV23).average().getAsDouble(); + substationQualityStatisticsPO.setV23(BigDecimal.valueOf(v23).setScale(1,BigDecimal.ROUND_HALF_UP)); + + double v25 = cp95.stream().mapToDouble(RStatDataVDPO::getV25).average().getAsDouble(); + substationQualityStatisticsPO.setV25(BigDecimal.valueOf(v25).setScale(1,BigDecimal.ROUND_HALF_UP)); + + } + } + substationQualityStatisticsPOList.add(substationQualityStatisticsPO); + + + } + + if(!CollectionUtils.isEmpty(substationQualityStatisticsPOList)){ + this.saveOrUpdateBatch(substationQualityStatisticsPOList); + } + } +}