diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatOrgMPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatOrgMPO.java index f80969668..22dfd0574 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatOrgMPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatOrgMPO.java @@ -56,7 +56,7 @@ public class RStatOrgMPO { * 日均有效接入监测点数 */ @TableField(value = "effective_measurement_average") - private Float effectiveMeasurementAverage; + private Double effectiveMeasurementAverage; /** * 累计有效接入监测点数 @@ -68,7 +68,7 @@ public class RStatOrgMPO { * 日均稳态超标监测点数 */ @TableField(value = "harmonic_measurement_average") - private Float harmonicMeasurementAverage; + private Double harmonicMeasurementAverage; /** * 累计稳态超标监测点数 @@ -110,7 +110,7 @@ public class RStatOrgMPO { * 日均监测到暂态指标的监测点数 */ @TableField(value = "event_measurement_average") - private Float eventMeasurementAverage; + private Double eventMeasurementAverage; /** * 累计监测到暂态指标的监测点数 diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicMPO.java new file mode 100644 index 000000000..632afe2fb --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicMPO.java @@ -0,0 +1,82 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +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 java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/7 16:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_m") +public class RStatHarmonicMPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 监测点类别ID、监测对象类型ID + */ + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 日均超标监测点数(根据 日表的超标监测点数 取平均值) + */ + @TableField(value = "over_limit_measurement_average") + private Double overLimitMeasurementAverage; + + /** + * 累计超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 累计超标天数(根据 日表的超标监测点数 求和) + */ + @TableField(value = "over_day") + private Integer overDay; + + /** + * 日均超标监测点数占比(根据 日表的超标监测点数占比 取平均值) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; + + /** + * 累计超标监测点数占比(此表的累计超标监测点数/区域统计表中的区域分类统计月表中的累计有效接入监测点数) + */ + @TableField(value = "over_limit_measurement_ratio_accrued") + private Double overLimitMeasurementRatioAccrued; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java new file mode 100644 index 000000000..6334c1372 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java @@ -0,0 +1,82 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +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 java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_q") +public class RStatHarmonicQPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每季度统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 监测点类别ID、监测对象类型ID + */ + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 日均超标监测点数(根据 日表的超标监测点数 取平均值) + */ + @TableField(value = "over_limit_measurement_average") + private Integer overLimitMeasurementAverage; + + /** + * 累计超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 平均超标天数(月表的累计超标天数之和/月表的累计超标监测点数之和) + */ + @TableField(value = "average_over_day") + private Double averageOverDay; + + /** + * 日均超标监测点数占比(根据 日表的超标监测点数占比 取平均值) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; + + /** + * 累计超标监测点数占比(此表的累计超标监测点数/区域统计表中的区域分类统计季表中的累计有效接入监测点数) + */ + @TableField(value = "over_limit_measurement_ratio_accrued") + private Double overLimitMeasurementRatioAccrued; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicVoltageD.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicVoltageD.java new file mode 100644 index 000000000..51ddd9bf7 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicVoltageD.java @@ -0,0 +1,68 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +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 java.util.Date; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/6 9:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_voltage_d") +public class RStatHarmonicVoltageD { + /** + * 单位ID + */ + @TableId(value = "org_no", type = IdType.ASSIGN_UUID) + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + @TableId(value = "data_date", type = IdType.ASSIGN_UUID) + private Date dataDate; + + /** + * 监测对象类型ID + */ + @TableId(value = "measurement_type_class", type = IdType.ASSIGN_UUID) + private String measurementTypeClass; + + /** + * 稳态指标类型Id,字典表ID + */ + @TableId(value = "harmonic_type", type = IdType.ASSIGN_UUID) + private String harmonicType; + + /** + * 电压等级Id,字典表ID + */ + @TableId(value = "voltage_type", type = IdType.ASSIGN_UUID) + private String voltageType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @TableId(value = "data_type", type = IdType.ASSIGN_UUID) + private String dataType; + + /** + * 超标监测点数 + */ + @TableField(value = "over_limit_measurement_average") + private Integer overLimitMeasurementAverage; + + /** + * 超标监测点数占比 + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Float overLimitMeasurementRatioAverage; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicVoltageDPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicVoltageDPO.java new file mode 100644 index 000000000..e419fb370 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicVoltageDPO.java @@ -0,0 +1,70 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +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 java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/6 9:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_voltage_d") +public class RStatHarmonicVoltageDPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 监测对象类型ID + */ + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 电压等级Id,字典表ID + */ + @MppMultiId(value = "voltage_type") + private String voltageType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 超标监测点数 + */ + @TableField(value = "over_limit_measurement_average") + private Integer overLimitMeasurementAverage; + + /** + * 超标监测点数占比 + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java new file mode 100644 index 000000000..056bc69c4 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java @@ -0,0 +1,82 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +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 java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_y") +public class RStatHarmonicYPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每季度统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 监测点类别ID、监测对象类型ID + */ + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 日均超标监测点数(根据 日表的超标监测点数 取平均值) + */ + @TableField(value = "over_limit_measurement_average") + private Integer overLimitMeasurementAverage; + + /** + * 累计超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 平均超标天数(月表的累计超标天数之和/月表的累计超标监测点数之和) + */ + @TableField(value = "average_over_day") + private Double averageOverDay; + + /** + * 日均超标监测点数占比(根据 日表的超标监测点数占比 取平均值) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; + + /** + * 累计超标监测点数占比(此表的累计超标监测点数/区域统计表中的区域分类统计季表中的累计有效接入监测点数) + */ + @TableField(value = "over_limit_measurement_ratio_accrued") + private Double overLimitMeasurementRatioAccrued; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatOrgQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatOrgQPO.java new file mode 100644 index 000000000..513487ca9 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatOrgQPO.java @@ -0,0 +1,148 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +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 java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/20 11:43【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_org_q") +public class RStatOrgQPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每季统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 监测点类别ID、监测对象类型ID + */ + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + /** + * 总监测点数 + */ + @TableField(value = "all_count") + private Integer allCount; + + /** + * 日均有效接入监测点数 + */ + @TableField(value = "effective_measurement_average") + private Double effectiveMeasurementAverage; + + /** + * 累计有效接入监测点数 + */ + @TableField(value = "effective_measurement_accrued") + private Integer effectiveMeasurementAccrued; + + /** + * 日均稳态超标监测点数 + */ + @TableField(value = "harmonic_measurement_average") + private Double harmonicMeasurementAverage; + + /** + * 累计稳态超标监测点数 + */ + @TableField(value = "harmonic_measurement_accrued") + private Integer harmonicMeasurementAccrued; + + /** + * 日均稳态超标监测点数占比 + */ + @TableField(value = "harmonic_measurement_ratio_average") + private Double harmonicMeasurementRatioAverage; + + /** + * 稳态指标平均超标天数 + */ + @TableField(value = "average_over_day") + private Double averageOverDay; + + /** + * 频率偏差合格率 + */ + @TableField(value = "freq_pass_rate") + private Double freqPassRate; + + /** + * 电压偏差合格率 + */ + @TableField(value = "v_dev_pass_rate") + private Double vDevPassRate; + + /** + * 闪变合格率 + */ + @TableField(value = "flicker_pass_rate") + private Double flickerPassRate; + + /** + * 日均监测到暂态指标的监测点数 + */ + @TableField(value = "event_measurement_average") + private Double eventMeasurementAverage; + + /** + * 累计监测到暂态指标的监测点数 + */ + @TableField(value = "event_measurement_accrued") + private Integer eventMeasurementAccrued; + + /** + * 日均暂态超标监测点数占比 + */ + @TableField(value = "event_measurement_ratio_average") + private Double eventMeasurementRatioAverage; + + /** + * 暂态指标发生频次 + */ + @TableField(value = "event_freq") + private Double eventFreq; + + /** + * 暂态指标发生次数 + */ + @TableField(value = "event_count") + private Integer eventCount; + + /** + * 应设点数 + */ + @TableField(value = "should_count") + private Integer shouldCount; + + /** + * 告警监测点数 + */ + @TableField(value = "warn_count") + private Integer warnCount; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatOrgYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatOrgYPO.java new file mode 100644 index 000000000..4ca8b711d --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatOrgYPO.java @@ -0,0 +1,146 @@ +package com.njcn.prepare.harmonic.pojo.mysql.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/6/20 11:43【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_org_y") +public class RStatOrgYPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每年统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 监测点类别ID、监测对象类型ID + */ + @MppMultiId(value = "measurement_type_class") + private String measurementTypeClass; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 总监测点数 + */ + @TableField(value = "all_count") + private Integer allCount; + + /** + * 日均有效接入监测点数 + */ + @TableField(value = "effective_measurement_average") + private Double effectiveMeasurementAverage; + + /** + * 累计有效接入监测点数 + */ + @TableField(value = "effective_measurement_accrued") + private Integer effectiveMeasurementAccrued; + + /** + * 日均稳态超标监测点数 + */ + @TableField(value = "over_limit_measurement_average") + private Double overLimitMeasurementAverage; + + /** + * 累计稳态超标监测点数 + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 日均稳态超标监测点数占比 + */ + @TableField(value = "harmonic_measurement_ratio_average") + private Double harmonicMeasurementRatioAverage; + + /** + * 稳态指标平均超标天数 + */ + @TableField(value = "average_over_day") + private Double averageOverDay; + + /** + * 频率偏差合格率 + */ + @TableField(value = "freq_pass_rate") + private Double freqPassRate; + + /** + * 电压偏差合格率 + */ + @TableField(value = "v_dev_pass_rate") + private Double vDevPassRate; + + /** + * 闪变合格率 + */ + @TableField(value = "flicker_pass_rate") + private Double flickerPassRate; + + /** + * 日均监测到暂态指标的监测点数 + */ + @TableField(value = "event_measurement_average") + private Double eventMeasurementAverage; + + /** + * 累计监测到暂态指标的监测点数 + */ + @TableField(value = "event_measurement_accrued") + private Integer eventMeasurementAccrued; + + /** + * 日均暂态超标监测点数占比 + */ + @TableField(value = "event_measurement_ratio_average") + private Double eventMeasurementRatioAverage; + + /** + * 暂态指标发生频次 + */ + @TableField(value = "event_freq") + private Double eventFreq; + + /** + * 暂态指标发生次数 + */ + @TableField(value = "event_count") + private Integer eventCount; + + /** + * 应设点数 + */ + @TableField(value = "should_count") + private Integer shouldCount; + + /** + * 告警监测点数 + */ + @TableField(value = "warn_count") + private Integer warnCount; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgQPO.java deleted file mode 100644 index a926e0e5d..000000000 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgQPO.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.njcn.prepare.harmonic.pojo.po; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import com.github.jeffreyning.mybatisplus.anno.MppMultiId; -import lombok.Data; - -import java.time.LocalDate; - -/** - *

- * 区域分类统计季表 - *

- * - * @author zbj - * @since 2023-06-09 - */ -@Data -@TableName("r_stat_org_q") -public class RStatOrgQPO { - - @MppMultiId(value = "org_no") - private String orgNo; - - @MppMultiId(value = "data_date") - private LocalDate dataDate; - - @MppMultiId(value = "measurement_type_class") - private String measurementTypeClass; - - @TableField(value = "all_count") - private Integer allCount; - - @TableField(value = "effective_measurement_average") - private Integer effectiveMeasurementAverage; - - @TableField(value = "effective_measurement_accrued") - private Integer effectiveMeasurementAccrued; - - @TableField(value = "harmonic_measurement_average") - private Integer harmonicMeasurementAverage; - - @TableField(value = "harmonic_measurement_accrued") - private Integer harmonicMeasurementAccrued; - - @TableField(value = "harmonic_measurement_ratio_average") - private Float harmonicMeasurementRatioAverage; - - @TableField(value = "average_over_day") - private Float averageOverDay; - - @TableField(value = "freq_pass_rate") - private Float freqPassRate; - - @TableField(value = "v_dev_pass_rate") - private Float vDevPassRate; - - @TableField(value = "flicker_pass_rate") - private Float flickerPassRate; - - @TableField(value = "event_measurement_average") - private Integer eventMeasurementAverage; - - @TableField(value = "event_measurement_accrued") - private Integer eventMeasurementAccrued; - - @TableField(value = "event_measurement_average") - private Float eventMeasurementRatioAverage; - - @TableField(value = "event_freq") - private Float eventFreq; - - @TableField(value = "event_count") - private Integer eventCount; - - @TableField(value = "should_count") - private Integer shouldCount; - - @TableField(value = "warn_count") - private Integer warnCount; - - @MppMultiId(value = "data_type") - private String dataType; - -} diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java deleted file mode 100644 index e64fdff24..000000000 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatOrgYPO.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.njcn.prepare.harmonic.pojo.po; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import com.github.jeffreyning.mybatisplus.anno.MppMultiId; -import lombok.Data; - -import java.time.LocalDate; - -/** - *

- * 区域分类统计季表 - *

- * - * @author zbj - * @since 2023-06-09 - */ -@Data -@TableName("r_stat_org_y") -public class RStatOrgYPO { - - @MppMultiId(value = "org_no") - private String orgNo; - - @MppMultiId(value = "data_date") - private LocalDate dataDate; - - @MppMultiId(value = "measurement_type_class") - private String measurementTypeClass; - - @TableField(value = "all_count") - private Integer allCount; - - @TableField(value = "effective_measurement_average") - private Integer effectiveMeasurementAverage; - - @TableField(value = "effective_measurement_accrued") - private Integer effectiveMeasurementAccrued; - - @TableField(value = "harmonic_measurement_average") - private Integer harmonicMeasurementAverage; - - @TableField(value = "harmonic_measurement_accrued") - private Integer harmonicMeasurementAccrued; - - @TableField(value = "harmonic_measurement_ratio_average") - private Float harmonicMeasurementRatioAverage; - - @TableField(value = "average_over_day") - private Float averageOverDay; - - @TableField(value = "freq_pass_rate") - private Float freqPassRate; - - @TableField(value = "v_dev_pass_rate") - private Float vDevPassRate; - - @TableField(value = "flicker_pass_rate") - private Float flickerPassRate; - - @TableField(value = "event_measurement_average") - private Integer eventMeasurementAverage; - - @TableField(value = "event_measurement_accrued") - private Integer eventMeasurementAccrued; - - @TableField(value = "event_measurement_average") - private Float eventMeasurementRatioAverage; - - @TableField(value = "event_freq") - private Float eventFreq; - - @TableField(value = "event_count") - private Integer eventCount; - - @TableField(value = "should_count") - private Integer shouldCount; - - @TableField(value = "warn_count") - private Integer warnCount; - - @MppMultiId(value = "data_type") - private String dataType; - -} diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/utils/PublicUtil.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/utils/PublicUtil.java index 570fe9670..468b426d5 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/utils/PublicUtil.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/utils/PublicUtil.java @@ -8,7 +8,9 @@ import com.njcn.system.pojo.po.DictData; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.Month; import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; import java.util.*; public class PublicUtil { @@ -98,13 +100,51 @@ public class PublicUtil { // System.out.println ( PublicUtil.getNowQuarter ("2002-01-07")); System.out.println(getDayByMonth(2023,03)); + LocalDate currentDate = LocalDate.now(); + + // 获取当前季度的第一个月份 + Month firstMonthOfQuarter = currentDate.getMonth().firstMonthOfQuarter(); + + // 获取当前季度的最后一个月份 + Month lastMonthOfQuarter = firstMonthOfQuarter.plus(2); + + // 计算当前季度的总天数 + int totalDaysInQuarter = 0; + for (Month month = firstMonthOfQuarter; !month.equals(lastMonthOfQuarter.plus(1)); month = month.plus(1)) { + totalDaysInQuarter += month.length(currentDate.isLeapYear()); + } + + System.out.println("Total days in the current quarter: " + totalDaysInQuarter); } - /** - * 根据当前年、月获取每一天日期 - */ + * @Description: 获取当前日期的当前季度总天数 + * @Param: + * @return: java.lang.Integer + * @Author: clam + * @Date: 2023/6/6 + */ + + public static Integer getQtrDays(LocalDate currentDate ){ + Month firstMonthOfQuarter = currentDate.getMonth().firstMonthOfQuarter(); + + // 获取当前季度的最后一个月份 + Month lastMonthOfQuarter = firstMonthOfQuarter.plus(2); + + // 计算当前季度的总天数 + int totalDaysInQuarter = 0; + for (Month month = firstMonthOfQuarter; !month.equals(lastMonthOfQuarter.plus(1)); month = month.plus(1)) { + totalDaysInQuarter += month.length(currentDate.isLeapYear()); + } + return totalDaysInQuarter; + + } + + + /** + * 根据当前年、月获取每一天日期 + */ public static List getDayByMonth(int yearParam, int monthParam){ List list = new ArrayList<>(); Calendar calendar = Calendar.getInstance(Locale.CHINA); @@ -180,4 +220,6 @@ public class PublicUtil { } return null; } + + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatHarmonicByPowerLevelController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatHarmonicByPowerLevelController.java new file mode 100644 index 000000000..bb9e0081b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatHarmonicByPowerLevelController.java @@ -0,0 +1,75 @@ +package com.njcn.prepare.harmonic.controller.newalgorithm; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.ServerInfo; +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.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.param.DeptGetLineParam; +import com.njcn.prepare.harmonic.pojo.param.OrgParam; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 13:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Api(tags = "单位监测点稳态指标统计通过电压等级") +@RestController +@RequestMapping("/rstatharmonicbypl") +@RequiredArgsConstructor +public class RStatHarmonicByPowerLevelController extends BaseController { + + + private final RStatHarmonicVoltageService service; + private final CommTerminalGeneralClient commTerminalGeneralClient; + private final DeptFeignClient deptFeignClient; + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/HandlerByPowerLevel") + @ApiOperation("单位监测点稳态指标统计通过电压等级") + @ApiImplicitParam(name = "orgParam", value = "参数", required = true) + public HttpResult handlerByPowerLevel(@RequestBody @Validated OrgParam orgParam ){ + log.info(LocalDateTime.now()+"handlerByPowerLevel始执行"); + String methodDescribe = getMethodDescribe("handlerByPowerLevel"); + /** + * 支持补录 + */ + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + + if(StringUtils.isEmpty(orgParam.getOrgId())){ + Dept data = deptFeignClient.getRootDept().getData(); + deptGetLineParam.setDeptId(data.getId()); + }else { + deptGetLineParam.setDeptId(orgParam.getOrgId()); + } + deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT); + List data = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); + service.handlerByPowerLevel (data,orgParam.getDataDate(),orgParam.getType()); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicMPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicMPOMapper.java new file mode 100644 index 000000000..7b2629788 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicMPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; + +/** + * + * Description: + * Date: 2023/6/7 16:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicMPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicQPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicQPOMapper.java new file mode 100644 index 000000000..4dd6d5c6a --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicQPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicQPO; + +/** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicQPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicVoltageDPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicVoltageDPOMapper.java new file mode 100644 index 000000000..48056a469 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicVoltageDPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; + +/** + * + * Description: + * Date: 2023/6/6 9:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicVoltageDPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicYPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicYPOMapper.java new file mode 100644 index 000000000..b487b7d0a --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatHarmonicYPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicYPO; + +/** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicYPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java index 22eb93b43..f8069c02a 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQMapper.java @@ -1,7 +1,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.area; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; -import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQPOMapper.java new file mode 100644 index 000000000..2a2bd9e07 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgQPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; + +/** + * + * Description: + * Date: 2023/6/7 8:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatOrgQPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java index 92eb3eec5..2a4d2fa8d 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYMapper.java @@ -1,8 +1,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.area; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; -import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO; -import com.njcn.prepare.harmonic.pojo.po.RStatOrgYPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYPOMapper.java new file mode 100644 index 000000000..6c9d9e04c --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgYPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO; + +/** + * + * Description: + * Date: 2023/6/7 8:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatOrgYPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicMPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicMPOMapper.xml new file mode 100644 index 000000000..3e8e763a6 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicMPOMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, harmonic_type, data_type, over_limit_measurement_average, + over_limit_measurement_accrued, over_day, over_limit_measurement_ratio_average, over_limit_measurement_ratio_accrued + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicQPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicQPOMapper.xml new file mode 100644 index 000000000..9a9ac9ecc --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicQPOMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, harmonic_type, data_type, over_limit_measurement_average, + over_limit_measurement_accrued, average_over_day, over_limit_measurement_ratio_average, + over_limit_measurement_ratio_accrued + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicVoltageDPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicVoltageDPOMapper.xml new file mode 100644 index 000000000..a2b5374c6 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicVoltageDPOMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, harmonic_type, voltage_type, data_type, + over_limit_measurement_average, over_limit_measurement_ratio_average + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicYPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicYPOMapper.xml new file mode 100644 index 000000000..37a4a0fcc --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatHarmonicYPOMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, harmonic_type, data_type, over_limit_measurement_average, + over_limit_measurement_accrued, average_over_day, over_limit_measurement_ratio_average, + over_limit_measurement_ratio_accrued + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgQPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgQPOMapper.xml new file mode 100644 index 000000000..6b1839f81 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgQPOMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, all_count, effective_measurement_average, + effective_measurement_accrued, harmonic_measurement_average, harmonic_measurement_accrued, + harmonic_measurement_ratio_average, average_over_day, freq_pass_rate, v_dev_pass_rate, + flicker_pass_rate, event_measurement_average, event_measurement_accrued, event_measurement_ratio_average, + event_freq, event_count, should_count, warn_count, data_type + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgYPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgYPOMapper.xml new file mode 100644 index 000000000..3f4c0db0d --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgYPOMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, data_type, all_count, effective_measurement_average, + effective_measurement_accrued, over_limit_measurement_average, over_limit_measurement_accrued, + harmonic_measurement_ratio_average, average_over_day, freq_pass_rate, v_dev_pass_rate, + flicker_pass_rate, event_measurement_average, event_measurement_accrued, event_measurement_ratio_average, + event_freq, event_count, should_count, warn_count + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicMPOServiceImpl.java new file mode 100644 index 000000000..6af839f1b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicMPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatHarmonicMPOMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicMPOService; +/** + * + * Description: + * Date: 2023/6/7 16:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicMPOServiceImpl extends MppServiceImpl implements RStatHarmonicMPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicQPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicQPOServiceImpl.java new file mode 100644 index 000000000..c8fa11d28 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicQPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatHarmonicQPOMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicQPO; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicQPOService; +/** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicQPOServiceImpl extends MppServiceImpl implements RStatHarmonicQPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java index e5aa92e60..7ff6bd147 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java @@ -1,22 +1,24 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.common.pojo.response.HttpResult; 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.RStatHarmonicD; -import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import com.njcn.device.pms.pojo.po.RStatOrgPO; +import com.njcn.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper; import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; import com.njcn.prepare.harmonic.service.mysql.Impl.line.RMpPartHarmonicDetailDServiceImpl; -import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicDPOService; -import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService; -import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgDService; +import com.njcn.prepare.harmonic.service.mysql.area.*; import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; @@ -30,6 +32,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -47,10 +50,18 @@ import java.util.stream.Collectors; public class RStatHarmonicServiceImpl implements RStatHarmonicService { private final RStatHarmonicDPOService rStatHarmonicDPOService; + private final RStatHarmonicMPOService rStatHarmonicMPOService; + private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; private final RStatOrgDMapper rStatOrgDMapper; + private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper; + private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper; + private final RStatOrgMMapper rStatOrgMMapper; + + + private final DicDataFeignClient dicDataFeignClient; @@ -63,9 +74,9 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { // case 2: // this.hanlderOracleQtr (lineParam); // break; -// case 3: -// this.hanlderOracleMonth (lineParam); -// break; + case 3: + this.hanlderOracleM ( data, dataDate, type); + break; case 5: this.hanlderDay ( data, dataDate, type); break; @@ -73,6 +84,222 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { break; } } + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderOracleM(List data, String dataDate, Integer type) { + + List rStatHarmonicMPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper harmonicDPOQueryWrapper = new QueryWrapper<>(); + + DecimalFormat df = new DecimalFormat("0.00"); + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicMPO rStatHarmonicMPO = new RStatHarmonicMPO(); + rStatHarmonicMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicMPO.setDataDate(date); + rStatHarmonicMPO.setHarmonicType(dictData.getId()); + rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + /**4、累计超标监测点数*/ + rStatHarmonicMPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicDPOQueryWrapper.clear(); + harmonicDPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rStatHarmonicDPOList = rStatHarmonicDPOService.list(harmonicDPOQueryWrapper); + double asDouble = rStatHarmonicDPOList.stream().mapToDouble(RStatHarmonicDPO::getOverLimitMeasurement).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double asDouble1 = rStatHarmonicDPOList.stream().mapToDouble(RStatHarmonicDPO::getOverLimitMeasurementRatio).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + rStatHarmonicMPO.setOverLimitMeasurementAverage(asDouble); + double sum = rStatHarmonicDPOList.stream().mapToDouble(RStatHarmonicDPO::getOverLimitMeasurement).sum(); + rStatHarmonicMPO.setOverLimitMeasurementRatioAverage(asDouble1); + + int i = BigDecimal.valueOf(asDouble1).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); + + rStatHarmonicMPO.setOverDay(i); + + if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicMPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatHarmonicMPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicMPOList.add(rStatHarmonicMPO); + }); + + }); + + } + /*配网*/ + if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicMPO rStatHarmonicMPO = new RStatHarmonicMPO(); + rStatHarmonicMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicMPO.setDataDate(date); + rStatHarmonicMPO.setHarmonicType(dictData.getId()); + rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + rStatHarmonicMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + /**4、累计超标监测点数*/ + rStatHarmonicMPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicDPOQueryWrapper.clear(); + harmonicDPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rStatHarmonicDPOList = rStatHarmonicDPOService.list(harmonicDPOQueryWrapper); + double asDouble = rStatHarmonicDPOList.stream().mapToDouble(RStatHarmonicDPO::getOverLimitMeasurement).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double asDouble1 = rStatHarmonicDPOList.stream().mapToDouble(RStatHarmonicDPO::getOverLimitMeasurementRatio).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + rStatHarmonicMPO.setOverLimitMeasurementAverage(asDouble); + double sum = rStatHarmonicDPOList.stream().mapToDouble(RStatHarmonicDPO::getOverLimitMeasurement).sum(); + rStatHarmonicMPO.setOverLimitMeasurementRatioAverage(asDouble1); + + int i = BigDecimal.valueOf(asDouble1).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); + + rStatHarmonicMPO.setOverDay(i); + + if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicMPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatHarmonicMPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicMPOList.add(rStatHarmonicMPO); + }); + + }); + + } + }); + if(CollectionUtil.isNotEmpty(rStatHarmonicMPOList)){ + rStatHarmonicMPOService.saveOrUpdateBatchByMultiId(rStatHarmonicMPOList,500); + + } + } + + private Integer getOverLimitMeasurementAccruedTime(DictData dictData, List rMpPartHarmonicDetailMS, List rMpSurplusHarmonicDetailMS) { + Integer value = 0; + if (Objects.equals(dictData.getCode(),DicDataEnum.VOLTAGE_DEV.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVDevOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.FLICKER.getCode())) { + value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getFlickerOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_CURRENT.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getIOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getInuharmOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.PHASE_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getUnbalanceOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.FREQUENCY_DEV.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getFreqOverDay()>0).count()+""); + + } + if (Objects.equals(dictData.getCode(),DicDataEnum.NEG_CURRENT.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getINegOverDay()>0).count()+""); + } + + return value; + } + @Transactional(rollbackFor = {Exception.class}) @Async("asyncExecutor") diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageDPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageDPOServiceImpl.java new file mode 100644 index 000000000..c228f0e32 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageDPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatHarmonicVoltageDPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageDPOService; +/** + * + * Description: + * Date: 2023/6/6 9:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicVoltageDPOServiceImpl extends MppServiceImpl implements RStatHarmonicVoltageDPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java new file mode 100644 index 000000000..e6a37bcc5 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java @@ -0,0 +1,267 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.RStatOrgDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageDPOService; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.text.DecimalFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Description: + * Date: 2023/6/6 10:08【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageService { + + private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; + private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; + private final RStatOrgDMapper rStatOrgDMapper; + private final RStatHarmonicVoltageDPOService rStatHarmonicVoltageDPOService; + + private final + DicDataFeignClient dicDataFeignClient; + @Override + public void handlerByPowerLevel(List data, String dataDate, Integer type) { + switch (type) { +// case 1: +// this.hanlderOracleYear (lineParam); +// break; +// case 2: +// this.hanlderOracleQtr (lineParam); +// break; +// case 3: +// this.hanlderOracleMonth (lineParam); +// break; + case 5: + this.hanlderDayByPl ( data, dataDate, type); + break; + default: + break; + } + + } + + @Transactional(rollbackFor = {Exception.class}) + @Async("asyncExecutor") + @SneakyThrows + private void hanlderDayByPl(List data, String dataDate, Integer type) { + List rStatHarmonicVoltageDPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgDPOQueryWrapper = new QueryWrapper<>(); + DecimalFormat df = new DecimalFormat("0.00"); + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){ + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + Map> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel)); + collect2.forEach((k1, v1) -> { + + List collect3 = v1.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + + queryWrapper.clear(); + queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg"). + in("measurement_point_id",collect3). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + List rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailDQueryWrapper.clear(); + rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm"). + in("measurement_point_id",collect3). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + List rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper); + + rStatOrgDPOQueryWrapper.clear(); + rStatOrgDPOQueryWrapper.select("effective_measurement"). + eq("org_no",deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class",getmeasurementType(k,lineSortMap)). + eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper); + steadyStatis.forEach(dictData -> { + if(Objects.equals(dictData.getCode(),DicDataEnum.TOTAL_INDICATOR.getCode())){ + return; + } + RStatHarmonicVoltageDPO rStatHarmonicVoltageDPO = new RStatHarmonicVoltageDPO(); + rStatHarmonicVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicVoltageDPO.setDataDate(date); + rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId()); + rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicVoltageDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatHarmonicVoltageDPO.setVoltageType(k1); + rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS)); + if(rStatOrgDPO.getEffectiveMeasurement()==0){ + rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(1.00); + + }else{ + String value = df.format((float)rStatHarmonicVoltageDPO.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement()); + rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(value)); + } + rStatHarmonicVoltageDPOList.add(rStatHarmonicVoltageDPO); + }) + + ;} + ); + + }); + + } + /*配网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> pwMonitorMap = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + pwMonitorMap.forEach((k, v)->{ + Map> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel)); + collect2.forEach((k1, v1) -> { + + List collect3 = v1.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + + queryWrapper.clear(); + queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg"). + in("measurement_point_id",collect3). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + List rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailDQueryWrapper.clear(); + rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm"). + in("measurement_point_id",collect3). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + List rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper); + + rStatOrgDPOQueryWrapper.clear(); + rStatOrgDPOQueryWrapper.select("effective_measurement"). + eq("org_no",deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class",getmeasurementType(k,lineSortMap)). + eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper); + steadyStatis.forEach(dictData -> { + if(Objects.equals(dictData.getCode(),DicDataEnum.TOTAL_INDICATOR.getCode())){ + return; + } + RStatHarmonicVoltageDPO rStatHarmonicVoltageDPO = new RStatHarmonicVoltageDPO(); + rStatHarmonicVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicVoltageDPO.setDataDate(date); + rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId()); + rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + rStatHarmonicVoltageDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatHarmonicVoltageDPO.setVoltageType(k1); + rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS)); + if(rStatOrgDPO.getEffectiveMeasurement()==0){ + rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(1.00); + + }else{ + String value = df.format((float)rStatHarmonicVoltageDPO.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement()); + rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(value)); + } + rStatHarmonicVoltageDPOList.add(rStatHarmonicVoltageDPO); + }) + + ;} + ); + + }); + } + + }); + if(!CollectionUtils.isEmpty(rStatHarmonicVoltageDPOList)){ + rStatHarmonicVoltageDPOService.saveOrUpdateBatchByMultiId(rStatHarmonicVoltageDPOList,500); + } + } + + private String getmeasurementType(Integer k, Map lineSortMap) { + String value =""; + switch (k) { + case 1: + value =lineSortMap.get(DicDataEnum.ONE_LINE.getCode()).getId(); + break; + case 2: + value =lineSortMap.get(DicDataEnum.TWO_LINE.getCode()).getId(); + break; + case 3: + value =lineSortMap.get(DicDataEnum.THREE_LINE.getCode()).getId(); + break; + default: + break; + } + return value; + } + + private Integer getSteadyStatisData(DictData dictData, List rMpPartHarmonicDetailDS, List rMpSurplusHarmonicDetailDS) { + Integer value = 0; + if (Objects.equals(dictData.getCode(),DicDataEnum.VOLTAGE_DEV.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsVDev()==1).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.FLICKER.getCode())) { + value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsFlicker()==1).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsV()==1).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_CURRENT.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsI()==1).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsInuharm()==1).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.PHASE_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsUnbalance()==1).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.FREQUENCY_DEV.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsFreq()==1).count()+""); + + } + if (Objects.equals(dictData.getCode(),DicDataEnum.NEG_CURRENT.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsINeg()==1).count()+""); + } + + return value; + + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicYPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicYPOServiceImpl.java new file mode 100644 index 000000000..dcc7a0dfa --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicYPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicYPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatHarmonicYPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicYPOService; +/** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicYPOServiceImpl extends MppServiceImpl implements RStatHarmonicYPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgQPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgQPOServiceImpl.java new file mode 100644 index 000000000..a778dc4a8 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgQPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgQPOService; +/** + * + * Description: + * Date: 2023/6/7 8:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatOrgQPOServiceImpl extends MppServiceImpl implements RStatOrgQPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java index baaee7a88..32dd3dfd8 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java @@ -1,19 +1,25 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Dict; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; -import com.njcn.harmonic.pojo.po.*; +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; +import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO; +import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import com.njcn.harmonic.pojo.po.RStatOrgMPO; import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper; -import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper; -import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.*; import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; -import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO; -import com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO; -import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgDService; -import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService; + +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO; + +import com.njcn.prepare.harmonic.service.mysql.area.*; +import com.njcn.prepare.harmonic.utils.PublicUtil; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; @@ -25,6 +31,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -40,25 +49,39 @@ import java.util.stream.Collectors; public class RStatOrgServiceImpl implements RStatOrgService { private final RStatOrgDService rStatOrgDService; + private final RStatOrgMService rStatOrgMService; + private final RStatOrgQPOService rStatOrgQService; + private final RStatOrgYPOService rStatOrgYService; + + + private final DicDataFeignClient dicDataFeignClient; private final ROperatingMonitorDMapper rOperatingMonitorDMapper; private final RMpTargetWarnDMapper rMpTargetWarnDMapper; private final RMpEventDetailDMapper rMpEventDetailDMapper; + private final RMpPassRateMMapper rMpPassRateMMapper; + private final RMpPassRateQMapper rMpPassRateQMapper; + private final RMpPassRateYMapper rMpPassRateYMapper; + + + + DecimalFormat df = new DecimalFormat("0.00"); + @Override public void handler(List data, String dataDate, Integer type) { switch (type) { -// case 1: -// this.hanlderOracleYear (lineParam); -// break; -// case 2: -// this.hanlderOracleQtr (lineParam); -// break; -// case 3: -// this.hanlderOracleMonth (lineParam); -// break; + case 1: + this.hanlderYear (data, dataDate, type); + break; + case 2: + this.hanlderQtr (data, dataDate, type); + break; + case 3: + this.hanlderMonth (data, dataDate, type); + break; case 5: this.hanlderDay ( data, dataDate, type); break; @@ -67,6 +90,823 @@ public class RStatOrgServiceImpl implements RStatOrgService { } } + @Transactional(rollbackFor = {Exception.class}) + @Async("asyncExecutor") + @SneakyThrows + private void hanlderYear(List data, String dataDate, Integer type) { + List rStatOrgYList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + /*获取当季天数求均值使用*/ + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); // 转换为LocalDate对象 + int days = localDate.lengthOfYear(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rmpTargetWarnDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rMpEventDetailDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rMpPassRateYPOQueryWrapper = new QueryWrapper<>(); + + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){ + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + RStatOrgYPO rStatOrgYPO = new RStatOrgYPO(); + rStatOrgYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatOrgYPO.setDataDate(date); + rStatOrgYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatOrgYPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatOrgYPO.setAllCount(v.size()); + /*2、2、日均有效接入监测点数2、日均有效接入监测点数*/ + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + gt("effective_minute_count",0). + eq("YEAR( data_date)", dataDate.substring(0,4)); + List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); + String value = df.format((float)rOperatingMonitorDPOS.size()/ days); + + rStatOrgYPO.setEffectiveMeasurementAverage(Double.valueOf(value)); + /*3、3、累计有效接入监测点数*/ + long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); + rStatOrgYPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); + + /*4、日均稳态超标监测点数*/ + rmpTargetWarnDPOQueryWrapper.clear(); + rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + eq("is_harmonic",1). + eq("YEAR( data_date)", dataDate.substring(0,4)); + List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); + String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); + rStatOrgYPO.setOverLimitMeasurementAverage(Double.parseDouble(value1)); + + /* 5、累计稳态超标监测点数*/ + long count1 = rMpTargetWarnDPOS.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().count(); + + rStatOrgYPO.setOverLimitMeasurementAccrued(Integer.valueOf(count1+"")); + + /*6、日均稳态超标监测点数占比*/ + + String value2 = df.format(rStatOrgYPO.getOverLimitMeasurementAccrued() / rStatOrgYPO.getAllCount()); + rStatOrgYPO.setHarmonicMeasurementRatioAverage(Double.parseDouble(value2)); + + /*7、稳态指标平均超标天数*/ + if(count1==0){ + rStatOrgYPO.setAverageOverDay(0.00); + }else{ + String format = df.format((float)rMpTargetWarnDPOS.size()/ count1); + rStatOrgYPO.setAverageOverDay(Double.parseDouble(format)); + + + } + + /*8、频率偏差合格率,9、电压偏差合格率,10、闪变合格率*/ + rMpPassRateYPOQueryWrapper.clear(); + rMpPassRateYPOQueryWrapper.select("avg(freq_pass_rate) as freq_pass_rate","avg(v_dev_pass_rate) as v_dev_pass_rate","avg(flicker_pass_rate) as flicker_pass_rate"). + in("measurement_point_id",collect1). + eq("YEAR( data_date)", dataDate.substring(0,4)); + RMpPassRateYPO rMpPassRateYPO = rMpPassRateYMapper.selectOne(rMpPassRateYPOQueryWrapper); + rStatOrgYPO.setFreqPassRate(rMpPassRateYPO.getFreqPassRate()); + rStatOrgYPO.setFlickerPassRate(rMpPassRateYPO.getFlickerPassRate()); + rStatOrgYPO.setVDevPassRate(rMpPassRateYPO.getvDevPassRate()); + + + + /*11、日均监测到暂态指标的监测点数*/ + rMpEventDetailDPOQueryWrapper.clear(); + rMpEventDetailDPOQueryWrapper. + in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). + eq("YEAR( data_date)", dataDate.substring(0,4)); + List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + String value3 = df.format((float)rMpEventDetailDPOS.size()/ days); + rStatOrgYPO.setEventMeasurementAverage(Double.valueOf(value3)); + /*12、累计监测到暂态指标的监测点数*/ + long count2 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + rStatOrgYPO.setEventMeasurementAccrued(Integer.valueOf(count2+"")); + /*13、日均暂态超标监测点数占比*/ + String value4 = df.format(rStatOrgYPO.getEventMeasurementAverage() / rStatOrgYPO.getAllCount()); + rStatOrgYPO.setEventMeasurementRatioAverage(Double.valueOf(value4)); + + /*15、暂态指标发生频次*/ + rStatOrgYPO.setEventCount(sum+sum1+sum2); + + /*14、暂态指标发生频次*/ + long count3 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + if(count3==0){ + rStatOrgYPO.setEventFreq(0.00); + }else{ + String value5 = df.format((float)rStatOrgYPO.getEventCount() / count3); + + rStatOrgYPO.setEventFreq(Double.valueOf(value5)); + } + + + + + /*todo这个指标不重要,后续根据配置来*/ + /*17、告警监测点数*/ + rStatOrgYPO.setShouldCount(8); + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("distinct(measurement_point_id)"). + in("measurement_point_id",collect1). + eq("is_unusual",1). + eq("YEAR( data_date)", dataDate.substring(0,4)); + Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper); + rStatOrgYPO.setWarnCount(integer2); + + rStatOrgYList.add(rStatOrgYPO); + }); + + } + /*配网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + RStatOrgYPO rStatOrgYPO = new RStatOrgYPO(); + rStatOrgYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatOrgYPO.setDataDate(date); + rStatOrgYPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + rStatOrgYPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatOrgYPO.setAllCount(v.size()); + /*2、2、日均有效接入监测点数2、日均有效接入监测点数*/ + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + gt("effective_minute_count",0). + eq("YEAR( data_date)", dataDate.substring(0,4)); + List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); + String value = df.format((float)rOperatingMonitorDPOS.size()/ days); + + rStatOrgYPO.setEffectiveMeasurementAverage(Double.valueOf(value)); + /*3、3、累计有效接入监测点数*/ + long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); + rStatOrgYPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); + + /*4、日均稳态超标监测点数*/ + rmpTargetWarnDPOQueryWrapper.clear(); + rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + eq("is_harmonic",1). + eq("YEAR( data_date)", dataDate.substring(0,4)); + List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); + String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); + rStatOrgYPO.setOverLimitMeasurementAverage(Double.parseDouble(value1)); + + /* 5、累计稳态超标监测点数*/ + long count1 = rMpTargetWarnDPOS.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().count(); + + rStatOrgYPO.setOverLimitMeasurementAccrued(Integer.valueOf(count1+"")); + + /*6、日均稳态超标监测点数占比*/ + String value2 = df.format(rStatOrgYPO.getOverLimitMeasurementAccrued() / rStatOrgYPO.getAllCount()); + rStatOrgYPO.setHarmonicMeasurementRatioAverage(Double.parseDouble(value2)); + + /*7、稳态指标平均超标天数*/ + if(count1==0){ + rStatOrgYPO.setAverageOverDay(0.00); + + }else { + String format = df.format((float)rMpTargetWarnDPOS.size()/ count1); + + rStatOrgYPO.setAverageOverDay(Double.parseDouble(format)); + } + + /*8、频率偏差合格率,9、电压偏差合格率,10、闪变合格率*/ + rMpPassRateYPOQueryWrapper.clear(); + rMpPassRateYPOQueryWrapper.select("avg(freq_pass_rate) as freq_pass_rate","avg(v_dev_pass_rate) as v_dev_pass_rate","avg(flicker_pass_rate) as flicker_pass_rate"). + in("measurement_point_id",collect1). + eq("YEAR( data_date)", dataDate.substring(0,4)); + RMpPassRateYPO rMpPassRateYPO = rMpPassRateYMapper.selectOne(rMpPassRateYPOQueryWrapper); + rStatOrgYPO.setFreqPassRate(rMpPassRateYPO.getFreqPassRate()); + rStatOrgYPO.setFlickerPassRate(rMpPassRateYPO.getFlickerPassRate()); + rStatOrgYPO.setVDevPassRate(rMpPassRateYPO.getvDevPassRate()); + + + + /*11、日均监测到暂态指标的监测点数*/ + rMpEventDetailDPOQueryWrapper.clear(); + rMpEventDetailDPOQueryWrapper. + in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). + eq("YEAR( data_date)", dataDate.substring(0,4)); + List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + String value3 = df.format((float)rMpEventDetailDPOS.size()/ days); + rStatOrgYPO.setEventMeasurementAverage(Double.valueOf(value3)); + /*12、累计监测到暂态指标的监测点数*/ + long count2 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + rStatOrgYPO.setEventMeasurementAccrued(Integer.valueOf(count2+"")); + /*13、日均暂态超标监测点数占比*/ + String value4 = df.format(rStatOrgYPO.getEventMeasurementAverage() / rStatOrgYPO.getAllCount()); + rStatOrgYPO.setEventMeasurementRatioAverage(Double.valueOf(value4)); + + /*15、暂态指标发生频次*/ + rStatOrgYPO.setEventCount(sum+sum1+sum2); + + /*14、暂态指标发生频次*/ + + long count3 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + if(count3==0){ + rStatOrgYPO.setEventFreq(0.00); + + }else { + String value5 = df.format((float)rStatOrgYPO.getEventCount() / count3); + + rStatOrgYPO.setEventFreq(Double.valueOf(value5)); + } + + + + + /*todo这个指标不重要,后续根据配置来*/ + /*17、告警监测点数*/ + rStatOrgYPO.setShouldCount(8); + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("distinct(measurement_point_id)"). + in("measurement_point_id",collect1). + eq("is_unusual",1). + eq("YEAR( data_date)", dataDate.substring(0,4)); + Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper); + rStatOrgYPO.setWarnCount(integer2); + + rStatOrgYList.add(rStatOrgYPO); + }); + + } + + }); + if (!CollectionUtils.isEmpty(rStatOrgYList)){ + rStatOrgYService.saveOrUpdateBatchByMultiId(rStatOrgYList,500); + } + + } + + @Transactional(rollbackFor = {Exception.class}) + @Async("asyncExecutor") + @SneakyThrows + private void hanlderQtr(List data, String dataDate, Integer type) { + List rStatOrgQPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + /*获取当季天数求均值使用*/ + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); // 转换为LocalDate对象 + int days = PublicUtil.getQtrDays(localDate); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rmpTargetWarnDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rMpEventDetailDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rMpPassRateQPOQueryWrapper = new QueryWrapper<>(); + + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){ + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + RStatOrgQPO rStatOrgQPO = new RStatOrgQPO(); + rStatOrgQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatOrgQPO.setDataDate(date); + rStatOrgQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatOrgQPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatOrgQPO.setAllCount(v.size()); + /*2、2、日均有效接入监测点数2、日均有效接入监测点数*/ + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + gt("effective_minute_count",0). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); + String value = df.format((float)rOperatingMonitorDPOS.size()/ days); + + rStatOrgQPO.setEffectiveMeasurementAverage(Double.parseDouble(value)); + /*3、3、累计有效接入监测点数*/ + long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); + rStatOrgQPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); + + /*4、日均稳态超标监测点数*/ + rmpTargetWarnDPOQueryWrapper.clear(); + rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + eq("is_harmonic",1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); + String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); + rStatOrgQPO.setHarmonicMeasurementAverage(Double.parseDouble(value1)); + + /* 5、累计稳态超标监测点数*/ + long count1 = rMpTargetWarnDPOS.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().count(); + + rStatOrgQPO.setHarmonicMeasurementAccrued(Integer.valueOf(count1+"")); + + /*6、日均稳态超标监测点数占比*/ + String value2 = df.format(rStatOrgQPO.getHarmonicMeasurementAccrued() / rStatOrgQPO.getAllCount()); + rStatOrgQPO.setHarmonicMeasurementRatioAverage(Double.parseDouble(value2)); + + /*7、累计超标天数*/ + if(count1==0){ + rStatOrgQPO.setAverageOverDay(0.00); + + }else { + String format = df.format((float)rMpTargetWarnDPOS.size()/ count1); + + rStatOrgQPO.setAverageOverDay(Double.parseDouble(format)); + } + + /*8、频率偏差合格率,9、电压偏差合格率,10、闪变合格率*/ + rMpPassRateQPOQueryWrapper.clear(); + rMpPassRateQPOQueryWrapper.select("avg(freq_pass_rate) as freq_pass_rate","avg(v_dev_pass_rate) as v_dev_pass_rate","avg(flicker_pass_rate) as flicker_pass_rate"). + in("measurement_point_id",collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + RMpPassRateQPO rMpPassRateQPO = rMpPassRateQMapper.selectOne(rMpPassRateQPOQueryWrapper); + rStatOrgQPO.setFreqPassRate(rMpPassRateQPO.getFreqPassRate()); + rStatOrgQPO.setFlickerPassRate(rMpPassRateQPO.getFlickerPassRate()); + rStatOrgQPO.setVDevPassRate(rMpPassRateQPO.getvDevPassRate()); + + + + /*11、日均监测到暂态指标的监测点数*/ + rMpEventDetailDPOQueryWrapper.clear(); + rMpEventDetailDPOQueryWrapper. + in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + String value3 = df.format((float)rMpEventDetailDPOS.size()/ days); + rStatOrgQPO.setEventMeasurementAverage(Double.valueOf(value3)); + /*12、累计监测到暂态指标的监测点数*/ + long count2 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + rStatOrgQPO.setEventMeasurementAccrued(Integer.valueOf(count2+"")); + /*13、日均暂态超标监测点数占比*/ + String value4 = df.format(rStatOrgQPO.getEventMeasurementAverage() / rStatOrgQPO.getAllCount()); + rStatOrgQPO.setEventMeasurementRatioAverage(Double.valueOf(value4)); + + /*15、暂态指标发生频次*/ + rStatOrgQPO.setEventCount(sum+sum1+sum2); + + /*14、暂态指标发生频次*/ + long count3 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + if(count3==0){ + rStatOrgQPO.setEventFreq(0.00); + + }else { + String value5 = df.format((float)rStatOrgQPO.getEventCount() / count3); + + rStatOrgQPO.setEventFreq(Double.valueOf(value5)); + } + + + + + /*todo这个指标不重要,后续根据配置来*/ + /*17、告警监测点数*/ + rStatOrgQPO.setShouldCount(8); + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("distinct(measurement_point_id)"). + in("measurement_point_id",collect1). + eq("is_unusual",1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper); + rStatOrgQPO.setWarnCount(integer2); + + rStatOrgQPOList.add(rStatOrgQPO); + }); + + } + /*配网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + RStatOrgQPO rStatOrgQPO = new RStatOrgQPO(); + rStatOrgQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatOrgQPO.setDataDate(date); + rStatOrgQPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + rStatOrgQPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatOrgQPO.setAllCount(v.size()); + /*2、2、日均有效接入监测点数2、日均有效接入监测点数*/ + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + gt("effective_minute_count",0). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); + String value = df.format((float)rOperatingMonitorDPOS.size()/ days); + + rStatOrgQPO.setEffectiveMeasurementAverage(Double.parseDouble(value)); + /*3、3、累计有效接入监测点数*/ + long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); + rStatOrgQPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); + + /*4、日均稳态超标监测点数*/ + rmpTargetWarnDPOQueryWrapper.clear(); + rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + eq("is_harmonic",1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); + String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); + rStatOrgQPO.setHarmonicMeasurementAverage(Double.parseDouble(value1)); + + /* 5、累计稳态超标监测点数*/ + long count1 = rMpTargetWarnDPOS.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().count(); + + rStatOrgQPO.setHarmonicMeasurementAccrued(Integer.valueOf(count1+"")); + + /*6、日均稳态超标监测点数占比*/ + String value2 = df.format(rStatOrgQPO.getHarmonicMeasurementAccrued() / rStatOrgQPO.getAllCount()); + rStatOrgQPO.setHarmonicMeasurementRatioAverage(Double.parseDouble(value2)); + + /*7、累计超标天数*/ + if(count1==0) { + rStatOrgQPO.setAverageOverDay(0.00); + + }else{ + String format = df.format((float)rMpTargetWarnDPOS.size()/ count1); + + rStatOrgQPO.setAverageOverDay(Double.parseDouble(format)); + } + + /*8、频率偏差合格率,9、电压偏差合格率,10、闪变合格率*/ + rMpPassRateQPOQueryWrapper.clear(); + rMpPassRateQPOQueryWrapper.select("avg(freq_pass_rate) as freq_pass_rate","avg(v_dev_pass_rate) as v_dev_pass_rate","avg(flicker_pass_rate) as flicker_pass_rate"). + in("measurement_point_id",collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + RMpPassRateQPO rMpPassRateQPO = rMpPassRateQMapper.selectOne(rMpPassRateQPOQueryWrapper); + rStatOrgQPO.setFreqPassRate(rMpPassRateQPO.getFreqPassRate()); + rStatOrgQPO.setFlickerPassRate(rMpPassRateQPO.getFlickerPassRate()); + rStatOrgQPO.setVDevPassRate(rMpPassRateQPO.getvDevPassRate()); + + + + /*11、日均监测到暂态指标的监测点数*/ + rMpEventDetailDPOQueryWrapper.clear(); + rMpEventDetailDPOQueryWrapper. + in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + String value3 = df.format((float)rMpEventDetailDPOS.size()/ days); + rStatOrgQPO.setEventMeasurementAverage(Double.valueOf(value3)); + /*12、累计监测到暂态指标的监测点数*/ + long count2 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + rStatOrgQPO.setEventMeasurementAccrued(Integer.valueOf(count2+"")); + /*13、日均暂态超标监测点数占比*/ + String value4 = df.format(rStatOrgQPO.getEventMeasurementAverage() / rStatOrgQPO.getAllCount()); + rStatOrgQPO.setEventMeasurementRatioAverage(Double.valueOf(value4)); + + /*15、暂态指标发生频次*/ + rStatOrgQPO.setEventCount(sum+sum1+sum2); + + /*14、暂态指标发生频次*/ + long count3 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + if(count3==0){ + rStatOrgQPO.setEventFreq(0.00); + + }else{ + String value5 = df.format((float)rStatOrgQPO.getEventCount() / count3); + + rStatOrgQPO.setEventFreq(Double.valueOf(value5)); + } + + + + + /*todo这个指标不重要,后续根据配置来*/ + /*17、告警监测点数*/ + rStatOrgQPO.setShouldCount(8); + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("distinct(measurement_point_id)"). + in("measurement_point_id",collect1). + eq("is_unusual",1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper); + rStatOrgQPO.setWarnCount(integer2); + + rStatOrgQPOList.add(rStatOrgQPO); + }); + + } + + }); + if (!CollectionUtils.isEmpty(rStatOrgQPOList)){ + rStatOrgQService.saveOrUpdateBatchByMultiId(rStatOrgQPOList,500); + } + + } + + + @Transactional(rollbackFor = {Exception.class}) + @Async("asyncExecutor") + @SneakyThrows + private void hanlderMonth(List data, String dataDate, Integer type) { + List rStatOrgMPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + /*获取当月天数求均值使用*/ + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); // 转换为LocalDate对象 + int days = localDate.lengthOfMonth(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rmpTargetWarnDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rMpEventDetailDPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper rMpPassRateMPOQueryWrapper = new QueryWrapper<>(); + + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){ + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + RStatOrgMPO rStatOrgMPO = new RStatOrgMPO(); + rStatOrgMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatOrgMPO.setDataDate(date); + rStatOrgMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatOrgMPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatOrgMPO.setAllCount(v.size()); + /*2、2、日均有效接入监测点数2、日均有效接入监测点数*/ + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + gt("effective_minute_count",0). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); + String value = df.format((float)rOperatingMonitorDPOS.size()/ days); + + rStatOrgMPO.setEffectiveMeasurementAverage(Double.parseDouble(value)); + /*3、3、累计有效接入监测点数*/ + long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); + rStatOrgMPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); + + /*4、日均稳态超标监测点数*/ + rmpTargetWarnDPOQueryWrapper.clear(); + rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + eq("is_harmonic",1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); + String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); + rStatOrgMPO.setHarmonicMeasurementAverage(Double.parseDouble(value1)); + + /* 5、累计稳态超标监测点数*/ + long count1 = rMpTargetWarnDPOS.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().count(); + + rStatOrgMPO.setHarmonicMeasurementAccrued(Integer.valueOf(count1+"")); + + /*6、日均稳态超标监测点数占比*/ + String value2 = df.format(rStatOrgMPO.getHarmonicMeasurementAccrued() / rStatOrgMPO.getAllCount()); + rStatOrgMPO.setHarmonicMeasurementRatioAverage(Double.parseDouble(value2)); + + /*7、累计超标天数*/ + rStatOrgMPO.setOverDayAccrued(rMpTargetWarnDPOS.size()); + /*8、频率偏差合格率,9、电压偏差合格率,10、闪变合格率*/ + rMpPassRateMPOQueryWrapper.clear(); + rMpPassRateMPOQueryWrapper.select("avg(freq_pass_rate) as freq_pass_rate","avg(v_dev_pass_rate) as v_dev_pass_rate","avg(flicker_pass_rate) as flicker_pass_rate"). + in("measurement_point_id",collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + RMpPassRateMPO rMpPassRateMPO = rMpPassRateMMapper.selectOne(rMpPassRateMPOQueryWrapper); + rStatOrgMPO.setFreqPassRate(rMpPassRateMPO.getFreqPassRate()); + rStatOrgMPO.setFlickerPassRate(rMpPassRateMPO.getFlickerPassRate()); + rStatOrgMPO.setVDevPassRate(rMpPassRateMPO.getvDevPassRate()); + + + + /*11、日均监测到暂态指标的监测点数*/ + rMpEventDetailDPOQueryWrapper.clear(); + rMpEventDetailDPOQueryWrapper. + in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + String value3 = df.format((float)rMpEventDetailDPOS.size()/ days); + rStatOrgMPO.setEventMeasurementAverage(Double.valueOf(value3)); + /*12、累计监测到暂态指标的监测点数*/ + long count2 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + rStatOrgMPO.setEventMeasurementAccrued(Integer.valueOf(count2+"")); + /*13、日均暂态超标监测点数占比*/ + String value4 = df.format(rStatOrgMPO.getEventMeasurementAverage() / rStatOrgMPO.getAllCount()); + rStatOrgMPO.setEventMeasurementRatioAverage(Double.valueOf(value4)); + + /*15、暂态指标发生频次*/ + rStatOrgMPO.setEventCount(sum+sum1+sum2); + + /*14、暂态指标发生频次*/ + long count3 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + if(count3==0){ + rStatOrgMPO.setEventFreq(0.00); + + }else { + String value5 = df.format((float)rStatOrgMPO.getEventCount() / count3); + + rStatOrgMPO.setEventFreq(Double.valueOf(value5)); + } + + + + + /*todo这个指标不重要,后续根据配置来*/ + /*17、告警监测点数*/ + rStatOrgMPO.setShouldCount(8); + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("distinct(measurement_point_id)"). + in("measurement_point_id",collect1). + eq("is_unusual",1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper); + rStatOrgMPO.setWarnCount(integer2); + rStatOrgMPOList.add(rStatOrgMPO); + }); + + } + /*配网*/ + if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v)->{ + + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + RStatOrgMPO rStatOrgMPO = new RStatOrgMPO(); + rStatOrgMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatOrgMPO.setDataDate(date); + rStatOrgMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()); + rStatOrgMPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap)); + rStatOrgMPO.setAllCount(v.size()); + /*2、2、日均有效接入监测点数2、日均有效接入监测点数*/ + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + gt("effective_minute_count",0). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); + String value = df.format((float)rOperatingMonitorDPOS.size()/ days); + + rStatOrgMPO.setEffectiveMeasurementAverage(Double.parseDouble(value)); + /*3、3、累计有效接入监测点数*/ + long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); + rStatOrgMPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); + + /*4、日均稳态超标监测点数*/ + rmpTargetWarnDPOQueryWrapper.clear(); + rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). + in("measurement_point_id",collect1). + eq("is_harmonic",1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); + String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); + rStatOrgMPO.setHarmonicMeasurementAverage(Double.parseDouble(value1)); + + /* 5、累计稳态超标监测点数*/ + long count1 = rMpTargetWarnDPOS.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().count(); + + rStatOrgMPO.setHarmonicMeasurementAccrued(Integer.valueOf(count1+"")); + + /*6、日均稳态超标监测点数占比*/ + String value2 = df.format(rStatOrgMPO.getHarmonicMeasurementAccrued() / rStatOrgMPO.getAllCount()); + rStatOrgMPO.setHarmonicMeasurementRatioAverage(Double.parseDouble(value2)); + + /*7、累计超标天数*/ + rStatOrgMPO.setOverDayAccrued(rMpTargetWarnDPOS.size()); + /*8、频率偏差合格率,9、电压偏差合格率,10、闪变合格率*/ + rMpPassRateMPOQueryWrapper.clear(); + rMpPassRateMPOQueryWrapper.select("avg(freq_pass_rate) as freq_pass_rate","avg(v_dev_pass_rate) as v_dev_pass_rate","avg(flicker_pass_rate) as flicker_pass_rate"). + in("measurement_point_id",collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + RMpPassRateMPO rMpPassRateMPO = rMpPassRateMMapper.selectOne(rMpPassRateMPOQueryWrapper); + rStatOrgMPO.setFreqPassRate(rMpPassRateMPO.getFreqPassRate()); + rStatOrgMPO.setFlickerPassRate(rMpPassRateMPO.getFlickerPassRate()); + rStatOrgMPO.setVDevPassRate(rMpPassRateMPO.getvDevPassRate()); + + + + /*11、日均监测到暂态指标的监测点数*/ + rMpEventDetailDPOQueryWrapper.clear(); + rMpEventDetailDPOQueryWrapper. + in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + String value3 = df.format((float)rMpEventDetailDPOS.size()/ days); + rStatOrgMPO.setEventMeasurementAverage(Double.valueOf(value3)); + /*12、累计监测到暂态指标的监测点数*/ + long count2 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + + rStatOrgMPO.setEventMeasurementAccrued(Integer.valueOf(count2+"")); + /*13、日均暂态超标监测点数占比*/ + String value4 = df.format(rStatOrgMPO.getEventMeasurementAverage() / rStatOrgMPO.getAllCount()); + rStatOrgMPO.setEventMeasurementRatioAverage(Double.valueOf(value4)); + + /*15、暂态指标发生频次*/ + rStatOrgMPO.setEventCount(sum+sum1+sum2); + + /*14、暂态指标发生频次*/ + long count3 = rMpEventDetailDPOS.stream().map(RMpEventDetailDPO::getMeasurementPointId).distinct().count(); + if(count3==0){ + rStatOrgMPO.setEventFreq(0.00); + + }else{ + String value5 = df.format((float)rStatOrgMPO.getEventCount() / count3); + + rStatOrgMPO.setEventFreq(Double.valueOf(value5)); + + } + + + + /*todo这个指标不重要,后续根据配置来*/ + /*17、告警监测点数*/ + rStatOrgMPO.setShouldCount(8); + rOperatingMonitorDPOQueryWrapper.clear(); + rOperatingMonitorDPOQueryWrapper.select("distinct(measurement_point_id)"). + in("measurement_point_id",collect1). + eq("is_unusual",1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper); + rStatOrgMPO.setWarnCount(integer2); + + rStatOrgMPOList.add(rStatOrgMPO); + }); + + } + + }); + if (!CollectionUtils.isEmpty(rStatOrgMPOList)){ + rStatOrgMService.saveOrUpdateBatchByMultiId(rStatOrgMPOList,500); + } + + } + @Transactional(rollbackFor = {Exception.class}) @Async("asyncExecutor") @SneakyThrows @@ -123,6 +963,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { rMpEventDetailDPOQueryWrapper.clear(); rMpEventDetailDPOQueryWrapper. in("measurement_point_id", collect1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); Integer eventCount =0; @@ -177,15 +1018,18 @@ public class RStatOrgServiceImpl implements RStatOrgService { rStatOrgDPO.setHarmonicMeasurement(integer1); /*4、发生暂态的监测点数,5、暂态指标发生次数*/ rMpEventDetailDPOQueryWrapper.clear(); - rMpEventDetailDPOQueryWrapper.select("measurement_point_id"). + rMpEventDetailDPOQueryWrapper. in("measurement_point_id", collect1). - in("measurement_point_id",collect1). - eq("is_harmonic",1). + and(i-> i.gt("swell_times",0).or().gt("sag_times",0).or().gt("interrupt_times",0)). eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); List rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper); - rStatOrgDPO.setEventCount(rMpEventDetailDPOS.size()); - long count = rMpEventDetailDPOS.stream().distinct().count(); - rStatOrgDPO.setEventMeasurement(Integer.valueOf(count+"")); + Integer eventCount =0; + int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum(); + int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum(); + int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum(); + + rStatOrgDPO.setEventCount(sum+sum1+sum2); + rStatOrgDPO.setEventMeasurement(rMpEventDetailDPOS.size()); /*todo这个指标不重要,后续根据配置来*/ rStatOrgDPO.setShouldCount(8); /*7、告警监测点数*/ @@ -208,6 +1052,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { } + private String getmeasurementType(Integer k, Map lineSortMap) { String value =""; switch (k) { diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgYPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgYPOServiceImpl.java new file mode 100644 index 000000000..dcdd4e082 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgYPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYPOMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO; +import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgYPOService; +/** + * + * Description: + * Date: 2023/6/7 8:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatOrgYPOServiceImpl extends MppServiceImpl implements RStatOrgYPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicMPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicMPOService.java new file mode 100644 index 000000000..51d9e18cc --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicMPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/6/7 16:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicMPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicQPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicQPOService.java new file mode 100644 index 000000000..9ed7ebc3b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicQPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicQPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicQPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicService.java index bd795fbec..9bfaab8db 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicService.java @@ -13,4 +13,5 @@ import java.util.List; */ public interface RStatHarmonicService { void handler(List data, String dataDate, Integer type); + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicVoltageDPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicVoltageDPOService.java new file mode 100644 index 000000000..a7cf87647 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicVoltageDPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/6/6 9:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicVoltageDPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicVoltageService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicVoltageService.java new file mode 100644 index 000000000..1f9775e4a --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicVoltageService.java @@ -0,0 +1,21 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; + +import java.util.List; + +/** +* +* Description: +* Date: 2023/6/6 9:10【需求编号】 +* +* @author clam +* @version V1.0.0 +*/ +public interface RStatHarmonicVoltageService { + + void handlerByPowerLevel(List data, String dataDate, Integer type); + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicYPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicYPOService.java new file mode 100644 index 000000000..277f708eb --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicYPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicYPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/6/7 16:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicYPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgQPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgQPOService.java new file mode 100644 index 000000000..c6e6cfab4 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgQPOService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; + +/** + * + * Description: + * Date: 2023/6/7 8:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatOrgQPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgYPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgYPOService.java new file mode 100644 index 000000000..037c05134 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgYPOService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO; + +/** + * + * Description: + * Date: 2023/6/7 8:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatOrgYPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java index 2b6d81dea..5ba00f37b 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatEventServiceImpl.java @@ -17,6 +17,8 @@ import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMMapper; import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO; import com.njcn.prepare.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; import com.njcn.system.api.DicDataFeignClient;