算法提交
This commit is contained in:
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicDPO {
|
|||||||
* 生成数据的时间,每日统计一次
|
* 生成数据的时间,每日统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测点类别ID、监测对象类型ID
|
* 监测点类别ID、监测对象类型ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicMPO {
|
|||||||
* 生成数据的时间,每月统计一次
|
* 生成数据的时间,每月统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测点类别ID、监测对象类型ID
|
* 监测点类别ID、监测对象类型ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicQPO {
|
|||||||
* 生成数据的时间,每季度统计一次
|
* 生成数据的时间,每季度统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测点类别ID、监测对象类型ID
|
* 监测点类别ID、监测对象类型ID
|
||||||
|
|||||||
@@ -1,68 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicVoltageDPO {
|
|||||||
* 生成数据的时间,每月统计一次
|
* 生成数据的时间,每月统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测对象类型ID
|
* 监测对象类型ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicVoltageMPO {
|
|||||||
* 生成数据的时间,每月统计一次
|
* 生成数据的时间,每月统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测对象类型ID
|
* 监测对象类型ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicYPO {
|
|||||||
* 生成数据的时间,每季度统计一次
|
* 生成数据的时间,每季度统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测点类别ID、监测对象类型ID
|
* 监测点类别ID、监测对象类型ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatLoadTypeDPO {
|
|||||||
* 生成数据的时间,每日统计一次
|
* 生成数据的时间,每日统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁),字典ID
|
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁),字典ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatLoadTypeMPO {
|
|||||||
* 生成数据的时间,每月统计一次
|
* 生成数据的时间,每月统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁)
|
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁)
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatLoadTypeQPO {
|
|||||||
* 生成数据的时间,每季统计一次
|
* 生成数据的时间,每季统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁)
|
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁)
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatLoadTypeYPO {
|
|||||||
* 生成数据的时间,每年统计一次
|
* 生成数据的时间,每年统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁)
|
* 四类典型干扰源类型(风电、光伏、其他非线性负荷、电铁)
|
||||||
|
|||||||
@@ -1,132 +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.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 区域告警统计(月)
|
|
||||||
* @TableName r_stat_area_alarm_count_m
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName("r_stat_area_alarm_count_m")
|
|
||||||
public class RStatAreaAlarmCountM {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 单位ID
|
|
||||||
*/
|
|
||||||
@MppMultiId(value = "org_no")
|
|
||||||
private String orgNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成数据的时间,每月统计一次
|
|
||||||
*/
|
|
||||||
@MppMultiId(value = "data_date")
|
|
||||||
private Date dataDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据类型(0:主网 1:配网)
|
|
||||||
*/
|
|
||||||
@MppMultiId(value = "data_type")
|
|
||||||
private String dataType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 电压偏差告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "vdev_alarm_info")
|
|
||||||
private Integer vdevAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 电压偏差告警超标占比
|
|
||||||
*/
|
|
||||||
@TableField(value = "vdev_alarm_ratio")
|
|
||||||
private Float vdevAlarmRatio;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 频率偏差告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "freq_alarm_info")
|
|
||||||
private Integer freqAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 频率偏差告警超标占比
|
|
||||||
*/
|
|
||||||
@TableField(value = "freq_alarm_ratio")
|
|
||||||
private Float freqAlarmRatio;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 三相电压不平衡度告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "unbalance_alarm_info")
|
|
||||||
private Integer unbalanceAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 三相电压不平衡度告警超标占比
|
|
||||||
*/
|
|
||||||
@TableField(value = "unbalance_alarm_ratio")
|
|
||||||
private Float unbalanceAlarmRatio;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 谐波电压告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "v_alarm_info")
|
|
||||||
private Integer vAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 谐波电压告警超标占比
|
|
||||||
*/
|
|
||||||
@TableField(value = "v_alarm_ratio")
|
|
||||||
private Float vAlarmRatio;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 闪变告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "flicker_alarm_info")
|
|
||||||
private Integer flickerAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 闪变告警超标占比
|
|
||||||
*/
|
|
||||||
@TableField(value = "flicker_alarm_ratio")
|
|
||||||
private Float flickerAlarmRatio;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 电压暂降告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "sag_alarm_info")
|
|
||||||
private Integer sagAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 电压暂降告警平均发生次数
|
|
||||||
*/
|
|
||||||
@TableField(value = "sag_alarm_avg_count")
|
|
||||||
private Integer sagAlarmAvgCount;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 短时中断告警情况(0:否 1:是)
|
|
||||||
*/
|
|
||||||
@TableField(value = "interrupt_alarm_info")
|
|
||||||
private Integer interruptAlarmInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 短时中断告警平均发生次数
|
|
||||||
*/
|
|
||||||
@TableField(value = "interrupt_alarm_avg_count")
|
|
||||||
private Integer interruptAlarmAvgCount;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 稳态指标评级结果(0 较差 1中等 2较好)
|
|
||||||
*/
|
|
||||||
@TableField(value = "harmonic_type_grade")
|
|
||||||
private Integer harmonicTypeGrade;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 暂态指标评级结果(0 较差 1中等 2较好)
|
|
||||||
*/
|
|
||||||
@TableField(value = "event_type_grade")
|
|
||||||
private Integer eventTypeGrade;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
|||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,7 +26,7 @@ public class RStatAreaAlarmCountMPO {
|
|||||||
* 生成数据的时间,每月统计一次
|
* 生成数据的时间,每月统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据类型(0:主网 1:配网)
|
* 数据类型(0:主网 1:配网)
|
||||||
@@ -128,9 +129,9 @@ public class RStatAreaAlarmCountMPO {
|
|||||||
*/
|
*/
|
||||||
@TableField(value = "event_type_grade")
|
@TableField(value = "event_type_grade")
|
||||||
private Integer eventTypeGrade;
|
private Integer eventTypeGrade;
|
||||||
|
@TableField(exist = false)
|
||||||
private Float wtCount;
|
private Float wtCount;
|
||||||
|
@TableField(exist = false)
|
||||||
private Float ztCount;
|
private Float ztCount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicOrgDPO {
|
|||||||
* 生成数据的时间,每日统计一次
|
* 生成数据的时间,每日统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型Id,字典表ID
|
* 稳态指标类型Id,字典表ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicOrgMPO {
|
|||||||
* 生成数据的时间,每月统计一次
|
* 生成数据的时间,每月统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型Id,字典表ID
|
* 稳态指标类型Id,字典表ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicOrgQPO {
|
|||||||
* 生成数据的时间,每季度统计一次
|
* 生成数据的时间,每季度统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型Id,字典表ID
|
* 稳态指标类型Id,字典表ID
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
@@ -30,7 +32,7 @@ public class RStatHarmonicOrgYPO {
|
|||||||
* 生成数据的时间,每年统计一次
|
* 生成数据的时间,每年统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型Id,字典表ID
|
* 稳态指标类型Id,字典表ID
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +27,7 @@ public class RStatPwAlarmCountWPO {
|
|||||||
* 生成数据的时间,每周统计一次
|
* 生成数据的时间,每周统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线监测点数
|
* 在线监测点数
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +27,7 @@ public class RStatZwAlarmCountWPO {
|
|||||||
* 生成数据的时间,每周统计一次
|
* 生成数据的时间,每周统计一次
|
||||||
*/
|
*/
|
||||||
@MppMultiId(value = "data_date")
|
@MppMultiId(value = "data_date")
|
||||||
private Date dataDate;
|
private LocalDate dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 有效监测点数量
|
* 有效监测点数量
|
||||||
|
|||||||
@@ -2,9 +2,13 @@ package com.njcn.prepare.executor;
|
|||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.ROperatingIndexService;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||||
import com.yomahub.liteflow.annotation.LiteflowMethod;
|
import com.yomahub.liteflow.annotation.LiteflowMethod;
|
||||||
import com.yomahub.liteflow.core.NodeComponent;
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
@@ -28,6 +32,16 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
|
|
||||||
private final PollutionService pollutionService;
|
private final PollutionService pollutionService;
|
||||||
|
|
||||||
|
private final RStatHarmonicService rStatHarmonicService;
|
||||||
|
private final RStatHarmonicVoltageService rStatHarmonicVoltageService;
|
||||||
|
private final RStatHarmonicOrgService rstatHarmonicOrgService;
|
||||||
|
private final RStatEventService rStatEventDService;
|
||||||
|
private final RStatEventVoltageService rStatEventVoltageService;
|
||||||
|
private final RStatEventOrgService rStatEventOrgService;
|
||||||
|
private final RStatLoadTypeService rStatLoadTypeService;
|
||||||
|
|
||||||
|
private final RAlarmCountService rAlarmCountService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -132,4 +146,263 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 3.4.4. 单位监测点稳态指标统计-监测点类别(对象类型)
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatHarmonic", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatHarmonicAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatHarmonic", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatHarmonicProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_harmonic_d")) {
|
||||||
|
//日表
|
||||||
|
rStatHarmonicService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_harmonic_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rStatHarmonicService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_harmonic_q")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//季表
|
||||||
|
rStatHarmonicService.handleQtr(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_harmonic_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
rStatHarmonicService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 3.4.5. 单位监测点稳态指标统计-电压等级
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatHarmonicVoltage", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatHarmonicVoltageAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatHarmonicVoltage", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatHarmonicVoltageProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_harmonic_voltage_d")) {
|
||||||
|
//日表
|
||||||
|
rStatHarmonicVoltageService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_harmonic_voltage_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rStatHarmonicVoltageService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 3.4.4. 单位监测点稳态指标统计-监测点类别(对象类型)
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatHarmonicOrg", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatHarmonicOrgAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatHarmonicOrg", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatHarmonicOrgProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_harmonic_org_d")) {
|
||||||
|
//日表
|
||||||
|
rstatHarmonicOrgService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_harmonic_org_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rstatHarmonicOrgService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_harmonic_org_q")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//季表
|
||||||
|
rstatHarmonicOrgService.handleQtr(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_harmonic_org_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
rstatHarmonicOrgService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.4.6. 单位监测点暂态指标统计-监测点类别(对象类型)
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatEvent", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatEventAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatEvent", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatEventProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_event_d")) {
|
||||||
|
//日表
|
||||||
|
rStatEventDService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_event_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rStatEventDService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_event_q")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//季表
|
||||||
|
rStatEventDService.handleQtr(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_event_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
rStatEventDService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.4.7. 单位监测点暂态指标统计-电压等级
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatEventVoltage", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatEventVoltageAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatEventVoltage", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatEventVoltageProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_event_voltage_d")) {
|
||||||
|
//日表
|
||||||
|
rStatEventVoltageService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_event_voltage_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rStatEventVoltageService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.4.9. 单位暂态指标数据统计
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatEventOrg", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatEventOrgAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatEventOrg", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatEventOrgProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_event_org_d")) {
|
||||||
|
//日表
|
||||||
|
rStatEventOrgService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_event_org_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rStatEventOrgService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_event_org_q")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//季表
|
||||||
|
rStatEventOrgService.handleQtr(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_event_org_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
rStatEventOrgService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.4.12. 单位干扰源电流类指标超标统计
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatEventLoadType", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatEventLoadTypeAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatEventLoadType", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatEventLoadTypeProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_load_type_d")) {
|
||||||
|
//日表
|
||||||
|
rStatLoadTypeService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_load_type_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rStatLoadTypeService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_load_type_q")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//季表
|
||||||
|
rStatLoadTypeService.handleQtr(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_stat_load_type_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
rStatLoadTypeService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*3.4.14. 单位指标告警统计
|
||||||
|
*/
|
||||||
|
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatAlarmCount", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRStatAlarmCountAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatAlarmCount", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRStatAlarmCountProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_stat_alarm_count_w")) {
|
||||||
|
//周表
|
||||||
|
rAlarmCountService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_stat_area_alarm_count_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rAlarmCountService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="listAll" resultType="com.njcn.prepare.harmonic.pojo.po.RStatOrgDVO">
|
<select id="listAll" resultType="com.njcn.prepare.harmonic.pojo.po.RStatOrgDVO">
|
||||||
select org_no "orgNo",data_type"dataType",effective_measurement"effectiveMeasurement"
|
select org_no "orgNo",data_type"dataType",IFNULL(effective_measurement,0)"effectiveMeasurement"
|
||||||
from r_stat_org_d
|
from r_stat_org_d
|
||||||
where date_format(data_date, '%y%m%d') = date_format(#{date}, '%y%m%d')
|
where date_format(data_date, '%y%m%d') = date_format(#{date}, '%y%m%d')
|
||||||
and org_no = #{orgId}
|
and org_no = #{orgId}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
|
package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountM;
|
|
||||||
|
|
||||||
|
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountMPO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,5 +14,5 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface RStatAreaAlarmCountMPOMapper extends MppBaseMapper<RStatAreaAlarmCountM> {
|
public interface RStatAreaAlarmCountMPOMapper extends MppBaseMapper<RStatAreaAlarmCountMPO> {
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,20 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.*;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.*;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
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.RStatHarmonicMPO;
|
||||||
|
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgYPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.*;
|
import com.njcn.prepare.harmonic.pojo.po.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService;
|
||||||
@@ -30,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -50,6 +58,11 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
private final DeptFeignClient deptFeignClient;
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
|
||||||
private final RStatOrgDMapper rStatOrgDMapper;
|
private final RStatOrgDMapper rStatOrgDMapper;
|
||||||
|
private final RStatOrgQMapper rStatOrgQMapper;
|
||||||
|
private final RStatOrgYMapper rStatOrgYMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final RStatHarmonicDPOMapper rStatHarmonicDPOMapper;
|
private final RStatHarmonicDPOMapper rStatHarmonicDPOMapper;
|
||||||
private final RStatHarmonicOrgDPOService rStatHarmonicDPOService;
|
private final RStatHarmonicOrgDPOService rStatHarmonicDPOService;
|
||||||
|
|
||||||
@@ -64,6 +77,361 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicOrgDPO> rStatHarmonicOrgDPOList = new ArrayList<>();
|
||||||
|
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicDPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().stream().forEach(temp->{
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
List<RStatOrgDVO> rStatOrgDVOS = rStatOrgDMapper.listAll( LocalDateTimeUtil.format(localDate,DatePattern.NORM_DATE_PATTERN), temp.getUnitId());
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgDVOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgDVOS.stream().mapToInt(RStatOrgDVO::getEffectiveMeasurement).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.select("over_limit_measurement").
|
||||||
|
eq("org_no",temp.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("harmonic_type",dictData.getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RStatHarmonicDPO> rStatHarmonicDPOList = rStatHarmonicDPOMapper.selectList(queryWrapper);
|
||||||
|
int sumOverLimitMeasurement =0;
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(rStatHarmonicDPOList)){
|
||||||
|
sumOverLimitMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumOverLimitMeasurement = rStatHarmonicDPOList.stream().mapToInt(RStatHarmonicDPO::getOverLimitMeasurement).sum();
|
||||||
|
}
|
||||||
|
RStatHarmonicOrgDPO rStatHarmonicOrgDPO = new RStatHarmonicOrgDPO();
|
||||||
|
rStatHarmonicOrgDPO.setOrgNo(temp.getUnitId());
|
||||||
|
rStatHarmonicOrgDPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicOrgDPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicOrgDPO.setDataType(v.getId());
|
||||||
|
rStatHarmonicOrgDPO.setOverLimitMeasurementAverage(sumOverLimitMeasurement);
|
||||||
|
if(finalSumEffectiveMeasurement ==0){
|
||||||
|
rStatHarmonicOrgDPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
}else {
|
||||||
|
rStatHarmonicOrgDPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(df.format((float)sumOverLimitMeasurement / finalSumEffectiveMeasurement)));
|
||||||
|
}
|
||||||
|
rStatHarmonicOrgDPOList.add(rStatHarmonicOrgDPO);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicOrgDPOList)){
|
||||||
|
rStatHarmonicDPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgDPOList,500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicOrgMPO> rStatHarmonicOrgMPOList = new ArrayList<>();
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().stream().forEach(temp->{
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no",temp.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgMPO> rStatOrgMPOS = rStatOrgMMapper.selectList(rStatOrgMPOQueryWrapper);
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgMPOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(RStatOrgMPO::getEffectiveMeasurementAccrued).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("org_no",temp.getUnitId()).
|
||||||
|
eq("harmonic_type",dictData.getId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper);
|
||||||
|
Double overLimitMeasurementAverage =0.00;
|
||||||
|
int overDay =0;
|
||||||
|
int overLimitMeasurementAccrued=0;
|
||||||
|
Double overLimitMeasurementRatioAverage=0.00;
|
||||||
|
Double overLimitMeasurementRatioAccrued=0.00;
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){
|
||||||
|
|
||||||
|
overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum();
|
||||||
|
double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble));
|
||||||
|
double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
|
||||||
|
overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1));
|
||||||
|
if(finalSumEffectiveMeasurement ==0){
|
||||||
|
overLimitMeasurementRatioAccrued=0.00;
|
||||||
|
}else {
|
||||||
|
overLimitMeasurementRatioAccrued=Double.parseDouble(df.format((float)overLimitMeasurementAccrued / finalSumEffectiveMeasurement));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RStatHarmonicOrgMPO rStatHarmonicOrgMPO = new RStatHarmonicOrgMPO();
|
||||||
|
rStatHarmonicOrgMPO.setOrgNo(temp.getUnitId());
|
||||||
|
rStatHarmonicOrgMPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicOrgMPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicOrgMPO.setDataType(v.getId());
|
||||||
|
rStatHarmonicOrgMPO.setOverDay(overDay);
|
||||||
|
rStatHarmonicOrgMPO.setOverLimitMeasurementAccrued(overLimitMeasurementAccrued);
|
||||||
|
rStatHarmonicOrgMPO.setOverLimitMeasurementAverage(overLimitMeasurementAverage);
|
||||||
|
rStatHarmonicOrgMPO.setOverLimitMeasurementRatioAccrued(overLimitMeasurementRatioAccrued);
|
||||||
|
rStatHarmonicOrgMPO.setOverLimitMeasurementRatioAverage(overLimitMeasurementRatioAverage);
|
||||||
|
|
||||||
|
rStatHarmonicOrgMPOList.add(rStatHarmonicOrgMPO);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicOrgMPOList)){
|
||||||
|
rStatHarmonicMPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgMPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicOrgQPO> rStatHarmonicOrgQPOList = new ArrayList<>();
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().stream().forEach(temp->{
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no",temp.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
|
||||||
|
List<RStatOrgQPO> rStatOrgQPOS = rStatOrgQMapper.selectList(rStatOrgQPOQueryWrapper);
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgQPOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgQPOS.stream().mapToInt(RStatOrgQPO::getEffectiveMeasurementAccrued).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("org_no",temp.getUnitId()).
|
||||||
|
eq("harmonic_type",dictData.getId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper);
|
||||||
|
Double overLimitMeasurementAverage =0.00;
|
||||||
|
int overDay =0;
|
||||||
|
int overLimitMeasurementAccrued=0;
|
||||||
|
Double averageOverDay =0.00;
|
||||||
|
Double overLimitMeasurementRatioAverage=0.00;
|
||||||
|
Double overLimitMeasurementRatioAccrued=0.00;
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){
|
||||||
|
|
||||||
|
overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum();
|
||||||
|
double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble));
|
||||||
|
double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
|
||||||
|
overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1));
|
||||||
|
if(finalSumEffectiveMeasurement ==0){
|
||||||
|
overLimitMeasurementRatioAccrued=0.00;
|
||||||
|
}else {
|
||||||
|
overLimitMeasurementRatioAccrued=Double.parseDouble(df.format((float)overLimitMeasurementAccrued / finalSumEffectiveMeasurement));
|
||||||
|
}
|
||||||
|
if(!(overLimitMeasurementAccrued==0)){
|
||||||
|
averageOverDay = Double.parseDouble(df.format((float)overDay / overLimitMeasurementAccrued));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RStatHarmonicOrgQPO rStatHarmonicOrgQPO = new RStatHarmonicOrgQPO();
|
||||||
|
rStatHarmonicOrgQPO.setOrgNo(temp.getUnitId());
|
||||||
|
rStatHarmonicOrgQPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicOrgQPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicOrgQPO.setDataType(v.getId());
|
||||||
|
rStatHarmonicOrgQPO.setAverageOverDay(averageOverDay);
|
||||||
|
rStatHarmonicOrgQPO.setOverLimitMeasurementAccrued(overLimitMeasurementAccrued);
|
||||||
|
rStatHarmonicOrgQPO.setOverLimitMeasurementAverage(overLimitMeasurementAverage);
|
||||||
|
rStatHarmonicOrgQPO.setOverLimitMeasurementRatioAccrued(overLimitMeasurementRatioAccrued);
|
||||||
|
rStatHarmonicOrgQPO.setOverLimitMeasurementRatioAverage(overLimitMeasurementRatioAverage);
|
||||||
|
|
||||||
|
rStatHarmonicOrgQPOList.add(rStatHarmonicOrgQPO);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicOrgQPOList)){
|
||||||
|
rStatHarmonicQPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgQPOList,500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
List<RStatHarmonicOrgYPO> rStatHarmonicOrgYPOList = new ArrayList<>();
|
||||||
|
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().stream().forEach(temp->{
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no",temp.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
|
||||||
|
|
||||||
|
List<RStatOrgYPO> rStatOrgYPOS = rStatOrgYMapper.selectList(rStatOrgYPOQueryWrapper);
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgYPOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgYPOS.stream().mapToInt(RStatOrgYPO::getEffectiveMeasurementAccrued).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("org_no",temp.getUnitId()).
|
||||||
|
eq("harmonic_type",dictData.getId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper);
|
||||||
|
Double overLimitMeasurementAverage =0.00;
|
||||||
|
int overDay =0;
|
||||||
|
int overLimitMeasurementAccrued=0;
|
||||||
|
Double averageOverDay =0.00;
|
||||||
|
Double overLimitMeasurementRatioAverage=0.00;
|
||||||
|
Double overLimitMeasurementRatioAccrued=0.00;
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){
|
||||||
|
|
||||||
|
overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum();
|
||||||
|
double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble));
|
||||||
|
double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
|
||||||
|
overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1));
|
||||||
|
if(finalSumEffectiveMeasurement ==0){
|
||||||
|
overLimitMeasurementRatioAccrued=0.00;
|
||||||
|
}else {
|
||||||
|
overLimitMeasurementRatioAccrued=Double.parseDouble(df.format((float)overLimitMeasurementAccrued / finalSumEffectiveMeasurement));
|
||||||
|
}
|
||||||
|
if(!(overLimitMeasurementAccrued==0)){
|
||||||
|
averageOverDay = Double.parseDouble(df.format((float)overDay / overLimitMeasurementAccrued));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RStatHarmonicOrgYPO rStatHarmonicOrgYPO = new RStatHarmonicOrgYPO();
|
||||||
|
rStatHarmonicOrgYPO.setOrgNo(temp.getUnitId());
|
||||||
|
rStatHarmonicOrgYPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicOrgYPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicOrgYPO.setDataType(v.getId());
|
||||||
|
rStatHarmonicOrgYPO.setAverageOverDay(averageOverDay);
|
||||||
|
rStatHarmonicOrgYPO.setOverLimitMeasurementAccrued(overLimitMeasurementAccrued);
|
||||||
|
rStatHarmonicOrgYPO.setOverLimitMeasurementAverage(overLimitMeasurementAverage);
|
||||||
|
rStatHarmonicOrgYPO.setOverLimitMeasurementRatioAccrued(overLimitMeasurementRatioAccrued);
|
||||||
|
rStatHarmonicOrgYPO.setOverLimitMeasurementRatioAverage(overLimitMeasurementRatioAverage);
|
||||||
|
|
||||||
|
rStatHarmonicOrgYPOList.add(rStatHarmonicOrgYPO);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicOrgYPOList)){
|
||||||
|
rStatHarmonicYPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgYPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/**------------------------------------------------------------------------------------------------------------**/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handler(OrgParam orgParam) {
|
public void handler(OrgParam orgParam) {
|
||||||
switch (orgParam.getType()) {
|
switch (orgParam.getType()) {
|
||||||
@@ -83,6 +451,8 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@@ -90,6 +460,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
List<RStatHarmonicOrgYPO> rStatHarmonicOrgYPOList = new ArrayList<>();
|
List<RStatHarmonicOrgYPO> rStatHarmonicOrgYPOList = new ArrayList<>();
|
||||||
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
Date date = DateUtil.parse(orgParam.getDataDate());
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(orgParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -157,7 +528,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicOrgYPO rStatHarmonicOrgYPO = new RStatHarmonicOrgYPO();
|
RStatHarmonicOrgYPO rStatHarmonicOrgYPO = new RStatHarmonicOrgYPO();
|
||||||
rStatHarmonicOrgYPO.setOrgNo(temp);
|
rStatHarmonicOrgYPO.setOrgNo(temp);
|
||||||
rStatHarmonicOrgYPO.setDataDate(date);
|
rStatHarmonicOrgYPO.setDataDate(localDate);
|
||||||
rStatHarmonicOrgYPO.setHarmonicType(dictData.getId());
|
rStatHarmonicOrgYPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicOrgYPO.setDataType(v.getId());
|
rStatHarmonicOrgYPO.setDataType(v.getId());
|
||||||
rStatHarmonicOrgYPO.setAverageOverDay(averageOverDay);
|
rStatHarmonicOrgYPO.setAverageOverDay(averageOverDay);
|
||||||
@@ -186,6 +557,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
List<RStatHarmonicOrgQPO> rStatHarmonicOrgQPOList = new ArrayList<>();
|
List<RStatHarmonicOrgQPO> rStatHarmonicOrgQPOList = new ArrayList<>();
|
||||||
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
Date date = DateUtil.parse(orgParam.getDataDate());
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(orgParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -252,7 +624,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicOrgQPO rStatHarmonicOrgQPO = new RStatHarmonicOrgQPO();
|
RStatHarmonicOrgQPO rStatHarmonicOrgQPO = new RStatHarmonicOrgQPO();
|
||||||
rStatHarmonicOrgQPO.setOrgNo(temp);
|
rStatHarmonicOrgQPO.setOrgNo(temp);
|
||||||
rStatHarmonicOrgQPO.setDataDate(date);
|
rStatHarmonicOrgQPO.setDataDate(localDate);
|
||||||
rStatHarmonicOrgQPO.setHarmonicType(dictData.getId());
|
rStatHarmonicOrgQPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicOrgQPO.setDataType(v.getId());
|
rStatHarmonicOrgQPO.setDataType(v.getId());
|
||||||
rStatHarmonicOrgQPO.setAverageOverDay(averageOverDay);
|
rStatHarmonicOrgQPO.setAverageOverDay(averageOverDay);
|
||||||
@@ -280,6 +652,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
List<RStatHarmonicOrgMPO> rStatHarmonicOrgMPOList = new ArrayList<>();
|
List<RStatHarmonicOrgMPO> rStatHarmonicOrgMPOList = new ArrayList<>();
|
||||||
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
Date date = DateUtil.parse(orgParam.getDataDate());
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(orgParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -341,7 +714,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicOrgMPO rStatHarmonicOrgMPO = new RStatHarmonicOrgMPO();
|
RStatHarmonicOrgMPO rStatHarmonicOrgMPO = new RStatHarmonicOrgMPO();
|
||||||
rStatHarmonicOrgMPO.setOrgNo(temp);
|
rStatHarmonicOrgMPO.setOrgNo(temp);
|
||||||
rStatHarmonicOrgMPO.setDataDate(date);
|
rStatHarmonicOrgMPO.setDataDate(localDate);
|
||||||
rStatHarmonicOrgMPO.setHarmonicType(dictData.getId());
|
rStatHarmonicOrgMPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicOrgMPO.setDataType(v.getId());
|
rStatHarmonicOrgMPO.setDataType(v.getId());
|
||||||
rStatHarmonicOrgMPO.setOverDay(overDay);
|
rStatHarmonicOrgMPO.setOverDay(overDay);
|
||||||
@@ -370,6 +743,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
List<RStatHarmonicOrgDPO> rStatHarmonicOrgDPOList = new ArrayList<>();
|
List<RStatHarmonicOrgDPO> rStatHarmonicOrgDPOList = new ArrayList<>();
|
||||||
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
Date date = DateUtil.parse(orgParam.getDataDate());
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(orgParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RStatHarmonicDPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicDPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
@@ -413,7 +787,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicOrgDPO rStatHarmonicOrgDPO = new RStatHarmonicOrgDPO();
|
RStatHarmonicOrgDPO rStatHarmonicOrgDPO = new RStatHarmonicOrgDPO();
|
||||||
rStatHarmonicOrgDPO.setOrgNo(temp);
|
rStatHarmonicOrgDPO.setOrgNo(temp);
|
||||||
rStatHarmonicOrgDPO.setDataDate(date);
|
rStatHarmonicOrgDPO.setDataDate(localDate);
|
||||||
rStatHarmonicOrgDPO.setHarmonicType(dictData.getId());
|
rStatHarmonicOrgDPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicOrgDPO.setDataType(v.getId());
|
rStatHarmonicOrgDPO.setDataType(v.getId());
|
||||||
rStatHarmonicOrgDPO.setOverLimitMeasurementAverage(sumOverLimitMeasurement);
|
rStatHarmonicOrgDPO.setOverLimitMeasurementAverage(sumOverLimitMeasurement);
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.device.pms.pojo.po.RStatOrgPO;
|
import com.njcn.device.pms.pojo.po.RStatOrgPO;
|
||||||
import com.njcn.harmonic.pojo.po.*;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.area.RStatOrgMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
||||||
@@ -35,6 +39,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -73,6 +78,743 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
private final
|
private final
|
||||||
DicDataFeignClient dicDataFeignClient;
|
DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicDPO> rStatHarmonicDPOList = new ArrayList<>();
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v)->{
|
||||||
|
List<String> collect1 = v.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",collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class",k).
|
||||||
|
eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if(Objects.equals(dictData.getCode(),DicDataEnum.TOTAL_INDICATOR.getCode())){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
||||||
|
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicDPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicDPO.setMeasurementTypeClass(k);
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurement(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(0.00);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
String value = df.format((float)rStatHarmonicDPO.getOverLimitMeasurement() / rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicDPOList.add(rStatHarmonicDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> pwMonitorMap = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
pwMonitorMap.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.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", collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker", "is_inuharm").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> 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.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.NEG_CURRENT.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
||||||
|
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicDPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicDPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurement(getSteadyStatisData(dictData, rMpPartHarmonicDetailDS, rMpSurplusHarmonicDetailDS));
|
||||||
|
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatHarmonicDPO.getOverLimitMeasurement() / rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicDPOList.add(rStatHarmonicDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicDPOList)){
|
||||||
|
rStatHarmonicDPOService.saveOrUpdateBatchByMultiId(rStatHarmonicDPOList,500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicMPO> rStatHarmonicMPOList = new ArrayList<>();
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicDPO> harmonicDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
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(localDate);
|
||||||
|
rStatHarmonicMPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicMPO.setMeasurementTypeClass(k);
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicMPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicDPOQueryWrapper.clear();
|
||||||
|
harmonicDPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("harmonic_type", dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicDPO> 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<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
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(localDate);
|
||||||
|
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()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicDPO> 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicQPO> rStatHarmonicQPOList = new ArrayList<>();
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicMPO> harmonicMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgQPO rStatOrgQPO = rStatOrgQMapper.selectOne(rStatOrgQPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO();
|
||||||
|
rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicQPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicQPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicQPO.setMeasurementTypeClass(k);
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicMPOQueryWrapper.clear();
|
||||||
|
harmonicMPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("harmonic_type", dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper);
|
||||||
|
double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementAverage(asDouble);
|
||||||
|
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementRatioAverage(asDouble1);
|
||||||
|
|
||||||
|
|
||||||
|
if (rStatHarmonicQPO.getOverLimitMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicQPO.setAverageOverDay(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) sum1 / rStatHarmonicQPO.getOverLimitMeasurementAccrued());
|
||||||
|
rStatHarmonicQPO.setAverageOverDay(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) rStatHarmonicQPO.getOverLimitMeasurementAccrued() / rStatOrgQPO.getEffectiveMeasurementAccrued());
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicQPOList.add(rStatHarmonicQPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgQPO rStatOrgQPO = rStatOrgQMapper.selectOne(rStatOrgQPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO();
|
||||||
|
rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicQPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicQPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicQPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicMPOQueryWrapper.clear();
|
||||||
|
harmonicMPOQueryWrapper.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()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper);
|
||||||
|
double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementAverage(asDouble);
|
||||||
|
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementRatioAverage(asDouble1);
|
||||||
|
|
||||||
|
|
||||||
|
if (rStatHarmonicQPO.getOverLimitMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicQPO.setAverageOverDay(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) sum1 / rStatHarmonicQPO.getOverLimitMeasurementAccrued());
|
||||||
|
rStatHarmonicQPO.setAverageOverDay(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) rStatHarmonicQPO.getOverLimitMeasurementAccrued() / rStatOrgQPO.getEffectiveMeasurementAccrued());
|
||||||
|
rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicQPOList.add(rStatHarmonicQPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(rStatHarmonicQPOList)){
|
||||||
|
rStatHarmonicQPOService.saveOrUpdateBatchByMultiId(rStatHarmonicQPOList,500);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicYPO> rStatHarmonicYPOList = new ArrayList<>();
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicMPO> harmonicMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO();
|
||||||
|
rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicYPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicYPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicYPO.setMeasurementTypeClass(k);
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicMPOQueryWrapper.clear();
|
||||||
|
harmonicMPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("harmonic_type", dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper);
|
||||||
|
double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementAverage(asDouble);
|
||||||
|
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementRatioAverage(asDouble1);
|
||||||
|
|
||||||
|
|
||||||
|
if (rStatHarmonicYPO.getOverLimitMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicYPO.setAverageOverDay(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) sum1 / rStatHarmonicYPO.getOverLimitMeasurementAccrued());
|
||||||
|
rStatHarmonicYPO.setAverageOverDay(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) rStatHarmonicYPO.getOverLimitMeasurementAccrued() / rStatOrgYPO.getEffectiveMeasurementAccrued());
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicYPOList.add(rStatHarmonicYPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO();
|
||||||
|
rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicYPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicYPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicMPOQueryWrapper.clear();
|
||||||
|
harmonicMPOQueryWrapper.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()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper);
|
||||||
|
double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum();
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementAverage(asDouble);
|
||||||
|
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementRatioAverage(asDouble1);
|
||||||
|
|
||||||
|
|
||||||
|
if (rStatHarmonicYPO.getOverLimitMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicYPO.setAverageOverDay(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) sum1 / rStatHarmonicYPO.getOverLimitMeasurementAccrued());
|
||||||
|
rStatHarmonicYPO.setAverageOverDay(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) rStatHarmonicYPO.getOverLimitMeasurementAccrued() / rStatOrgYPO.getEffectiveMeasurementAccrued());
|
||||||
|
rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicYPOList.add(rStatHarmonicYPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(rStatHarmonicYPOList)){
|
||||||
|
rStatHarmonicYPOService.saveOrUpdateBatchByMultiId(rStatHarmonicYPOList,500);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/***----------------------------------------------------------------------------------------------**/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -92,12 +834,17 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
private void hanlderOracleYear(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
private void hanlderOracleYear(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatHarmonicYPO> rStatHarmonicYPOList = new ArrayList<>();
|
List<RStatHarmonicYPO> rStatHarmonicYPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
|
/*获取监测点类型类型*/
|
||||||
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -156,7 +903,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO();
|
RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO();
|
||||||
rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicYPO.setDataDate(date);
|
rStatHarmonicYPO.setDataDate(localDate);
|
||||||
rStatHarmonicYPO.setHarmonicType(dictData.getId());
|
rStatHarmonicYPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicYPO.setMeasurementTypeClass(k);
|
rStatHarmonicYPO.setMeasurementTypeClass(k);
|
||||||
@@ -239,7 +986,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO();
|
RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO();
|
||||||
rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicYPO.setDataDate(date);
|
rStatHarmonicYPO.setDataDate(localDate);
|
||||||
rStatHarmonicYPO.setHarmonicType(dictData.getId());
|
rStatHarmonicYPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
rStatHarmonicYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
@@ -300,6 +1047,8 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
private void hanlderOracleQtr(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
private void hanlderOracleQtr(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatHarmonicQPO> rStatHarmonicQPOList = new ArrayList<>();
|
List<RStatHarmonicQPO> rStatHarmonicQPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -357,7 +1106,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO();
|
RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO();
|
||||||
rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicQPO.setDataDate(date);
|
rStatHarmonicQPO.setDataDate(localDate);
|
||||||
rStatHarmonicQPO.setHarmonicType(dictData.getId());
|
rStatHarmonicQPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicQPO.setMeasurementTypeClass(k);
|
rStatHarmonicQPO.setMeasurementTypeClass(k);
|
||||||
@@ -440,7 +1189,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO();
|
RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO();
|
||||||
rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicQPO.setDataDate(date);
|
rStatHarmonicQPO.setDataDate(localDate);
|
||||||
rStatHarmonicQPO.setHarmonicType(dictData.getId());
|
rStatHarmonicQPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicQPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
rStatHarmonicQPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
@@ -502,6 +1251,8 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
|
|
||||||
List<RStatHarmonicMPO> rStatHarmonicMPOList = new ArrayList<>();
|
List<RStatHarmonicMPO> rStatHarmonicMPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -558,7 +1309,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicMPO rStatHarmonicMPO = new RStatHarmonicMPO();
|
RStatHarmonicMPO rStatHarmonicMPO = new RStatHarmonicMPO();
|
||||||
rStatHarmonicMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicMPO.setDataDate(date);
|
rStatHarmonicMPO.setDataDate(localDate);
|
||||||
rStatHarmonicMPO.setHarmonicType(dictData.getId());
|
rStatHarmonicMPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicMPO.setMeasurementTypeClass(k);
|
rStatHarmonicMPO.setMeasurementTypeClass(k);
|
||||||
@@ -633,7 +1384,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicMPO rStatHarmonicMPO = new RStatHarmonicMPO();
|
RStatHarmonicMPO rStatHarmonicMPO = new RStatHarmonicMPO();
|
||||||
rStatHarmonicMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicMPO.setDataDate(date);
|
rStatHarmonicMPO.setDataDate(localDate);
|
||||||
rStatHarmonicMPO.setHarmonicType(dictData.getId());
|
rStatHarmonicMPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
rStatHarmonicMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
rStatHarmonicMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
rStatHarmonicMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
@@ -718,6 +1469,8 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
private void hanlderDay(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
private void hanlderDay(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatHarmonicDPO> rStatHarmonicDPOList = new ArrayList<>();
|
List<RStatHarmonicDPO> rStatHarmonicDPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -770,7 +1523,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
||||||
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicDPO.setDataDate(date);
|
rStatHarmonicDPO.setDataDate(localDate);
|
||||||
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicDPO.setMeasurementTypeClass(k);
|
rStatHarmonicDPO.setMeasurementTypeClass(k);
|
||||||
@@ -821,7 +1574,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
}
|
}
|
||||||
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
||||||
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicDPO.setDataDate(date);
|
rStatHarmonicDPO.setDataDate(localDate);
|
||||||
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
rStatHarmonicDPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
rStatHarmonicDPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.harmonic.pojo.po.*;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.area.RStatOrgMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
||||||
@@ -31,6 +35,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -58,6 +63,358 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
|
|
||||||
private final
|
private final
|
||||||
DicDataFeignClient dicDataFeignClient;
|
DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
List<RStatHarmonicVoltageDPO> rStatHarmonicVoltageDPOList = new ArrayList<>();
|
||||||
|
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v)->{
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
|
||||||
|
List<String> 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("data_date",localDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
|
||||||
|
in("measurement_point_id",collect3).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class",k).
|
||||||
|
eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
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(localDate);
|
||||||
|
rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicVoltageDPO.setMeasurementTypeClass(k);
|
||||||
|
rStatHarmonicVoltageDPO.setVoltageType(k1);
|
||||||
|
rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
|
rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(0.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<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> pwMonitorMap = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
pwMonitorMap.forEach((k, v)->{
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
|
||||||
|
List<String> 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("data_date",localDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
|
||||||
|
in("measurement_point_id",collect3).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> 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("data_date",localDate);
|
||||||
|
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(localDate);
|
||||||
|
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(0.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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatHarmonicVoltageMPO> rStatHarmonicVoltageMPOList = new ArrayList<>();
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicVoltageDPO> harmonicVoltageDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO();
|
||||||
|
rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicVoltageMPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicVoltageMPO.setMeasurementTypeClass(k);
|
||||||
|
rStatHarmonicVoltageMPO.setVoltageType(k1);
|
||||||
|
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicVoltageDPOQueryWrapper.clear();
|
||||||
|
harmonicVoltageDPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("harmonic_type", dictData.getId()).
|
||||||
|
eq("voltage_type",k1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
|
||||||
|
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementAverage(asDouble);
|
||||||
|
double asDouble1 = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble);
|
||||||
|
int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum();
|
||||||
|
rStatHarmonicVoltageMPO.setOverDay(sum);
|
||||||
|
|
||||||
|
|
||||||
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
{
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
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).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO();
|
||||||
|
rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicVoltageMPO.setDataDate(localDate);
|
||||||
|
rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicVoltageMPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
||||||
|
rStatHarmonicVoltageMPO.setVoltageType(k1);
|
||||||
|
|
||||||
|
/**4、累计超标监测点数*/
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS));
|
||||||
|
/*3、日均超标监测点数,6、日均超标监测点数占比*/
|
||||||
|
harmonicVoltageDPOQueryWrapper.clear();
|
||||||
|
harmonicVoltageDPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("harmonic_type", dictData.getId()).
|
||||||
|
eq("voltage_type",k1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
|
||||||
|
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementAverage(asDouble);
|
||||||
|
double asDouble1 = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble);
|
||||||
|
int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum();
|
||||||
|
rStatHarmonicVoltageMPO.setOverDay(sum);
|
||||||
|
|
||||||
|
|
||||||
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
//todo为0时如何设值
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(rStatHarmonicVoltageMPOList)){
|
||||||
|
rStatHarmonicVoltageMPOService.saveOrUpdateBatchByMultiId(rStatHarmonicVoltageMPOList,500);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**---------------------------------------------------------------------------------**/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handlerByPowerLevel(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handlerByPowerLevel(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -78,12 +435,16 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = {Exception.class})
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
private void hanlderMByPl(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
private void hanlderMByPl(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatHarmonicVoltageMPO> rStatHarmonicVoltageMPOList = new ArrayList<>();
|
List<RStatHarmonicVoltageMPO> rStatHarmonicVoltageMPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -141,7 +502,7 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
}
|
}
|
||||||
RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO();
|
RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO();
|
||||||
rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicVoltageMPO.setDataDate(date);
|
rStatHarmonicVoltageMPO.setDataDate(localDate);
|
||||||
rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId());
|
rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicVoltageMPO.setMeasurementTypeClass(k);
|
rStatHarmonicVoltageMPO.setMeasurementTypeClass(k);
|
||||||
@@ -155,7 +516,7 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
eq("measurement_type_class", k).
|
eq("measurement_type_class", k).
|
||||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq("harmonic_type", dictData.getId()).
|
eq("harmonic_type", dictData.getId()).
|
||||||
eq("voltageType",k1).
|
eq("voltage_type",k1).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7));
|
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7));
|
||||||
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
|
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
|
||||||
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
@@ -170,11 +531,11 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
|
|
||||||
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
//todo为0时如何设值
|
//todo为0时如何设值
|
||||||
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(0.00);
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value));
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(value));
|
||||||
}
|
}
|
||||||
rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO);
|
rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO);
|
||||||
});
|
});
|
||||||
@@ -219,7 +580,7 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
}
|
}
|
||||||
RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO();
|
RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO();
|
||||||
rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicVoltageMPO.setDataDate(date);
|
rStatHarmonicVoltageMPO.setDataDate(localDate);
|
||||||
rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId());
|
rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicVoltageMPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
rStatHarmonicVoltageMPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
||||||
@@ -233,7 +594,7 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
eq("measurement_type_class", k).
|
eq("measurement_type_class", k).
|
||||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq("harmonic_type", dictData.getId()).
|
eq("harmonic_type", dictData.getId()).
|
||||||
eq("voltageType",k1).
|
eq("voltage_type",k1).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7));
|
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7));
|
||||||
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
|
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
|
||||||
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble();
|
||||||
@@ -248,11 +609,11 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
|
|
||||||
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
//todo为0时如何设值
|
//todo为0时如何设值
|
||||||
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(0.00);
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value));
|
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(value));
|
||||||
}
|
}
|
||||||
rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO);
|
rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO);
|
||||||
});
|
});
|
||||||
@@ -277,6 +638,8 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
private void hanlderDayByPl(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
private void hanlderDayByPl(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatHarmonicVoltageDPO> rStatHarmonicVoltageDPOList = new ArrayList<>();
|
List<RStatHarmonicVoltageDPO> rStatHarmonicVoltageDPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -332,14 +695,14 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
}
|
}
|
||||||
RStatHarmonicVoltageDPO rStatHarmonicVoltageDPO = new RStatHarmonicVoltageDPO();
|
RStatHarmonicVoltageDPO rStatHarmonicVoltageDPO = new RStatHarmonicVoltageDPO();
|
||||||
rStatHarmonicVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicVoltageDPO.setDataDate(date);
|
rStatHarmonicVoltageDPO.setDataDate(localDate);
|
||||||
rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId());
|
rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
rStatHarmonicVoltageDPO.setMeasurementTypeClass(k);
|
rStatHarmonicVoltageDPO.setMeasurementTypeClass(k);
|
||||||
rStatHarmonicVoltageDPO.setVoltageType(k1);
|
rStatHarmonicVoltageDPO.setVoltageType(k1);
|
||||||
rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(1.00);
|
rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
String value = df.format((float)rStatHarmonicVoltageDPO.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement());
|
String value = df.format((float)rStatHarmonicVoltageDPO.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement());
|
||||||
@@ -390,14 +753,14 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
}
|
}
|
||||||
RStatHarmonicVoltageDPO rStatHarmonicVoltageDPO = new RStatHarmonicVoltageDPO();
|
RStatHarmonicVoltageDPO rStatHarmonicVoltageDPO = new RStatHarmonicVoltageDPO();
|
||||||
rStatHarmonicVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatHarmonicVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatHarmonicVoltageDPO.setDataDate(date);
|
rStatHarmonicVoltageDPO.setDataDate(localDate);
|
||||||
rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId());
|
rStatHarmonicVoltageDPO.setHarmonicType(dictData.getId());
|
||||||
rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
rStatHarmonicVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
rStatHarmonicVoltageDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
rStatHarmonicVoltageDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
||||||
rStatHarmonicVoltageDPO.setVoltageType(k1);
|
rStatHarmonicVoltageDPO.setVoltageType(k1);
|
||||||
rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
rStatHarmonicVoltageDPO.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(1.00);
|
rStatHarmonicVoltageDPO.setOverLimitMeasurementRatioAverage(0.00);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
String value = df.format((float)rStatHarmonicVoltageDPO.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement());
|
String value = df.format((float)rStatHarmonicVoltageDPO.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.area;
|
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -15,4 +16,12 @@ import java.util.List;
|
|||||||
public interface RStatHarmonicOrgService {
|
public interface RStatHarmonicOrgService {
|
||||||
|
|
||||||
void handler(OrgParam orgParam);
|
void handler(OrgParam orgParam);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.area;
|
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -14,4 +15,11 @@ import java.util.List;
|
|||||||
public interface RStatHarmonicService {
|
public interface RStatHarmonicService {
|
||||||
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.service.mysql.area;
|
|||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO;
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -18,4 +19,9 @@ public interface RStatHarmonicVoltageService {
|
|||||||
|
|
||||||
void handlerByPowerLevel(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
void handlerByPowerLevel(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,4 +14,7 @@ public interface RAlarmCountService {
|
|||||||
|
|
||||||
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
|||||||
|
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountM;
|
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountMPO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zbj
|
* @author zbj
|
||||||
* @since 2023-06-14
|
* @since 2023-06-14
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public interface RStatAreaAlarmCountMPOService extends IMppService<RStatAreaAlarmCountM> {
|
public interface RStatAreaAlarmCountMPOService extends IMppService<RStatAreaAlarmCountMPO> {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,4 +14,11 @@ public interface RStatEventOrgService {
|
|||||||
|
|
||||||
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,4 +14,11 @@ public interface RStatEventService {
|
|||||||
|
|
||||||
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,4 +14,7 @@ public interface RStatEventVoltageService {
|
|||||||
|
|
||||||
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -13,4 +15,12 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface RStatLoadTypeService {
|
public interface RStatLoadTypeService {
|
||||||
void handler(List<Dept> deptList, String dataDate, Integer type);
|
void handler(List<Dept> deptList, String dataDate, Integer type);
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.device.pms.pojo.po.RMpMonitorAlarmCountM;
|
import com.njcn.device.pms.pojo.po.RStatAreaAlarmCountM;
|
||||||
import com.njcn.harmonic.pojo.po.*;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpMonitorAlarmCountMMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpMonitorAlarmCountMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
|
||||||
@@ -54,35 +58,19 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
|
|
||||||
private final RStatOrgMMapper rStatOrgMMapper;
|
private final RStatOrgMMapper rStatOrgMMapper;
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
|
||||||
switch (type) {
|
|
||||||
case 3:
|
|
||||||
this.rAlarmCountMHandler(data, dataDate, type);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
this.rAlarmCountWHandler(data, dataDate, type);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//周表
|
@Override
|
||||||
public void rAlarmCountWHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
List<RStatZwAlarmCountWPO> rStatZwAlarmCountWPOS = new ArrayList<>();
|
List<RStatZwAlarmCountWPO> rStatZwAlarmCountWPOS = new ArrayList<>();
|
||||||
List<RStatPwAlarmCountWPO> rStatPwAlarmCountWPOS = new ArrayList<>();
|
List<RStatPwAlarmCountWPO> rStatPwAlarmCountWPOS = new ArrayList<>();
|
||||||
//获取日期
|
DateTime begin = DateUtil.beginOfWeek(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
Date localDate = DateUtil.parse(dataDate);
|
DateTime end = DateUtil.endOfWeek(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
//获取当前周的起始与结束日期
|
|
||||||
LocalDate date = LocalDate.parse(dataDate, DateTimeFormatter.ISO_DATE);
|
|
||||||
LocalDate startOfWeek = date.with(DayOfWeek.MONDAY);
|
|
||||||
LocalDate endOfWeek = date.with(DayOfWeek.SUNDAY);
|
|
||||||
|
|
||||||
QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
data.forEach(deptGetChildrenMoreDTO -> {
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
/*主网*/
|
/*主网*/
|
||||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
@@ -94,9 +82,10 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
rMpTargetWarnDPOQueryWrapper.
|
rMpTargetWarnDPOQueryWrapper.
|
||||||
in("measurement_point_id", collect1).
|
in("measurement_point_id", collect1).
|
||||||
eq("is_effective", "1").
|
eq("is_effective", "1").
|
||||||
between("data_date", startOfWeek, endOfWeek);
|
between("data_date", begin, end);
|
||||||
|
|
||||||
List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
||||||
|
List<String> collect = rMpTargetWarnDPOList.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
//告警4次及以上监测点数量
|
//告警4次及以上监测点数量
|
||||||
long count = rMpTargetWarnDPOList.stream()
|
long count = rMpTargetWarnDPOList.stream()
|
||||||
@@ -125,7 +114,7 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
RStatZwAlarmCountWPO rStatZwAlarmCountWPO = new RStatZwAlarmCountWPO();
|
RStatZwAlarmCountWPO rStatZwAlarmCountWPO = new RStatZwAlarmCountWPO();
|
||||||
rStatZwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatZwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatZwAlarmCountWPO.setDataDate(localDate);
|
rStatZwAlarmCountWPO.setDataDate(localDate);
|
||||||
rStatZwAlarmCountWPO.setMonitorEffectiveCount(rMpTargetWarnDPOList.size());
|
rStatZwAlarmCountWPO.setMonitorEffectiveCount(collect.size());
|
||||||
rStatZwAlarmCountWPO.setWarnMonitorCount(Integer.valueOf(count + ""));
|
rStatZwAlarmCountWPO.setWarnMonitorCount(Integer.valueOf(count + ""));
|
||||||
rStatZwAlarmCountWPO.setMonitorGradeCount(top30PercentCount);
|
rStatZwAlarmCountWPO.setMonitorGradeCount(top30PercentCount);
|
||||||
rStatZwAlarmCountWPOS.add(rStatZwAlarmCountWPO);
|
rStatZwAlarmCountWPOS.add(rStatZwAlarmCountWPO);
|
||||||
@@ -141,17 +130,18 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
rMpTargetWarnDPOQueryWrapper.clear();
|
rMpTargetWarnDPOQueryWrapper.clear();
|
||||||
rMpTargetWarnDPOQueryWrapper.
|
rMpTargetWarnDPOQueryWrapper.
|
||||||
in("measurement_point_id", collect1).
|
in("measurement_point_id", collect1).
|
||||||
between("data_date", startOfWeek, endOfWeek);
|
between("data_date", begin, end);
|
||||||
|
|
||||||
List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
||||||
|
List<String> collect = rMpTargetWarnDPOList.stream().map(RMpTargetWarnDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
//获取告警监测点数
|
//获取告警监测点数
|
||||||
long count = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsWarn() == 1).count();
|
long count = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsWarn() == 1).distinct().count();
|
||||||
|
|
||||||
RStatPwAlarmCountWPO rStatPwAlarmCountWPO = new RStatPwAlarmCountWPO();
|
RStatPwAlarmCountWPO rStatPwAlarmCountWPO = new RStatPwAlarmCountWPO();
|
||||||
rStatPwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatPwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rStatPwAlarmCountWPO.setDataDate(localDate);
|
rStatPwAlarmCountWPO.setDataDate(localDate);
|
||||||
rStatPwAlarmCountWPO.setOnlineMonitorCount(rMpTargetWarnDPOList.size());
|
rStatPwAlarmCountWPO.setOnlineMonitorCount(collect.size());
|
||||||
rStatPwAlarmCountWPO.setAlarmMonitorCount(Integer.valueOf(count + ""));
|
rStatPwAlarmCountWPO.setAlarmMonitorCount(Integer.valueOf(count + ""));
|
||||||
|
|
||||||
rStatPwAlarmCountWPOS.add(rStatPwAlarmCountWPO);
|
rStatPwAlarmCountWPOS.add(rStatPwAlarmCountWPO);
|
||||||
@@ -161,20 +151,22 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
if (!CollectionUtils.isEmpty(rStatZwAlarmCountWPOS)) {
|
if (!CollectionUtils.isEmpty(rStatZwAlarmCountWPOS)) {
|
||||||
rStatZwAlarmCountWPOService.saveOrUpdateBatchByMultiId(rStatZwAlarmCountWPOS, 500);
|
rStatZwAlarmCountWPOService.saveOrUpdateBatchByMultiId(rStatZwAlarmCountWPOS, 500);
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(rStatZwAlarmCountWPOS)) {
|
if (!CollectionUtils.isEmpty(rStatPwAlarmCountWPOS)) {
|
||||||
rStatPwAlarmCountWPOService.saveOrUpdateBatchByMultiId(rStatPwAlarmCountWPOS, 500);
|
rStatPwAlarmCountWPOService.saveOrUpdateBatchByMultiId(rStatPwAlarmCountWPOS, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//月表
|
@Override
|
||||||
public void rAlarmCountMHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
List<RStatAreaAlarmCountMPO> rStatAreaAlarmCountMPOS = new ArrayList<>();
|
List<RStatAreaAlarmCountMPO> rStatAreaAlarmCountMPOS = new ArrayList<>();
|
||||||
List<RStatAreaAlarmCountM> result = new ArrayList<>();
|
|
||||||
|
|
||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
//获取日期
|
//获取日期
|
||||||
Date localDate = DateUtil.parse(dataDate);
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
/*获取数据类型*/
|
/*获取数据类型*/
|
||||||
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
@@ -184,47 +176,46 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
//org表
|
//org表
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
data.forEach(deptGetChildrenMoreDTO -> {
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
/*主网*/
|
/*主网*/
|
||||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
List<String> collect1 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
List<String> collect1 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
//日表
|
// //日表
|
||||||
QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
// QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
||||||
rMpTargetWarnDPOQueryWrapper.clear();
|
// rMpTargetWarnDPOQueryWrapper.clear();
|
||||||
rMpTargetWarnDPOQueryWrapper.
|
// rMpTargetWarnDPOQueryWrapper.
|
||||||
in("measurement_point_id", collect1).
|
// in("measurement_point_id", collect1).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
// between("data_date", begin, end);
|
||||||
|
//
|
||||||
List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
// List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
||||||
|
|
||||||
//月表
|
//月表
|
||||||
rMpMonitorAlarmCountMQueryWrapper.clear();
|
rMpMonitorAlarmCountMQueryWrapper.clear();
|
||||||
rMpMonitorAlarmCountMQueryWrapper.
|
rMpMonitorAlarmCountMQueryWrapper.
|
||||||
in("measurement_point_id", collect1).
|
in("measurement_point_id", collect1).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)).
|
between("data_date", begin, end);
|
||||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
|
||||||
List<RMpMonitorAlarmCountMPO> rMpMonitorAlarmCountMPOS = rMpMonitorAlarmCountMMapper.selectList(rMpMonitorAlarmCountMQueryWrapper);
|
List<RMpMonitorAlarmCountMPO> rMpMonitorAlarmCountMPOS = rMpMonitorAlarmCountMMapper.selectList(rMpMonitorAlarmCountMQueryWrapper);
|
||||||
|
|
||||||
//org表
|
//org表
|
||||||
rStatOrgMPOQueryWrapper.clear();
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
rStatOrgMPOQueryWrapper.select("sum(effective_measurement_accrued) effective_measurement_accrued").
|
||||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)).
|
between("data_date", begin, end).
|
||||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
//所有告警次数集合
|
//所有告警次数集合
|
||||||
Map<String, Long> resultCount = new HashMap<>();
|
Map<String, Long> resultCount = new HashMap<>();
|
||||||
long vdevAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVdevAlarmInfo() == 1).count();
|
long vdevAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVdevAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long freqAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFreqAlarmInfo() == 1).count();
|
long freqAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFreqAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long unbalanceAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getUnbalanceAlarmInfo() == 1).count();
|
long unbalanceAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getUnbalanceAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long vAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVAlarmInfo() == 1).count();
|
long vAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long flickerAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFlickerAlarmInfo() == 1).count();
|
long flickerAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFlickerAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long sagAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getSagAlarmInfo() == 1).count();
|
long sagAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getSagAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long interruptAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getInterruptAlarmInfo() == 1).count();
|
long interruptAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getInterruptAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
if (vdevAlarmInfoCount != 0){
|
if (vdevAlarmInfoCount != 0){
|
||||||
resultCount.put("vdevAlarmInfo",vdevAlarmInfoCount);
|
resultCount.put("vdevAlarmInfo",vdevAlarmInfoCount);
|
||||||
}
|
}
|
||||||
@@ -249,24 +240,24 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
|
|
||||||
|
|
||||||
//获取电压暂降告警次数
|
//获取电压暂降告警次数
|
||||||
long sagCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsSagWarn() == 1).count();
|
long sagCount = rMpMonitorAlarmCountMPOS.stream().filter(alarm -> alarm.getSagAlarmInfo() == 1).count();
|
||||||
//获取电压暂降监测点数(id去重)
|
//获取电压暂降监测点数(id去重)
|
||||||
long sagMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsSagWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
long sagMCount = rMpMonitorAlarmCountMPOS.stream().filter(obj -> obj.getSagAlarmInfo() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
||||||
|
|
||||||
//获取短时中断告警次数
|
//获取短时中断告警次数
|
||||||
long iaaCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsInterruptWarn() == 1).count();
|
long iaaCount = rMpMonitorAlarmCountMPOS.stream().filter(alarm -> alarm.getInterruptAlarmInfo() == 1).count();
|
||||||
//获取短时中断监测点数(id去重)
|
//获取短时中断监测点数(id去重)
|
||||||
long iaaMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsInterruptWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
long iaaMCount = rMpMonitorAlarmCountMPOS.stream().filter(obj -> obj.getInterruptAlarmInfo() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
||||||
|
|
||||||
//获取在线监测点数
|
//获取在线监测点数
|
||||||
int size = rMpTargetWarnDPOList.size();
|
int size = rStatOrgMPO.getEffectiveMeasurementAccrued();
|
||||||
//获取稳态告警监测点数
|
//获取稳态告警监测点数
|
||||||
long wtCount = rMpMonitorAlarmCountMPOS.stream()
|
long wtCount = rMpMonitorAlarmCountMPOS.stream()
|
||||||
.filter(obj -> obj.getVdevAlarmInfo() == 1 || obj.getFreqAlarmInfo() == 1 || obj.getUnbalanceAlarmInfo() == 1
|
.filter(obj -> obj.getVdevAlarmInfo() == 1 || obj.getFreqAlarmInfo() == 1 || obj.getUnbalanceAlarmInfo() == 1
|
||||||
|| obj.getVAlarmInfo() == 1 || obj.getFlickerAlarmInfo() == 1).count();
|
|| obj.getVAlarmInfo() == 1 || obj.getFlickerAlarmInfo() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
||||||
//获取暂态告警监测点数
|
//获取暂态告警监测点数
|
||||||
long ztCount = rMpMonitorAlarmCountMPOS.stream()
|
long ztCount = rMpMonitorAlarmCountMPOS.stream()
|
||||||
.filter(obj -> obj.getSagAlarmInfo() == 1 || obj.getInterruptAlarmInfo() == 1).count();
|
.filter(obj -> obj.getSagAlarmInfo() == 1 || obj.getInterruptAlarmInfo() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
||||||
|
|
||||||
RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO = new RStatAreaAlarmCountMPO();
|
RStatAreaAlarmCountMPO rStatAreaAlarmCountMPO = new RStatAreaAlarmCountMPO();
|
||||||
rStatAreaAlarmCountMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
rStatAreaAlarmCountMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
@@ -305,53 +296,53 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Objects.isNull(rStatOrgMPO)) {
|
if (Objects.isNull(rStatOrgMPO)) {
|
||||||
rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setVdevAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setFreqAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setVAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(0.00f);
|
||||||
} else {
|
} else {
|
||||||
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setVdevAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setFreqAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setVAlarmRatio(0.00f);
|
||||||
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(0.00f);
|
||||||
} else {
|
} else {
|
||||||
//电压偏差告警占比
|
//电压偏差告警占比
|
||||||
if (resultCount.containsKey("vdevAlarmInfo")) {
|
if (resultCount.containsKey("vdevAlarmInfo")) {
|
||||||
String value = df.format(resultCount.get("vdevAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format(resultCount.get("vdevAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatAreaAlarmCountMPO.setVdevAlarmRatio(Float.parseFloat(value));
|
rStatAreaAlarmCountMPO.setVdevAlarmRatio(Float.parseFloat(value));
|
||||||
} else {
|
} else {
|
||||||
rStatAreaAlarmCountMPO.setVdevAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setVdevAlarmRatio(0.00f);
|
||||||
}
|
}
|
||||||
//频率偏差告警占比
|
//频率偏差告警占比
|
||||||
if (resultCount.containsKey("freqAlarmInfo")) {
|
if (resultCount.containsKey("freqAlarmInfo")) {
|
||||||
String value = df.format(resultCount.get("freqAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format(resultCount.get("freqAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatAreaAlarmCountMPO.setFreqAlarmRatio(Float.parseFloat(value));
|
rStatAreaAlarmCountMPO.setFreqAlarmRatio(Float.parseFloat(value));
|
||||||
} else {
|
} else {
|
||||||
rStatAreaAlarmCountMPO.setFreqAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setFreqAlarmRatio(0.00f);
|
||||||
}
|
}
|
||||||
//三项电压不平衡度告警占比
|
//三项电压不平衡度告警占比
|
||||||
if (resultCount.containsKey("unbalanceAlarmInfo")) {
|
if (resultCount.containsKey("unbalanceAlarmInfo")) {
|
||||||
String value = df.format(resultCount.get("unbalanceAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format(resultCount.get("unbalanceAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(Float.parseFloat(value));
|
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(Float.parseFloat(value));
|
||||||
} else {
|
} else {
|
||||||
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setUnbalanceAlarmRatio(0.00f);
|
||||||
}
|
}
|
||||||
//谐波电压告警占比
|
//谐波电压告警占比
|
||||||
if (resultCount.containsKey("vAlarmInfo")) {
|
if (resultCount.containsKey("vAlarmInfo")) {
|
||||||
String value = df.format(resultCount.get("vAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format(resultCount.get("vAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatAreaAlarmCountMPO.setVAlarmRatio(Float.parseFloat(value));
|
rStatAreaAlarmCountMPO.setVAlarmRatio(Float.parseFloat(value));
|
||||||
} else {
|
} else {
|
||||||
rStatAreaAlarmCountMPO.setVAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setVAlarmRatio(0.00f);
|
||||||
}
|
}
|
||||||
//闪変告警占比
|
//闪変告警占比
|
||||||
if (resultCount.containsKey("flickerAlarmInfo")) {
|
if (resultCount.containsKey("flickerAlarmInfo")) {
|
||||||
String value = df.format(resultCount.get("flickerAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
String value = df.format(resultCount.get("flickerAlarmInfo") / rStatOrgMPO.getEffectiveMeasurementAccrued());
|
||||||
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(Float.parseFloat(value));
|
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(Float.parseFloat(value));
|
||||||
} else {
|
} else {
|
||||||
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(1.00f);
|
rStatAreaAlarmCountMPO.setFlickerAlarmRatio(0.00f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -364,40 +355,39 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
List<String> collect1 = pwMonitorIds.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
List<String> collect1 = pwMonitorIds.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
//日表
|
// //日表
|
||||||
QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
// QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
||||||
rMpTargetWarnDPOQueryWrapper.clear();
|
// rMpTargetWarnDPOQueryWrapper.clear();
|
||||||
rMpTargetWarnDPOQueryWrapper.
|
// rMpTargetWarnDPOQueryWrapper.
|
||||||
in("measurement_point_id", collect1).
|
// in("measurement_point_id", collect1).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
// between("data_date", begin, end);
|
||||||
|
//
|
||||||
List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
// List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
||||||
|
|
||||||
//月表
|
//月表
|
||||||
rMpMonitorAlarmCountMQueryWrapper.clear();
|
rMpMonitorAlarmCountMQueryWrapper.clear();
|
||||||
rMpMonitorAlarmCountMQueryWrapper.
|
rMpMonitorAlarmCountMQueryWrapper.
|
||||||
in("measurement_point_id", collect1).
|
in("measurement_point_id", collect1).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)).
|
between("data_date", begin, end);
|
||||||
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
|
||||||
List<RMpMonitorAlarmCountMPO> rMpMonitorAlarmCountMPOS = rMpMonitorAlarmCountMMapper.selectList(rMpMonitorAlarmCountMQueryWrapper);
|
List<RMpMonitorAlarmCountMPO> rMpMonitorAlarmCountMPOS = rMpMonitorAlarmCountMMapper.selectList(rMpMonitorAlarmCountMQueryWrapper);
|
||||||
|
|
||||||
//org表
|
//org表
|
||||||
rStatOrgMPOQueryWrapper.clear();
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
rStatOrgMPOQueryWrapper.select("sum(effective_measurement_accrued) effective_measurement_accrued").
|
||||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7)).
|
between("data_date", begin, end).
|
||||||
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
//所有告警次数集合
|
//所有告警次数集合
|
||||||
Map<String, Long> resultCount = new HashMap<>();
|
Map<String, Long> resultCount = new HashMap<>();
|
||||||
long vdevAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVdevAlarmInfo() == 1).count();
|
long vdevAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVdevAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long freqAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFreqAlarmInfo() == 1).count();
|
long freqAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFreqAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long unbalanceAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getUnbalanceAlarmInfo() == 1).count();
|
long unbalanceAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getUnbalanceAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long vAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVAlarmInfo() == 1).count();
|
long vAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getVAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long flickerAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFlickerAlarmInfo() == 1).count();
|
long flickerAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getFlickerAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long sagAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getSagAlarmInfo() == 1).count();
|
long sagAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getSagAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
long interruptAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getInterruptAlarmInfo() == 1).count();
|
long interruptAlarmInfoCount = rMpMonitorAlarmCountMPOS.stream().filter(obj ->obj.getInterruptAlarmInfo() == 1).map(RMpMonitorAlarmCountMPO::getMeasurementPointId).distinct().count();
|
||||||
if (vdevAlarmInfoCount != 0){
|
if (vdevAlarmInfoCount != 0){
|
||||||
resultCount.put("vdevAlarmInfo",vdevAlarmInfoCount);
|
resultCount.put("vdevAlarmInfo",vdevAlarmInfoCount);
|
||||||
}
|
}
|
||||||
@@ -421,17 +411,17 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取电压暂降告警次数
|
//获取电压暂降告警次数
|
||||||
long sagCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsSagWarn() == 1).count();
|
long sagCount = rMpMonitorAlarmCountMPOS.stream().filter(alarm -> alarm.getSagAlarmInfo() == 1).count();
|
||||||
//获取电压暂降监测点数(id去重)
|
//获取电压暂降监测点数(id去重)
|
||||||
long sagMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsSagWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
long sagMCount = rMpMonitorAlarmCountMPOS.stream().filter(obj -> obj.getSagAlarmInfo() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
||||||
|
|
||||||
//获取短时中断告警次数
|
//获取短时中断告警次数
|
||||||
long iaaCount = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsInterruptWarn() == 1).count();
|
long iaaCount = rMpMonitorAlarmCountMPOS.stream().filter(alarm -> alarm.getInterruptAlarmInfo() == 1).count();
|
||||||
//获取短时中断监测点数(id去重)
|
//获取短时中断监测点数(id去重)
|
||||||
long iaaMCount = rMpTargetWarnDPOList.stream().filter(obj -> obj.getIsInterruptWarn() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
long iaaMCount = rMpMonitorAlarmCountMPOS.stream().filter(obj -> obj.getInterruptAlarmInfo() == 1).map(obj -> obj.getMeasurementPointId()).distinct().count();
|
||||||
|
|
||||||
//获取在线监测点数
|
//获取在线监测点数
|
||||||
int size = rMpTargetWarnDPOList.size();
|
int size = rStatOrgMPO.getEffectiveMeasurementAccrued();
|
||||||
//获取稳态告警监测点数
|
//获取稳态告警监测点数
|
||||||
long wtCount = rMpMonitorAlarmCountMPOS.stream()
|
long wtCount = rMpMonitorAlarmCountMPOS.stream()
|
||||||
.filter(obj -> obj.getVdevAlarmInfo() == 1 || obj.getFreqAlarmInfo() == 1 || obj.getUnbalanceAlarmInfo() == 1
|
.filter(obj -> obj.getVdevAlarmInfo() == 1 || obj.getFreqAlarmInfo() == 1 || obj.getUnbalanceAlarmInfo() == 1
|
||||||
@@ -681,16 +671,130 @@ public class RAlarmCountServiceImpl implements RAlarmCountService {
|
|||||||
|
|
||||||
zwResult.addAll(pwResult);
|
zwResult.addAll(pwResult);
|
||||||
|
|
||||||
//拷贝
|
|
||||||
for (RStatAreaAlarmCountMPO po : zwResult) {
|
|
||||||
RStatAreaAlarmCountM m = new RStatAreaAlarmCountM();
|
|
||||||
BeanUtils.copyProperties(po,m);
|
|
||||||
result.add(m);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(result)) {
|
if (!CollectionUtils.isEmpty(zwResult)) {
|
||||||
rStatAreaAlarmCountMPOService.saveOrUpdateBatchByMultiId(result, 500);
|
rStatAreaAlarmCountMPOService.saveOrUpdateBatchByMultiId(zwResult, 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
switch (type) {
|
||||||
|
case 3:
|
||||||
|
this.rAlarmCountMHandler(data, dataDate, type);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
this.rAlarmCountWHandler(data, dataDate, type);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//周表
|
||||||
|
public void rAlarmCountWHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
// List<RStatZwAlarmCountWPO> rStatZwAlarmCountWPOS = new ArrayList<>();
|
||||||
|
// List<RStatPwAlarmCountWPO> rStatPwAlarmCountWPOS = new ArrayList<>();
|
||||||
|
// //获取日期
|
||||||
|
// Date localDate = DateUtil.parse(dataDate);
|
||||||
|
//
|
||||||
|
// //获取当前周的起始与结束日期
|
||||||
|
// LocalDate date = LocalDate.parse(dataDate, DateTimeFormatter.ISO_DATE);
|
||||||
|
// LocalDate startOfWeek = date.with(DayOfWeek.MONDAY);
|
||||||
|
// LocalDate endOfWeek = date.with(DayOfWeek.SUNDAY);
|
||||||
|
//
|
||||||
|
// QueryWrapper<RMpTargetWarnDPO> rMpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//
|
||||||
|
// data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
//
|
||||||
|
// /*主网*/
|
||||||
|
// if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
// List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
//
|
||||||
|
// List<String> collect1 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// rMpTargetWarnDPOQueryWrapper.clear();
|
||||||
|
// rMpTargetWarnDPOQueryWrapper.
|
||||||
|
// in("measurement_point_id", collect1).
|
||||||
|
// eq("is_effective", "1").
|
||||||
|
// between("data_date", startOfWeek, endOfWeek);
|
||||||
|
//
|
||||||
|
// List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
||||||
|
//
|
||||||
|
// //告警4次及以上监测点数量
|
||||||
|
// long count = rMpTargetWarnDPOList.stream()
|
||||||
|
// .filter(obj -> obj.getIsWarn() == 1)
|
||||||
|
// .collect(Collectors.groupingBy(RMpTargetWarnDPO::getMeasurementPointId, Collectors.counting()))
|
||||||
|
// .entrySet().stream()
|
||||||
|
// .filter(e -> e.getValue() >= 4)
|
||||||
|
// .count();
|
||||||
|
//
|
||||||
|
// // 使用 Stream API 进行流式处理,选择 status 为 1 的告警,按照 id 进行分组并统计个数
|
||||||
|
// Map<String, Double> avgStatusOneCountByAlarmId = rMpTargetWarnDPOList.stream()
|
||||||
|
// .filter(alarm -> alarm.getIsWarn() == 1)
|
||||||
|
// .collect(Collectors.groupingBy(RMpTargetWarnDPO::getMeasurementPointId, Collectors.counting()))
|
||||||
|
// .entrySet().stream()
|
||||||
|
// .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() / 7.0));
|
||||||
|
//
|
||||||
|
// // 对 map 中的 value 进行从大到小的排序,并且排除 value 为 0 的元素
|
||||||
|
// Map<String, Double> sortedAvgStatusOneCountByAlarmId = avgStatusOneCountByAlarmId.entrySet().stream()
|
||||||
|
// .filter(e -> e.getValue() != 0)
|
||||||
|
// .sorted(Map.Entry.<String, Double>comparingByValue(Comparator.reverseOrder()))
|
||||||
|
// .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
|
||||||
|
//
|
||||||
|
// // 获取前 30% 的告警 id 数量
|
||||||
|
// int top30PercentCount = (int) (sortedAvgStatusOneCountByAlarmId.size() * 0.3) + 1;
|
||||||
|
//
|
||||||
|
// RStatZwAlarmCountWPO rStatZwAlarmCountWPO = new RStatZwAlarmCountWPO();
|
||||||
|
// rStatZwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
// rStatZwAlarmCountWPO.setDataDate(localDate);
|
||||||
|
// rStatZwAlarmCountWPO.setMonitorEffectiveCount(rMpTargetWarnDPOList.size());
|
||||||
|
// rStatZwAlarmCountWPO.setWarnMonitorCount(Integer.valueOf(count + ""));
|
||||||
|
// rStatZwAlarmCountWPO.setMonitorGradeCount(top30PercentCount);
|
||||||
|
// rStatZwAlarmCountWPOS.add(rStatZwAlarmCountWPO);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// /*配网*/
|
||||||
|
// if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
// List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
// List<String> collect1 = pwMonitorIds.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// rMpTargetWarnDPOQueryWrapper.clear();
|
||||||
|
// rMpTargetWarnDPOQueryWrapper.
|
||||||
|
// in("measurement_point_id", collect1).
|
||||||
|
// between("data_date", startOfWeek, endOfWeek);
|
||||||
|
//
|
||||||
|
// List<RMpTargetWarnDPO> rMpTargetWarnDPOList = rMpTargetWarnDMapper.selectList(rMpTargetWarnDPOQueryWrapper);
|
||||||
|
//
|
||||||
|
// //获取告警监测点数
|
||||||
|
// long count = rMpTargetWarnDPOList.stream().filter(alarm -> alarm.getIsWarn() == 1).count();
|
||||||
|
//
|
||||||
|
// RStatPwAlarmCountWPO rStatPwAlarmCountWPO = new RStatPwAlarmCountWPO();
|
||||||
|
// rStatPwAlarmCountWPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
// rStatPwAlarmCountWPO.setDataDate(localDate);
|
||||||
|
// rStatPwAlarmCountWPO.setOnlineMonitorCount(rMpTargetWarnDPOList.size());
|
||||||
|
// rStatPwAlarmCountWPO.setAlarmMonitorCount(Integer.valueOf(count + ""));
|
||||||
|
//
|
||||||
|
// rStatPwAlarmCountWPOS.add(rStatPwAlarmCountWPO);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// });
|
||||||
|
// if (!CollectionUtils.isEmpty(rStatZwAlarmCountWPOS)) {
|
||||||
|
// rStatZwAlarmCountWPOService.saveOrUpdateBatchByMultiId(rStatZwAlarmCountWPOS, 500);
|
||||||
|
// }
|
||||||
|
// if (!CollectionUtils.isEmpty(rStatZwAlarmCountWPOS)) {
|
||||||
|
// rStatPwAlarmCountWPOService.saveOrUpdateBatchByMultiId(rStatPwAlarmCountWPOS, 500);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
//月表
|
||||||
|
public void rAlarmCountMHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.pms.pojo.po.RStatAreaAlarmCountM;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatAreaAlarmCountMPOMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatAreaAlarmCountMPOMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatZwAlarmCountWPOMapper;
|
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountM;
|
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountMPO;
|
import com.njcn.prepare.harmonic.pojo.po.RStatAreaAlarmCountMPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatZwAlarmCountWPO;
|
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatAreaAlarmCountMPOService;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatAreaAlarmCountMPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatZwAlarmCountWPOService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -21,5 +18,5 @@ import org.springframework.stereotype.Service;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class RStatAreaAlarmCountMPOServiceImpl extends MppServiceImpl<RStatAreaAlarmCountMPOMapper, RStatAreaAlarmCountM> implements RStatAreaAlarmCountMPOService {
|
public class RStatAreaAlarmCountMPOServiceImpl extends MppServiceImpl<RStatAreaAlarmCountMPOMapper, RStatAreaAlarmCountMPO> implements RStatAreaAlarmCountMPOService {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
@@ -8,6 +11,7 @@ import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
|
|||||||
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.area.RStatOrgMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
||||||
@@ -15,6 +19,9 @@ import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper;
|
|||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper;
|
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.line.RMpEventDetailMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.*;
|
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.*;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
||||||
|
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.pojo.po.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
@@ -97,6 +104,432 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventOrgDPO> rStatEventOrgDPOS = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
QueryWrapper<RStatEventDPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
List<RStatOrgDVO> rStatOrgDVOS = rStatOrgDMapper.listAll( LocalDateTimeUtil.format(localDate,DatePattern.NORM_DATE_PATTERN), deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgDVOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgDVOS.stream().mapToInt(RStatOrgDVO::getEffectiveMeasurement).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RStatEventDPO> list = rStatEventDPOMapper.selectList(queryWrapper);
|
||||||
|
int sum_event_measurement =0;
|
||||||
|
int sum_event_count =0;
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
sum_event_measurement=0;
|
||||||
|
sum_event_count =0;
|
||||||
|
}else {
|
||||||
|
sum_event_measurement = list.stream().mapToInt(RStatEventDPO::getEventMeasurement).sum();
|
||||||
|
sum_event_count = list.stream().mapToInt(RStatEventDPO::getEventCount).sum();
|
||||||
|
|
||||||
|
}
|
||||||
|
RStatEventOrgDPO rStatEventOrgDPO = new RStatEventOrgDPO();
|
||||||
|
rStatEventOrgDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventOrgDPO.setDataDate(localDate);
|
||||||
|
rStatEventOrgDPO.setEventType(dictData.getId());
|
||||||
|
rStatEventOrgDPO.setEventMeasurement(sum_event_measurement);
|
||||||
|
rStatEventOrgDPO.setEventCount(sum_event_count);
|
||||||
|
rStatEventOrgDPO.setDataType(v.getId());
|
||||||
|
if (finalSumEffectiveMeasurement == 0) {
|
||||||
|
rStatEventOrgDPO.setEventMeasurementRatio(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)sum_event_measurement)/ finalSumEffectiveMeasurement);
|
||||||
|
rStatEventOrgDPO.setEventMeasurementRatio(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
rStatEventOrgDPOS.add(rStatEventOrgDPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventOrgDPOS)) {
|
||||||
|
rStatEventOrgDPOService.saveOrUpdateBatchByMultiId(rStatEventOrgDPOS, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventOrgMPO> rStatEventOrgMPOS = new ArrayList<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventOrgDPO> queryWrapper1 = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("IFNULL(effective_measurement_accrued,0) effective_measurement_accrued").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgMPO> rStatOrgMPOS = rStatOrgMMapper.selectList(rStatOrgMPOQueryWrapper);
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgMPOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(RStatOrgMPO::getEffectiveMeasurementAccrued).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventMPO> list = rStatEventMPOMapper.selectList(queryWrapper);
|
||||||
|
int sum_event_measurement =0;
|
||||||
|
int sum_event_count =0;
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
sum_event_measurement=0;
|
||||||
|
sum_event_count =0;
|
||||||
|
}else {
|
||||||
|
sum_event_measurement = list.stream().mapToInt(RStatEventMPO::getEventMeasurementAccrued).sum();
|
||||||
|
sum_event_count = list.stream().mapToInt(RStatEventMPO::getEventCount).sum();
|
||||||
|
|
||||||
|
}
|
||||||
|
queryWrapper1.clear();
|
||||||
|
queryWrapper1.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventOrgDPO> rStatEventOrgDPOList = rStatEventOrgDPOService.list(queryWrapper1);
|
||||||
|
int event_count_all = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventCount).sum();
|
||||||
|
int event_measurement_all = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventMeasurement).sum();
|
||||||
|
double event_measurement_avg = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventMeasurement).average().getAsDouble();
|
||||||
|
|
||||||
|
double asDouble = rStatEventOrgDPOList.stream().mapToDouble(RStatEventOrgDPO::getEventMeasurementRatio).average().getAsDouble();
|
||||||
|
|
||||||
|
|
||||||
|
RStatEventOrgMPO rStatEventOrgMPO = new RStatEventOrgMPO();
|
||||||
|
rStatEventOrgMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventOrgMPO.setDataDate(localDate);
|
||||||
|
rStatEventOrgMPO.setEventType(dictData.getId());
|
||||||
|
|
||||||
|
rStatEventOrgMPO.setDataType(v.getId());
|
||||||
|
|
||||||
|
rStatEventOrgMPO.setEventMeasurementAverage(Float.parseFloat( df.format(event_measurement_avg)));
|
||||||
|
rStatEventOrgMPO.setEventMeasurementAccrued(sum_event_measurement);
|
||||||
|
|
||||||
|
if (event_measurement_all == 0) {
|
||||||
|
rStatEventOrgMPO.setEventFreq(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)event_count_all)/ event_measurement_all);
|
||||||
|
rStatEventOrgMPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
rStatEventOrgMPO.setEventCount(event_count_all);
|
||||||
|
|
||||||
|
rStatEventOrgMPO.setEventMeasurementRatioAverage(Float.parseFloat( df.format(asDouble)));
|
||||||
|
|
||||||
|
if (finalSumEffectiveMeasurement == 0) {
|
||||||
|
rStatEventOrgMPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)sum_event_measurement)/ finalSumEffectiveMeasurement);
|
||||||
|
rStatEventOrgMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
rStatEventOrgMPOS.add(rStatEventOrgMPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventOrgMPOS)) {
|
||||||
|
rStatEventOrgMPOService.saveOrUpdateBatchByMultiId(rStatEventOrgMPOS, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
List<RStatEventOrgQPO> rStatEventOrgQPOS = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventQPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventOrgDPO> queryWrapper1 = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventOrgMPO> queryWrapper2 = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.select("IFNULL(effective_measurement_accrued,0) effective_measurement_accrued").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgQPO> rStatOrgQPOS = rStatOrgQMapper.selectList(rStatOrgQPOQueryWrapper);
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgQPOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgQPOS.stream().mapToInt(RStatOrgQPO::getEffectiveMeasurementAccrued).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventQPO> list = rStatEventQPOMapper.selectList(queryWrapper);
|
||||||
|
int sum_event_measurement =0;
|
||||||
|
int sum_event_count =0;
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
sum_event_measurement=0;
|
||||||
|
sum_event_count =0;
|
||||||
|
}else {
|
||||||
|
sum_event_measurement = list.stream().mapToInt(RStatEventQPO::getEventMeasurementAccrued).sum();
|
||||||
|
sum_event_count = list.stream().mapToInt(RStatEventQPO::getEventCount).sum();
|
||||||
|
|
||||||
|
}
|
||||||
|
queryWrapper1.clear();
|
||||||
|
queryWrapper1.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventOrgDPO> rStatEventOrgDPOList = rStatEventOrgDPOService.list(queryWrapper1);
|
||||||
|
int event_count_all = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventCount).sum();
|
||||||
|
int event_measurement_all = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventMeasurement).sum();
|
||||||
|
// double event_measurement_avg = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventMeasurement).average().getAsDouble();
|
||||||
|
//
|
||||||
|
// double asDouble = rStatEventOrgDPOList.stream().mapToDouble(RStatEventOrgDPO::getEventMeasurementRatio).average().getAsDouble();
|
||||||
|
|
||||||
|
queryWrapper2.clear();
|
||||||
|
queryWrapper2.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventOrgMPO> rStatEventOrgMPOList = rStatEventOrgMPOService.list(queryWrapper2);
|
||||||
|
|
||||||
|
double event_measurement_average = rStatEventOrgMPOList.stream().mapToDouble(RStatEventOrgMPO::getEventMeasurementAverage).average().getAsDouble();
|
||||||
|
double event_measurement_ratio_average = rStatEventOrgMPOList.stream().mapToDouble(RStatEventOrgMPO::getEventMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
|
||||||
|
int event_count = rStatEventOrgMPOList.stream().mapToInt(RStatEventOrgMPO::getEventCount).sum();
|
||||||
|
|
||||||
|
RStatEventOrgQPO rStatEventOrgQPO = new RStatEventOrgQPO();
|
||||||
|
rStatEventOrgQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventOrgQPO.setDataDate(localDate);
|
||||||
|
rStatEventOrgQPO.setEventType(dictData.getId());
|
||||||
|
rStatEventOrgQPO.setDataType(v.getId());
|
||||||
|
rStatEventOrgQPO.setEventMeasurementAverage(Float.parseFloat( df.format(event_measurement_average)));
|
||||||
|
rStatEventOrgQPO.setEventMeasurementAccrued(sum_event_measurement);
|
||||||
|
rStatEventOrgQPO.setEventCount(event_count);
|
||||||
|
rStatEventOrgQPO.setEventMeasurementRatioAverage(Float.parseFloat( df.format(event_measurement_ratio_average)));
|
||||||
|
if (finalSumEffectiveMeasurement == 0) {
|
||||||
|
rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)sum_event_measurement)/ finalSumEffectiveMeasurement);
|
||||||
|
rStatEventOrgQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (event_measurement_all == 0) {
|
||||||
|
rStatEventOrgQPO.setEventFreq(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)event_count_all)/ event_measurement_all);
|
||||||
|
rStatEventOrgQPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rStatEventOrgQPOS.add(rStatEventOrgQPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventOrgQPOS)) {
|
||||||
|
rStatEventOrgQPOService.saveOrUpdateBatchByMultiId(rStatEventOrgQPOS, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
List<RStatEventOrgYPO> rStatEventOrgYPOS = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventYPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventOrgDPO> queryWrapper1 = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatEventOrgMPO> queryWrapper2 = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.select("IFNULL(effective_measurement_accrued,0) effective_measurement_accrued").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgYPO> rStatOrgYPOS = rStatOrgYMapper.selectList(rStatOrgYPOQueryWrapper);
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgYPOS)){
|
||||||
|
sumEffectiveMeasurement=0;
|
||||||
|
}else {
|
||||||
|
sumEffectiveMeasurement = rStatOrgYPOS.stream().mapToInt(RStatOrgYPO::getEffectiveMeasurementAccrued).sum();
|
||||||
|
}
|
||||||
|
int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
|
||||||
|
|
||||||
|
dataTypeMap.forEach((k, v)->{
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventYPO> list = rStatEventYPOMapper.selectList(queryWrapper);
|
||||||
|
int sum_event_measurement =0;
|
||||||
|
int sum_event_count =0;
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
sum_event_measurement=0;
|
||||||
|
sum_event_count =0;
|
||||||
|
}else {
|
||||||
|
sum_event_measurement = list.stream().mapToInt(RStatEventYPO::getEventMeasurementAccrued).sum();
|
||||||
|
sum_event_count = list.stream().mapToInt(RStatEventYPO::getEventCount).sum();
|
||||||
|
|
||||||
|
}
|
||||||
|
queryWrapper1.clear();
|
||||||
|
queryWrapper1.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventOrgDPO> rStatEventOrgDPOList = rStatEventOrgDPOService.list(queryWrapper1);
|
||||||
|
int event_count_all = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventCount).sum();
|
||||||
|
int event_measurement_all = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventMeasurement).sum();
|
||||||
|
double event_measurement_avg = rStatEventOrgDPOList.stream().mapToInt(RStatEventOrgDPO::getEventMeasurement).average().getAsDouble();
|
||||||
|
|
||||||
|
double asDouble = rStatEventOrgDPOList.stream().mapToDouble(RStatEventOrgDPO::getEventMeasurementRatio).average().getAsDouble();
|
||||||
|
|
||||||
|
queryWrapper2.clear();
|
||||||
|
queryWrapper2.
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",v.getId()).
|
||||||
|
eq("event_type",dictData.getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatEventOrgMPO> rStatEventOrgMPOList = rStatEventOrgMPOService.list(queryWrapper2);
|
||||||
|
|
||||||
|
double event_measurement_average = rStatEventOrgMPOList.stream().mapToDouble(RStatEventOrgMPO::getEventMeasurementAverage).average().getAsDouble();
|
||||||
|
double event_measurement_ratio_average = rStatEventOrgMPOList.stream().mapToDouble(RStatEventOrgMPO::getEventMeasurementRatioAverage).average().getAsDouble();
|
||||||
|
|
||||||
|
int event_count = rStatEventOrgMPOList.stream().mapToInt(RStatEventOrgMPO::getEventCount).sum();
|
||||||
|
|
||||||
|
RStatEventOrgYPO rStatEventOrgYPO = new RStatEventOrgYPO();
|
||||||
|
rStatEventOrgYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventOrgYPO.setDataDate(localDate);
|
||||||
|
rStatEventOrgYPO.setEventType(dictData.getId());
|
||||||
|
rStatEventOrgYPO.setDataType(v.getId());
|
||||||
|
rStatEventOrgYPO.setEventMeasurementAverage(Float.parseFloat( df.format(event_measurement_average)));
|
||||||
|
rStatEventOrgYPO.setEventMeasurementAccrued(sum_event_measurement);
|
||||||
|
rStatEventOrgYPO.setEventCount(event_count);
|
||||||
|
rStatEventOrgYPO.setEventMeasurementRatioAverage(Float.parseFloat( df.format(event_measurement_ratio_average)));
|
||||||
|
if (finalSumEffectiveMeasurement == 0) {
|
||||||
|
rStatEventOrgYPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)sum_event_measurement)/ finalSumEffectiveMeasurement);
|
||||||
|
rStatEventOrgYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (event_measurement_all == 0) {
|
||||||
|
rStatEventOrgYPO.setEventFreq(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(((float)event_count_all)/ event_measurement_all);
|
||||||
|
rStatEventOrgYPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rStatEventOrgYPOS.add(rStatEventOrgYPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventOrgYPOS)) {
|
||||||
|
rStatEventOrgYPOService.saveOrUpdateBatchByMultiId(rStatEventOrgYPOS, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//天表
|
//天表
|
||||||
public void rStartEventOrgDHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void rStartEventOrgDHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatEventOrgDPO> rStatEventOrgDPOS = new ArrayList<>();
|
List<RStatEventOrgDPO> rStatEventOrgDPOS = new ArrayList<>();
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
@@ -9,6 +12,7 @@ import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
|
|||||||
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.area.RStatOrgMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
||||||
@@ -75,6 +79,852 @@ public class RStatEventServiceImpl implements RStatEventService {
|
|||||||
|
|
||||||
private final RStatOrgYMapper rStatOrgYMapper;
|
private final RStatOrgYMapper rStatOrgYMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventDPO> rStatEventDPOList = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
QueryWrapper<RMpEventDetailDPO> rMpEventDetailDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailDPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailDPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<Integer> transientStatisData = getTransientStatisData(dictData, rMpEventDetailDPOS);
|
||||||
|
RStatEventDPO rStatEventDPO = new RStatEventDPO();
|
||||||
|
rStatEventDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventDPO.setDataDate(localDate);
|
||||||
|
rStatEventDPO.setMeasurementTypeClass(k);
|
||||||
|
rStatEventDPO.setEventType(dictData.getId());
|
||||||
|
rStatEventDPO.setEventMeasurement(transientStatisData.get(0));
|
||||||
|
rStatEventDPO.setEventCount(transientStatisData.get(1));
|
||||||
|
rStatEventDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
if (Objects.isNull(rStatOrgDPO)) {
|
||||||
|
rStatEventDPO.setEventMeasurementRatio(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
|
||||||
|
rStatEventDPO.setEventMeasurementRatio(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatEventDPO.getEventMeasurement() / rStatOrgDPO.getEffectiveMeasurement().floatValue());
|
||||||
|
rStatEventDPO.setEventMeasurementRatio(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rStatEventDPOList.add(rStatEventDPO);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*配网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailDPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailDPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<Integer> transientStatisData = getTransientStatisData(dictData, rMpEventDetailDPOS);
|
||||||
|
RStatEventDPO rStatEventDPO = new RStatEventDPO();
|
||||||
|
rStatEventDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventDPO.setDataDate(localDate);
|
||||||
|
rStatEventDPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatEventDPO.setEventType(dictData.getId());
|
||||||
|
rStatEventDPO.setEventMeasurement(transientStatisData.get(0));
|
||||||
|
rStatEventDPO.setEventCount(transientStatisData.get(1));
|
||||||
|
rStatEventDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
if (Objects.isNull(rStatOrgDPO)) {
|
||||||
|
rStatEventDPO.setEventMeasurementRatio(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
|
||||||
|
rStatEventDPO.setEventMeasurementRatio(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatEventDPO.getEventMeasurement() / rStatOrgDPO.getEffectiveMeasurement().floatValue());
|
||||||
|
rStatEventDPO.setEventMeasurementRatio(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventDPOList.add(rStatEventDPO);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventDPOList)) {
|
||||||
|
rStatEventDPOService.saveOrUpdateBatchByMultiId(rStatEventDPOList, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventMPO> rStatEventMPOList = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
//详情表
|
||||||
|
QueryWrapper<RMpEventDetailMPO> rMpEventDetailMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//org表
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//天表
|
||||||
|
QueryWrapper<RStatEventDPO> rStatEventDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventDPOQueryWrapper.clear();
|
||||||
|
rStatEventDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end).
|
||||||
|
eq("measurement_type_class",k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
//求各个类型的平均值
|
||||||
|
Map<String, Double> avgEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_measurement的和
|
||||||
|
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_count
|
||||||
|
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_measurement_ratio
|
||||||
|
Map<String, Double> avgEMR = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingDouble(RStatEventDPO::getEventMeasurementRatio)));
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
Integer statisData = getStatisData(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventMPO rStatEventMPO = new RStatEventMPO();
|
||||||
|
rStatEventMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventMPO.setDataDate(localDate);
|
||||||
|
rStatEventMPO.setMeasurementTypeClass(k);
|
||||||
|
rStatEventMPO.setEventType(dictData.getId());
|
||||||
|
rStatEventMPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEM.get(dictData.getId()))));
|
||||||
|
rStatEventMPO.setEventMeasurementAccrued(statisData);
|
||||||
|
rStatEventMPO.setEventCount(sumEC.get(dictData.getId()));
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMR.get(dictData.getId()))));
|
||||||
|
rStatEventMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
if (sumEM.get(dictData.getId()) == 0) {
|
||||||
|
rStatEventMPO.setEventFreq(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
|
||||||
|
rStatEventMPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(rStatOrgMPO)) {
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventMPOList.add(rStatEventMPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*配网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventDPOQueryWrapper.clear();
|
||||||
|
rStatEventDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
//求各个类型的平均值
|
||||||
|
Map<String, Double> avgEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_measurement的和
|
||||||
|
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_count
|
||||||
|
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_measurement_ratio
|
||||||
|
Map<String, Double> avgEMR = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingDouble(RStatEventDPO::getEventMeasurementRatio)));
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
Integer statisData = getStatisData(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventMPO rStatEventMPO = new RStatEventMPO();
|
||||||
|
rStatEventMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventMPO.setDataDate(localDate);
|
||||||
|
rStatEventMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatEventMPO.setEventType(dictData.getId());
|
||||||
|
rStatEventMPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEM.get(dictData.getId()))));
|
||||||
|
rStatEventMPO.setEventMeasurementAccrued(statisData);
|
||||||
|
rStatEventMPO.setEventCount(sumEC.get(dictData.getId()));
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMR.get(dictData.getId()))));
|
||||||
|
rStatEventMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
if (sumEM.get(dictData.getId()) == 0) {
|
||||||
|
rStatEventMPO.setEventFreq(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
|
||||||
|
rStatEventMPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(rStatOrgMPO)) {
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventMPOList.add(rStatEventMPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventMPOList)) {
|
||||||
|
rStatEventMPOService.saveOrUpdateBatchByMultiId(rStatEventMPOList, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventQPO> rStatEventQPOList = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
//详情表
|
||||||
|
QueryWrapper<RMpEventDetailMPO> rMpEventDetailMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//org季表
|
||||||
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//天表
|
||||||
|
QueryWrapper<RStatEventDPO> rStatEventDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//月表
|
||||||
|
QueryWrapper<RStatEventMPO> rStatEventMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
//季表
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
;
|
||||||
|
RStatOrgQPO rStatOrgQPO = rStatOrgQMapper.selectOne(rStatOrgQPOQueryWrapper);
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventDPOQueryWrapper.clear();
|
||||||
|
rStatEventDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||||
|
|
||||||
|
//月表
|
||||||
|
rStatEventMPOQueryWrapper.clear();
|
||||||
|
rStatEventMPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventMPO> rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper);
|
||||||
|
|
||||||
|
//求各个类型的平均值(月表)
|
||||||
|
Map<String, Double> avgEMM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage)));
|
||||||
|
|
||||||
|
//event_measurement的和
|
||||||
|
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_count(天表)
|
||||||
|
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_count(月表)
|
||||||
|
Map<String, Integer> sumECM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_measurement_ratio_average(月表)
|
||||||
|
Map<String, Double> avgEMRM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage)));
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventQPO rStatEventQPO = new RStatEventQPO();
|
||||||
|
rStatEventQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventQPO.setDataDate(localDate);
|
||||||
|
rStatEventQPO.setMeasurementTypeClass(k);
|
||||||
|
rStatEventQPO.setEventType(dictData.getId());
|
||||||
|
rStatEventQPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId()))));
|
||||||
|
// todo
|
||||||
|
rStatEventQPO.setEventMeasurementAccrued(statisData);
|
||||||
|
rStatEventQPO.setEventCount(sumECM.get(dictData.getId()));
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId()))));
|
||||||
|
rStatEventQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
if (sumEM.get(dictData.getId()) == 0) {
|
||||||
|
rStatEventQPO.setEventFreq(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
|
||||||
|
rStatEventQPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(rStatOrgQPO)) {
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(statisData / rStatOrgQPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventQPOList.add(rStatEventQPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*配网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
//季表
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
;
|
||||||
|
RStatOrgQPO rStatOrgQPO = rStatOrgQMapper.selectOne(rStatOrgQPOQueryWrapper);
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventDPOQueryWrapper.clear();
|
||||||
|
rStatEventDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||||
|
|
||||||
|
//月表
|
||||||
|
rStatEventMPOQueryWrapper.clear();
|
||||||
|
rStatEventMPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
List<RStatEventMPO> rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper);
|
||||||
|
|
||||||
|
//求各个类型的平均值(月表)
|
||||||
|
Map<String, Double> avgEMM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage)));
|
||||||
|
|
||||||
|
//event_measurement的和
|
||||||
|
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_count(天表)
|
||||||
|
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_count(月表)
|
||||||
|
Map<String, Integer> sumECM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_measurement_ratio_average(月表)
|
||||||
|
Map<String, Double> avgEMRM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage)));
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventQPO rStatEventQPO = new RStatEventQPO();
|
||||||
|
rStatEventQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventQPO.setDataDate(localDate);
|
||||||
|
rStatEventQPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatEventQPO.setEventType(dictData.getId());
|
||||||
|
rStatEventQPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId()))));
|
||||||
|
// todo
|
||||||
|
rStatEventQPO.setEventMeasurementAccrued(statisData);
|
||||||
|
rStatEventQPO.setEventCount(sumECM.get(dictData.getId()));
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId()))));
|
||||||
|
rStatEventQPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
if (sumEM.get(dictData.getId()) == 0) {
|
||||||
|
rStatEventQPO.setEventFreq(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
|
||||||
|
rStatEventQPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(rStatOrgQPO)) {
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(statisData / rStatOrgQPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventQPOList.add(rStatEventQPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventQPOList)) {
|
||||||
|
rStatEventQPOService.saveOrUpdateBatchByMultiId(rStatEventQPOList, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventYPO> rStatEventYPOList = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
//详情表
|
||||||
|
QueryWrapper<RMpEventDetailMPO> rMpEventDetailMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//org年表
|
||||||
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//天表
|
||||||
|
QueryWrapper<RStatEventDPO> rStatEventDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//月表
|
||||||
|
QueryWrapper<RStatEventMPO> rStatEventMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
//年表
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
|
||||||
|
RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper);
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventDPOQueryWrapper.clear();
|
||||||
|
rStatEventDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class",k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||||
|
|
||||||
|
//月表
|
||||||
|
rStatEventMPOQueryWrapper.clear();
|
||||||
|
rStatEventMPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class",k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventMPO> rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper);
|
||||||
|
|
||||||
|
//求各个类型的平均值(月表)
|
||||||
|
Map<String, Double> avgEMM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage)));
|
||||||
|
|
||||||
|
//event_measurement的和
|
||||||
|
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_count(天表)
|
||||||
|
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_count(月表)
|
||||||
|
Map<String, Integer> sumECM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_measurement_ratio_average(月表)
|
||||||
|
Map<String, Double> avgEMRM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage)));
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventYPO rStatEventYPO = new RStatEventYPO();
|
||||||
|
rStatEventYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventYPO.setDataDate(localDate);
|
||||||
|
rStatEventYPO.setMeasurementTypeClass(k);
|
||||||
|
rStatEventYPO.setEventType(dictData.getId());
|
||||||
|
rStatEventYPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId()))));
|
||||||
|
// todo
|
||||||
|
rStatEventYPO.setEventMeasurementAccrued(statisData);
|
||||||
|
rStatEventYPO.setEventCount(sumECM.get(dictData.getId()));
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId()))));
|
||||||
|
rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
if (sumEM.get(dictData.getId()) == 0) {
|
||||||
|
rStatEventYPO.setEventFreq(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
|
||||||
|
rStatEventYPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(rStatOrgYPO)) {
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventYPOList.add(rStatEventYPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*配网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
//年表
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
between("data_date", begin, end);
|
||||||
|
|
||||||
|
RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper);
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventDPOQueryWrapper.clear();
|
||||||
|
rStatEventDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||||
|
|
||||||
|
//月表
|
||||||
|
rStatEventMPOQueryWrapper.clear();
|
||||||
|
rStatEventMPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date", begin, end).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
List<RStatEventMPO> rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper);
|
||||||
|
|
||||||
|
//求各个类型的平均值(月表)
|
||||||
|
Map<String, Double> avgEMM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage)));
|
||||||
|
|
||||||
|
//event_measurement的和
|
||||||
|
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||||
|
|
||||||
|
//event_count(天表)
|
||||||
|
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_count(月表)
|
||||||
|
Map<String, Integer> sumECM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount)));
|
||||||
|
|
||||||
|
//event_measurement_ratio_average(月表)
|
||||||
|
Map<String, Double> avgEMRM = rStatEventMPO.stream()
|
||||||
|
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage)));
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventYPO rStatEventYPO = new RStatEventYPO();
|
||||||
|
rStatEventYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventYPO.setDataDate(localDate);
|
||||||
|
rStatEventYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatEventYPO.setEventType(dictData.getId());
|
||||||
|
rStatEventYPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId()))));
|
||||||
|
// todo
|
||||||
|
rStatEventYPO.setEventMeasurementAccrued(statisData);
|
||||||
|
rStatEventYPO.setEventCount(sumECM.get(dictData.getId()));
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId()))));
|
||||||
|
rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
if (sumEM.get(dictData.getId()) == 0) {
|
||||||
|
rStatEventYPO.setEventFreq(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
|
||||||
|
rStatEventYPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(rStatOrgYPO)) {
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventYPOList.add(rStatEventYPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventYPOList)) {
|
||||||
|
rStatEventYPOService.saveOrUpdateBatchByMultiId(rStatEventYPOList, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -95,6 +945,8 @@ public class RStatEventServiceImpl implements RStatEventService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//天表
|
//天表
|
||||||
public void rStartEventDHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void rStartEventDHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatEventDPO> rStatEventDPOList = new ArrayList<>();
|
List<RStatEventDPO> rStatEventDPOList = new ArrayList<>();
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.harmonic.pojo.po.*;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.area.RStatOrgMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper;
|
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.line.RMpEventDetailMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventVoltageDPOMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventVoltageDPOMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpEventDetailPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.*;
|
import com.njcn.prepare.harmonic.pojo.po.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
@@ -23,6 +28,7 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
@@ -60,6 +66,439 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
|
|||||||
private final RStatOrgMMapper rStatOrgMMapper;
|
private final RStatOrgMMapper rStatOrgMMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventVoltageDPO> rStatEventVoltageDPOS = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点电压等级*/
|
||||||
|
List<DictData> voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
|
||||||
|
Map<String, DictData> voltageMap = voltageList.stream().collect(Collectors.toMap(DictData::getValue, dictData -> dictData));
|
||||||
|
|
||||||
|
QueryWrapper<RMpEventDetailDPO> rMpEventDetailDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailDPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailDPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Integer> transientStatisData = getTransientStatisDataNew(dictData, rMpEventDetailDPOS);
|
||||||
|
RStatEventVoltageDPO rStatEventVoltageDPO = new RStatEventVoltageDPO();
|
||||||
|
rStatEventVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventVoltageDPO.setDataDate(localDate);
|
||||||
|
rStatEventVoltageDPO.setMeasurementTypeClass(k);
|
||||||
|
rStatEventVoltageDPO.setEventType(dictData.getId());
|
||||||
|
rStatEventVoltageDPO.setVoltageType(k1);
|
||||||
|
rStatEventVoltageDPO.setEventMeasurement(transientStatisData.get(0));
|
||||||
|
rStatEventVoltageDPO.setEventCount(transientStatisData.get(1));
|
||||||
|
rStatEventVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
if (Objects.isNull(rStatOrgDPO)) {
|
||||||
|
rStatEventVoltageDPO.setEventMeasurementRatio(0.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
|
||||||
|
rStatEventVoltageDPO.setEventMeasurementRatio(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatEventVoltageDPO.getEventMeasurement() / rStatOrgDPO.getEffectiveMeasurement().floatValue());
|
||||||
|
rStatEventVoltageDPO.setEventMeasurementRatio(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventVoltageDPOS.add(rStatEventVoltageDPO);
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*配网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
List<String> collect1 = v1.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
rMpEventDetailDPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailDPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
eq("data_date",localDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<Integer> transientStatisData = getTransientStatisDataNew(dictData, rMpEventDetailDPOS);
|
||||||
|
RStatEventVoltageDPO rStatEventVoltageDPO = new RStatEventVoltageDPO();
|
||||||
|
rStatEventVoltageDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventVoltageDPO.setDataDate(localDate);
|
||||||
|
rStatEventVoltageDPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatEventVoltageDPO.setEventType(dictData.getId());
|
||||||
|
rStatEventVoltageDPO.setVoltageType(k1);
|
||||||
|
rStatEventVoltageDPO.setEventMeasurement(transientStatisData.get(0));
|
||||||
|
rStatEventVoltageDPO.setEventCount(transientStatisData.get(1));
|
||||||
|
rStatEventVoltageDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
if (Objects.isNull(rStatOrgDPO)) {
|
||||||
|
rStatEventVoltageDPO.setEventMeasurementRatio(0.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
|
||||||
|
rStatEventVoltageDPO.setEventMeasurementRatio(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatEventVoltageDPO.getEventMeasurement() / rStatOrgDPO.getEffectiveMeasurement().floatValue());
|
||||||
|
rStatEventVoltageDPO.setEventMeasurementRatio(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventVoltageDPOS.add(rStatEventVoltageDPO);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventVoltageDPOS)) {
|
||||||
|
rStatEventVoltageDPOService.saveOrUpdateBatchByMultiId(rStatEventVoltageDPOS, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Integer> getTransientStatisDataNew(DictData dictData, List<RMpEventDetailDPO> rMpEventDetailDPOS) {
|
||||||
|
List<Integer> result = new ArrayList<>(2);
|
||||||
|
Integer value = 0;
|
||||||
|
Integer count = 0;
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_DIP.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpEventDetailDPOS.stream().filter(temp -> temp.getSagTimes() > 0).count() + "");
|
||||||
|
count = Integer.valueOf(rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum() + "");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_RISE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpEventDetailDPOS.stream().filter(temp -> temp.getSwellTimes() > 0).count() + "");
|
||||||
|
count = Integer.valueOf(rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum() + "");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.SHORT_INTERRUPTIONS.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpEventDetailDPOS.stream().filter(temp -> temp.getInterruptTimes() > 0).count() + "");
|
||||||
|
count = Integer.valueOf(rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum() + "");
|
||||||
|
}
|
||||||
|
result.add(value);
|
||||||
|
result.add(count);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RStatEventVoltageMPO> rStatEventVoltageMPOS = new ArrayList<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
|
||||||
|
/*获取暂态统计指标*/
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
/*获取监测点电压等级*/
|
||||||
|
List<DictData> voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
|
||||||
|
Map<String, DictData> voltageMap = voltageList.stream().collect(Collectors.toMap(DictData::getValue, dictData -> dictData));
|
||||||
|
|
||||||
|
//详情表
|
||||||
|
QueryWrapper<RMpEventDetailMPO> rMpEventDetailMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//org表
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
//天表
|
||||||
|
QueryWrapper<RStatEventVoltageDPO> rStatEventVoltageDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
calculatedParam.getIdList().forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//天表
|
||||||
|
rStatEventVoltageDPOQueryWrapper.clear();
|
||||||
|
rStatEventVoltageDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("event_type", dictData.getId()).
|
||||||
|
eq("voltage_type",k1).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventVoltageDPO> rStatEventVoltageDPOS = rStatEventVoltageDPOMapper.selectList(rStatEventVoltageDPOQueryWrapper);
|
||||||
|
|
||||||
|
//累计发生暂态监测点数
|
||||||
|
List<Integer> transientStatisDataNew = getTransientStatisDataNewByM(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
RStatEventVoltageMPO rStatEventVoltageMPO = new RStatEventVoltageMPO();
|
||||||
|
rStatEventVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventVoltageMPO.setDataDate(localDate);
|
||||||
|
rStatEventVoltageMPO.setMeasurementTypeClass(k);
|
||||||
|
rStatEventVoltageMPO.setEventType(dictData.getId());
|
||||||
|
rStatEventVoltageMPO.setVoltageType(k1);
|
||||||
|
rStatEventVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
/*3、日均发生暂态监测点数*/
|
||||||
|
double asDouble = rStatEventVoltageDPOS.stream().mapToDouble(RStatEventVoltageDPO::getEventMeasurement).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementAverage(Float.parseFloat(asDouble+""));
|
||||||
|
|
||||||
|
/*4、累计发生暂态监测点数*/
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementAccrued(transientStatisDataNew.get(0));
|
||||||
|
|
||||||
|
int eventMeasurementsum = rStatEventVoltageDPOS.stream().mapToInt(RStatEventVoltageDPO::getEventMeasurement).sum();
|
||||||
|
int eventCountsum = rStatEventVoltageDPOS.stream().mapToInt(RStatEventVoltageDPO::getEventCount).sum();
|
||||||
|
/*5、暂态指标发生频次*/
|
||||||
|
if (eventMeasurementsum==0){
|
||||||
|
rStatEventVoltageMPO.setEventFreq(0.00f);
|
||||||
|
}else {
|
||||||
|
String value = df.format((float) eventCountsum / eventMeasurementsum);
|
||||||
|
rStatEventVoltageMPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*6、暂态指标发生次数*/
|
||||||
|
rStatEventVoltageMPO.setEventCount(eventCountsum);
|
||||||
|
/*7、日均发生暂态监测点数占比*/
|
||||||
|
double asDouble2 = rStatEventVoltageDPOS.stream().mapToDouble(RStatEventVoltageDPO::getEventMeasurementRatio).average().getAsDouble();
|
||||||
|
asDouble2 = BigDecimal.valueOf(asDouble2).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAverage(Float.parseFloat(asDouble2+""));
|
||||||
|
|
||||||
|
if (Objects.isNull(rStatOrgMPO)) {
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatEventVoltageMPO.getEventMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventVoltageMPOS.add(rStatEventVoltageMPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*配网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
Map<String, List<LineDevGetDTO>> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||||
|
|
||||||
|
collect2.forEach((k1, v1) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
rMpEventDetailMPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailMPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.select("effective_measurement_accrued").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper);
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//天表
|
||||||
|
rStatEventVoltageDPOQueryWrapper.clear();
|
||||||
|
rStatEventVoltageDPOQueryWrapper.
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
between("data_date",begin,end).
|
||||||
|
eq("measurement_type_class", k).
|
||||||
|
eq("event_type", dictData.getId()).
|
||||||
|
eq("voltage_type",k1).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
List<RStatEventVoltageDPO> rStatEventVoltageDPOS = rStatEventVoltageDPOMapper.selectList(rStatEventVoltageDPOQueryWrapper);
|
||||||
|
|
||||||
|
RStatEventVoltageMPO rStatEventVoltageMPO = new RStatEventVoltageMPO();
|
||||||
|
rStatEventVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatEventVoltageMPO.setDataDate(localDate);
|
||||||
|
rStatEventVoltageMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatEventVoltageMPO.setEventType(dictData.getId());
|
||||||
|
rStatEventVoltageMPO.setVoltageType(k1);
|
||||||
|
rStatEventVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
|
||||||
|
List<Integer> transientStatisDataNew = getTransientStatisDataNewByM(dictData, rMpEventDetailMPOS);
|
||||||
|
|
||||||
|
/*3、日均发生暂态监测点数*/
|
||||||
|
double asDouble = rStatEventVoltageDPOS.stream().mapToDouble(RStatEventVoltageDPO::getEventMeasurement).average().getAsDouble();
|
||||||
|
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementAverage(Float.parseFloat(asDouble+""));
|
||||||
|
|
||||||
|
/*4、累计发生暂态监测点数*/
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementAccrued(transientStatisDataNew.get(0));
|
||||||
|
|
||||||
|
int eventMeasurementsum = rStatEventVoltageDPOS.stream().mapToInt(RStatEventVoltageDPO::getEventMeasurement).sum();
|
||||||
|
int eventCountsum = rStatEventVoltageDPOS.stream().mapToInt(RStatEventVoltageDPO::getEventCount).sum();
|
||||||
|
/*5、暂态指标发生频次*/
|
||||||
|
if (eventMeasurementsum==0){
|
||||||
|
rStatEventVoltageMPO.setEventFreq(0.00f);
|
||||||
|
}else {
|
||||||
|
String value = df.format((float) eventCountsum / eventMeasurementsum);
|
||||||
|
rStatEventVoltageMPO.setEventFreq(Float.parseFloat(value));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*6、暂态指标发生次数*/
|
||||||
|
rStatEventVoltageMPO.setEventCount(eventCountsum);
|
||||||
|
/*7、日均发生暂态监测点数占比*/
|
||||||
|
double asDouble2 = rStatEventVoltageDPOS.stream().mapToDouble(RStatEventVoltageDPO::getEventMeasurementRatio).average().getAsDouble();
|
||||||
|
asDouble2 = BigDecimal.valueOf(asDouble2).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAverage(Float.parseFloat(asDouble2+""));
|
||||||
|
|
||||||
|
if (Objects.isNull(rStatOrgMPO)) {
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAccrued(0.00f);
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatEventVoltageMPO.getEventMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued().floatValue());
|
||||||
|
rStatEventVoltageMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rStatEventVoltageMPOS.add(rStatEventVoltageMPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatEventVoltageMPOS)) {
|
||||||
|
rStatEventVoltageMPOService.saveOrUpdateBatchByMultiId(rStatEventVoltageMPOS, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Integer> getTransientStatisDataNewByM(DictData dictData, List<RMpEventDetailMPO> rMpEventDetailMPOS) {
|
||||||
|
List<Integer> result = new ArrayList<>(2);
|
||||||
|
Integer value = 0;
|
||||||
|
Integer count = 0;
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_DIP.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpEventDetailMPOS.stream().filter(temp -> temp.getSagTimes() > 0).count() + "");
|
||||||
|
count = Integer.valueOf(rMpEventDetailMPOS.stream().mapToInt(RMpEventDetailMPO::getSagTimes).sum() + "");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_RISE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpEventDetailMPOS.stream().filter(temp -> temp.getSwellTimes() > 0).count() + "");
|
||||||
|
count = Integer.valueOf(rMpEventDetailMPOS.stream().mapToInt(RMpEventDetailMPO::getSwellTimes).sum() + "");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.SHORT_INTERRUPTIONS.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpEventDetailMPOS.stream().filter(temp -> temp.getInterruptTimes() > 0).count() + "");
|
||||||
|
count = Integer.valueOf(rMpEventDetailMPOS.stream().mapToInt(RMpEventDetailMPO::getInterruptTimes).sum() + "");
|
||||||
|
}
|
||||||
|
result.add(value);
|
||||||
|
result.add(count);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**----------------------------------------------------------------------------------------------------------------**/
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -74,6 +513,8 @@ public class RStatEventVoltageServiceImpl implements RStatEventVoltageService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//天表
|
//天表
|
||||||
public void rStartEventVoltageDHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void rStartEventVoltageDHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
List<RStatEventVoltageDPO> rStatEventVoltageDPOS = new ArrayList<>();
|
List<RStatEventVoltageDPO> rStatEventVoltageDPOS = new ArrayList<>();
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.pms.pojo.po.RStatOrgPO;
|
import com.njcn.device.pms.pojo.po.RStatOrgPO;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
||||||
|
import com.njcn.prepare.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.*;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.*;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.*;
|
import com.njcn.prepare.harmonic.pojo.mysql.po.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicDPOService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicDPOService;
|
||||||
@@ -25,6 +30,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -57,6 +63,395 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
private final RStatOrgMMapper rStatOrgMMapper;
|
private final RStatOrgMMapper rStatOrgMMapper;
|
||||||
private final RStatOrgQMapper rStatOrgQMapper;
|
private final RStatOrgQMapper rStatOrgQMapper;
|
||||||
private final RStatOrgYMapper rStatOrgYMapper;
|
private final RStatOrgYMapper rStatOrgYMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
List<RStatLoadTypeDPO> result = new ArrayList<>();
|
||||||
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
|
//过滤监测对象类型(陆上风电、分布式光伏、电气化铁路、其他非线性负荷)
|
||||||
|
Map<String, DictData> collect = dataList.stream().filter(temp -> Objects.equals(temp.getLevel(), 1)).collect(Collectors.toMap(DictData::getId, dictData -> dictData));
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
Map<String, DictData> steadyStatisMap = steadyStatis.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().forEach(dept -> {
|
||||||
|
|
||||||
|
|
||||||
|
collect.forEach((m,n)->{
|
||||||
|
RStatLoadTypeDPO rStatLoadTypeDPO = new RStatLoadTypeDPO();
|
||||||
|
rStatLoadTypeDPO.setDataDate(localDate);
|
||||||
|
rStatLoadTypeDPO.setOrgNo(dept.getUnitId());
|
||||||
|
rStatLoadTypeDPO.setLoadType(m);
|
||||||
|
/*只计算谐波电压、谐波电流、三相电压不平衡度、负序电流/闪变*/
|
||||||
|
RStatHarmonicDPO one = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getUnitId()).
|
||||||
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId()).one();
|
||||||
|
if(Objects.nonNull(one)){
|
||||||
|
rStatLoadTypeDPO.setVRatio(one.getOverLimitMeasurementRatio());
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeDPO.setVRatio(0.00);
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO two = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getUnitId()).
|
||||||
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId()).one();
|
||||||
|
if(Objects.nonNull(two)){
|
||||||
|
rStatLoadTypeDPO.setIRatio(two.getOverLimitMeasurementRatio());
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeDPO.setIRatio(0.00);
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO three = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getUnitId()).
|
||||||
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId()).one();
|
||||||
|
if(Objects.nonNull(three)){
|
||||||
|
rStatLoadTypeDPO.setUnbalanceRatio(three.getOverLimitMeasurementRatio());
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeDPO.setUnbalanceRatio(0.00);
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO four = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getUnitId()).
|
||||||
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId()).one();
|
||||||
|
if(Objects.nonNull(four)){
|
||||||
|
rStatLoadTypeDPO.setINegRatio(four.getOverLimitMeasurementRatio());
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeDPO.setINegRatio(0.00);
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO five = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getUnitId()).
|
||||||
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.FLICKER.getCode()).getId()).one();
|
||||||
|
if(Objects.nonNull(five)){
|
||||||
|
rStatLoadTypeDPO.setFlickerRatio(five.getOverLimitMeasurementRatio());
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeDPO.setFlickerRatio(0.00);
|
||||||
|
}
|
||||||
|
result.add(rStatLoadTypeDPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if(CollectionUtil.isNotEmpty(result)){
|
||||||
|
rStatLoadTypeDPOService.saveOrUpdateBatchByMultiId(result,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
List<RStatLoadTypeMPO> result = new ArrayList<>();
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatLoadTypeDPO> rStatLoadTypeDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
|
//过滤监测对象类型(陆上风电、分布式光伏、电气化铁路、其他非线性负荷)
|
||||||
|
Map<String, DictData> collect = dataList.stream().filter(temp -> Objects.equals(temp.getLevel(), 1)).collect(Collectors.toMap(DictData::getId, dictData -> dictData));
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
Map<String, DictData> steadyStatisMap = steadyStatis.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().forEach(dept -> {
|
||||||
|
|
||||||
|
|
||||||
|
collect.forEach((m,n)->{
|
||||||
|
rStatOrgMPOQueryWrapper.clear();
|
||||||
|
rStatOrgMPOQueryWrapper.eq("measurement_type_class",m).
|
||||||
|
eq("org_no",dept.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgMPO> rStatOrgMPOS = rStatOrgMMapper.selectList(rStatOrgMPOQueryWrapper);
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("org_no",dept.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicMPO> rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper);
|
||||||
|
rStatLoadTypeDPOQueryWrapper.clear();
|
||||||
|
rStatLoadTypeDPOQueryWrapper.eq("org_no",dept.getUnitId()).
|
||||||
|
eq("load_type",m).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatLoadTypeDPO> rStatLoadTypeDPOS = rStatLoadTypeDPOService.getBaseMapper().selectList(rStatLoadTypeDPOQueryWrapper);
|
||||||
|
|
||||||
|
RStatLoadTypeMPO rStatLoadTypeMPO = new RStatLoadTypeMPO();
|
||||||
|
rStatLoadTypeMPO.setDataDate(localDate);
|
||||||
|
rStatLoadTypeMPO.setOrgNo(dept.getUnitId());
|
||||||
|
rStatLoadTypeMPO.setLoadType(m);
|
||||||
|
/*2、有效接入监测点数*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgMPOS)){
|
||||||
|
rStatLoadTypeMPO.setEffectiveMeasurement(0);
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeMPO.setEffectiveMeasurement(rStatOrgMPOS.get(0).getEffectiveMeasurementAccrued());
|
||||||
|
}
|
||||||
|
/*4、谐波电压超标点数6、谐波电流超标点数*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatHarmonicMPOS)){
|
||||||
|
rStatLoadTypeMPO.setVCount(0);
|
||||||
|
rStatLoadTypeMPO.setICount(0);
|
||||||
|
rStatLoadTypeMPO.setINegCount(0);
|
||||||
|
rStatLoadTypeMPO.setUnbalanceCount(0);
|
||||||
|
rStatLoadTypeMPO.setFlickerCount(0);
|
||||||
|
}else {
|
||||||
|
Optional<RStatHarmonicMPO> vfirst = rStatHarmonicMPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId())).findFirst();
|
||||||
|
rStatLoadTypeMPO.setVCount(vfirst.isPresent() ? vfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
Optional<RStatHarmonicMPO> ifirst = rStatHarmonicMPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId())).findFirst();
|
||||||
|
rStatLoadTypeMPO.setICount(ifirst.isPresent() ? ifirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
Optional<RStatHarmonicMPO> pfirst = rStatHarmonicMPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId())).findFirst();
|
||||||
|
Optional<RStatHarmonicMPO> nfirst = rStatHarmonicMPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId())).findFirst();
|
||||||
|
Optional<RStatHarmonicMPO> ffirst = rStatHarmonicMPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.FLICKER.getCode()).getId())).findFirst();
|
||||||
|
|
||||||
|
rStatLoadTypeMPO.setINegCount(nfirst.isPresent() ? nfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
rStatLoadTypeMPO.setUnbalanceCount(pfirst.isPresent() ? pfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
rStatLoadTypeMPO.setFlickerCount(ffirst.isPresent() ? ffirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
/*3、日均谐波电压超标点占比5、日均谐波电流超标点占比,7、日均三相电压不平衡度超标点占比9、日均负序电流超标点占比11、日均闪变超标点占比*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatLoadTypeDPOS)){
|
||||||
|
rStatLoadTypeMPO.setVAverage(0.00);
|
||||||
|
rStatLoadTypeMPO.setIAverage(0.00);
|
||||||
|
rStatLoadTypeMPO.setUnbalanceAverage(0.00);
|
||||||
|
rStatLoadTypeMPO.setFlickerAverage(0.00);
|
||||||
|
rStatLoadTypeMPO.setINegAverage(0.00);
|
||||||
|
}else {
|
||||||
|
double vavg = rStatLoadTypeDPOS.stream().mapToDouble(RStatLoadTypeDPO::getVRatio).average().getAsDouble();
|
||||||
|
rStatLoadTypeMPO.setVAverage(vavg);
|
||||||
|
double iavge = rStatLoadTypeDPOS.stream().mapToDouble(RStatLoadTypeDPO::getIRatio).average().getAsDouble();
|
||||||
|
rStatLoadTypeMPO.setIAverage(iavge);
|
||||||
|
double uavge = rStatLoadTypeDPOS.stream().mapToDouble(RStatLoadTypeDPO::getUnbalanceRatio).average().getAsDouble();
|
||||||
|
rStatLoadTypeMPO.setUnbalanceAverage(uavge);
|
||||||
|
double inavge = rStatLoadTypeDPOS.stream().mapToDouble(RStatLoadTypeDPO::getINegRatio).average().getAsDouble();
|
||||||
|
double favg = rStatLoadTypeDPOS.stream().mapToDouble(RStatLoadTypeDPO::getFlickerRatio).average().getAsDouble();
|
||||||
|
rStatLoadTypeMPO.setFlickerAverage(favg);
|
||||||
|
rStatLoadTypeMPO.setINegAverage(inavge);
|
||||||
|
|
||||||
|
}
|
||||||
|
result.add(rStatLoadTypeMPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(result)){
|
||||||
|
rStatLoadTypeMPOService.saveOrUpdateBatchByMultiId(result,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
List<RStatLoadTypeQPO> result = new ArrayList<>();
|
||||||
|
QueryWrapper<RStatHarmonicQPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatLoadTypeMPO> rStatLoadTypeMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
|
//过滤监测对象类型(陆上风电、分布式光伏、电气化铁路、其他非线性负荷)
|
||||||
|
Map<String, DictData> collect = dataList.stream().filter(temp -> Objects.equals(temp.getLevel(), 1)).collect(Collectors.toMap(DictData::getId, dictData -> dictData));
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
Map<String, DictData> steadyStatisMap = steadyStatis.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().forEach(dept -> {
|
||||||
|
|
||||||
|
|
||||||
|
collect.forEach((m,n)->{
|
||||||
|
rStatOrgQPOQueryWrapper.clear();
|
||||||
|
rStatOrgQPOQueryWrapper.eq("measurement_type_class",m).
|
||||||
|
eq("org_no",dept.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgQPO> rStatOrgQPOS = rStatOrgQMapper.selectList(rStatOrgQPOQueryWrapper);
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("org_no",dept.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicQPO> rStatHarmonicQPOS = rStatHarmonicQPOMapper.selectList(queryWrapper);
|
||||||
|
rStatLoadTypeMPOQueryWrapper.clear();
|
||||||
|
rStatLoadTypeMPOQueryWrapper.eq("org_no",dept.getUnitId()).
|
||||||
|
eq("load_type",m).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatLoadTypeMPO> rStatLoadTypeMPOS = rStatLoadTypeMPOService.getBaseMapper().selectList(rStatLoadTypeMPOQueryWrapper);
|
||||||
|
|
||||||
|
RStatLoadTypeQPO rStatLoadTypeQPO = new RStatLoadTypeQPO();
|
||||||
|
rStatLoadTypeQPO.setDataDate(localDate);
|
||||||
|
rStatLoadTypeQPO.setOrgNo(dept.getUnitId());
|
||||||
|
rStatLoadTypeQPO.setLoadType(m);
|
||||||
|
/*2、有效接入监测点数*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgQPOS)){
|
||||||
|
rStatLoadTypeQPO.setEffectiveMeasurement(0);
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeQPO.setEffectiveMeasurement(rStatOrgQPOS.get(0).getEffectiveMeasurementAccrued());
|
||||||
|
}
|
||||||
|
/*4、谐波电压超标点数6、谐波电流超标点数*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatHarmonicQPOS)){
|
||||||
|
rStatLoadTypeQPO.setVCount(0);
|
||||||
|
rStatLoadTypeQPO.setICount(0);
|
||||||
|
rStatLoadTypeQPO.setINegCount(0);
|
||||||
|
rStatLoadTypeQPO.setUnbalanceCount(0);
|
||||||
|
rStatLoadTypeQPO.setFlickerCount(0);
|
||||||
|
}else {
|
||||||
|
Optional<RStatHarmonicQPO> vfirst = rStatHarmonicQPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId())).findFirst();
|
||||||
|
rStatLoadTypeQPO.setVCount(vfirst.isPresent() ? vfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
Optional<RStatHarmonicQPO> ifirst = rStatHarmonicQPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId())).findFirst();
|
||||||
|
rStatLoadTypeQPO.setICount(ifirst.isPresent() ? ifirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
Optional<RStatHarmonicQPO> pfirst = rStatHarmonicQPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId())).findFirst();
|
||||||
|
Optional<RStatHarmonicQPO> nfirst = rStatHarmonicQPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId())).findFirst();
|
||||||
|
Optional<RStatHarmonicQPO> ffirst = rStatHarmonicQPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.FLICKER.getCode()).getId())).findFirst();
|
||||||
|
|
||||||
|
rStatLoadTypeQPO.setINegCount(nfirst.isPresent() ? nfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
rStatLoadTypeQPO.setUnbalanceCount(pfirst.isPresent() ? pfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
rStatLoadTypeQPO.setFlickerCount(ffirst.isPresent() ? ffirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
/*3、日均谐波电压超标点占比5、日均谐波电流超标点占比,7、日均三相电压不平衡度超标点占比9、日均负序电流超标点占比11、日均闪变超标点占比*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatLoadTypeMPOS)){
|
||||||
|
rStatLoadTypeQPO.setVAverage(0.00);
|
||||||
|
rStatLoadTypeQPO.setIAverage(0.00);
|
||||||
|
rStatLoadTypeQPO.setUnbalanceAverage(0.00);
|
||||||
|
rStatLoadTypeQPO.setFlickerAverage(0.00);
|
||||||
|
rStatLoadTypeQPO.setINegAverage(0.00);
|
||||||
|
}else {
|
||||||
|
double vavg = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getVAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeQPO.setVAverage(vavg);
|
||||||
|
double iavge = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getIAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeQPO.setIAverage(iavge);
|
||||||
|
double uavge = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getUnbalanceAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeQPO.setUnbalanceAverage(uavge);
|
||||||
|
double inavge = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getINegAverage).average().getAsDouble();
|
||||||
|
double favg = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getFlickerAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeQPO.setFlickerAverage(favg);
|
||||||
|
rStatLoadTypeQPO.setINegAverage(inavge);
|
||||||
|
|
||||||
|
}
|
||||||
|
result.add(rStatLoadTypeQPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(result)){
|
||||||
|
rStatLoadTypeQPOService.saveOrUpdateBatchByMultiId(result,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
|
||||||
|
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
|
||||||
|
List<RStatLoadTypeYPO> result = new ArrayList<>();
|
||||||
|
QueryWrapper<RStatHarmonicYPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatLoadTypeMPO> rStatLoadTypeMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
|
//过滤监测对象类型(陆上风电、分布式光伏、电气化铁路、其他非线性负荷)
|
||||||
|
Map<String, DictData> collect = dataList.stream().filter(temp -> Objects.equals(temp.getLevel(), 1)).collect(Collectors.toMap(DictData::getId, dictData -> dictData));
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
Map<String, DictData> steadyStatisMap = steadyStatis.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
calculatedParam.getIdList().forEach(dept -> {
|
||||||
|
|
||||||
|
|
||||||
|
collect.forEach((m,n)->{
|
||||||
|
rStatOrgYPOQueryWrapper.clear();
|
||||||
|
rStatOrgYPOQueryWrapper.eq("measurement_type_class",m).
|
||||||
|
eq("org_no",dept.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatOrgYPO> rStatOrgYPOS = rStatOrgYMapper.selectList(rStatOrgYPOQueryWrapper);
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("org_no",dept.getUnitId()).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatHarmonicYPO> rStatHarmonicYPOS = rStatHarmonicYPOMapper.selectList(queryWrapper);
|
||||||
|
rStatLoadTypeMPOQueryWrapper.clear();
|
||||||
|
rStatLoadTypeMPOQueryWrapper.eq("org_no",dept.getUnitId()).
|
||||||
|
eq("load_type",m).
|
||||||
|
between("data_date",begin,end);
|
||||||
|
List<RStatLoadTypeMPO> rStatLoadTypeMPOS = rStatLoadTypeMPOService.getBaseMapper().selectList(rStatLoadTypeMPOQueryWrapper);
|
||||||
|
|
||||||
|
RStatLoadTypeYPO rStatLoadTypeYPO = new RStatLoadTypeYPO();
|
||||||
|
rStatLoadTypeYPO.setDataDate(localDate);
|
||||||
|
rStatLoadTypeYPO.setOrgNo(dept.getUnitId());
|
||||||
|
rStatLoadTypeYPO.setLoadType(m);
|
||||||
|
/*2、有效接入监测点数*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatOrgYPOS)){
|
||||||
|
rStatLoadTypeYPO.setEffectiveMeasurement(0);
|
||||||
|
}else {
|
||||||
|
rStatLoadTypeYPO.setEffectiveMeasurement(rStatOrgYPOS.get(0).getEffectiveMeasurementAccrued());
|
||||||
|
}
|
||||||
|
/*4、谐波电压超标点数6、谐波电流超标点数*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatHarmonicYPOS)){
|
||||||
|
rStatLoadTypeYPO.setVCount(0);
|
||||||
|
rStatLoadTypeYPO.setICount(0);
|
||||||
|
rStatLoadTypeYPO.setINegCount(0);
|
||||||
|
rStatLoadTypeYPO.setUnbalanceCount(0);
|
||||||
|
rStatLoadTypeYPO.setFlickerCount(0);
|
||||||
|
}else {
|
||||||
|
Optional<RStatHarmonicYPO> vfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId())).findFirst();
|
||||||
|
rStatLoadTypeYPO.setVCount(vfirst.isPresent() ? vfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
Optional<RStatHarmonicYPO> ifirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId())).findFirst();
|
||||||
|
rStatLoadTypeYPO.setICount(ifirst.isPresent() ? ifirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
Optional<RStatHarmonicYPO> pfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId())).findFirst();
|
||||||
|
Optional<RStatHarmonicYPO> nfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId())).findFirst();
|
||||||
|
Optional<RStatHarmonicYPO> ffirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.FLICKER.getCode()).getId())).findFirst();
|
||||||
|
|
||||||
|
rStatLoadTypeYPO.setINegCount(nfirst.isPresent() ? nfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
rStatLoadTypeYPO.setUnbalanceCount(pfirst.isPresent() ? pfirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
rStatLoadTypeYPO.setFlickerCount(ffirst.isPresent() ? ffirst.get().getOverLimitMeasurementAccrued(): 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
/*3、日均谐波电压超标点占比5、日均谐波电流超标点占比,7、日均三相电压不平衡度超标点占比9、日均负序电流超标点占比11、日均闪变超标点占比*/
|
||||||
|
if(CollectionUtils.isEmpty(rStatLoadTypeMPOS)){
|
||||||
|
rStatLoadTypeYPO.setVAverage(0.00);
|
||||||
|
rStatLoadTypeYPO.setIAverage(0.00);
|
||||||
|
rStatLoadTypeYPO.setUnbalanceAverage(0.00);
|
||||||
|
rStatLoadTypeYPO.setFlickerAverage(0.00);
|
||||||
|
rStatLoadTypeYPO.setINegAverage(0.00);
|
||||||
|
}else {
|
||||||
|
double vavg = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getVAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeYPO.setVAverage(vavg);
|
||||||
|
double iavge = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getIAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeYPO.setIAverage(iavge);
|
||||||
|
double uavge = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getUnbalanceAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeYPO.setUnbalanceAverage(uavge);
|
||||||
|
double inavge = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getINegAverage).average().getAsDouble();
|
||||||
|
double favg = rStatLoadTypeMPOS.stream().mapToDouble(RStatLoadTypeMPO::getFlickerAverage).average().getAsDouble();
|
||||||
|
rStatLoadTypeYPO.setFlickerAverage(favg);
|
||||||
|
rStatLoadTypeYPO.setINegAverage(inavge);
|
||||||
|
|
||||||
|
}
|
||||||
|
result.add(rStatLoadTypeYPO);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(result)){
|
||||||
|
rStatLoadTypeYPOService.saveOrUpdateBatchByMultiId(result,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public void handler(List<Dept> deptList, String dataDate, Integer type) {
|
public void handler(List<Dept> deptList, String dataDate, Integer type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -76,11 +471,14 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = {Exception.class})
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
private void hanlderYear(List<Dept> deptList, String dataDate, Integer type) {
|
private void hanlderYear(List<Dept> deptList, String dataDate, Integer type) {
|
||||||
Date date = DateUtil.parse(dataDate);
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
List<RStatLoadTypeYPO> result = new ArrayList<>();
|
List<RStatLoadTypeYPO> result = new ArrayList<>();
|
||||||
QueryWrapper<RStatHarmonicYPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicYPO> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -117,7 +515,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
List<RStatLoadTypeMPO> rStatLoadTypeMPOS = rStatLoadTypeMPOService.getBaseMapper().selectList(rStatLoadTypeMPOQueryWrapper);
|
List<RStatLoadTypeMPO> rStatLoadTypeMPOS = rStatLoadTypeMPOService.getBaseMapper().selectList(rStatLoadTypeMPOQueryWrapper);
|
||||||
|
|
||||||
RStatLoadTypeYPO rStatLoadTypeYPO = new RStatLoadTypeYPO();
|
RStatLoadTypeYPO rStatLoadTypeYPO = new RStatLoadTypeYPO();
|
||||||
rStatLoadTypeYPO.setDataDate(date);
|
rStatLoadTypeYPO.setDataDate(localDate);
|
||||||
rStatLoadTypeYPO.setOrgNo(dept.getId());
|
rStatLoadTypeYPO.setOrgNo(dept.getId());
|
||||||
rStatLoadTypeYPO.setLoadType(m);
|
rStatLoadTypeYPO.setLoadType(m);
|
||||||
/*2、有效接入监测点数*/
|
/*2、有效接入监测点数*/
|
||||||
@@ -178,7 +576,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
private void hanlderQtr(List<Dept> deptList, String dataDate, Integer type) {
|
private void hanlderQtr(List<Dept> deptList, String dataDate, Integer type) {
|
||||||
Date date = DateUtil.parse(dataDate);
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
List<RStatLoadTypeQPO> result = new ArrayList<>();
|
List<RStatLoadTypeQPO> result = new ArrayList<>();
|
||||||
QueryWrapper<RStatHarmonicQPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicQPO> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -215,7 +613,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
List<RStatLoadTypeMPO> rStatLoadTypeMPOS = rStatLoadTypeMPOService.getBaseMapper().selectList(rStatLoadTypeMPOQueryWrapper);
|
List<RStatLoadTypeMPO> rStatLoadTypeMPOS = rStatLoadTypeMPOService.getBaseMapper().selectList(rStatLoadTypeMPOQueryWrapper);
|
||||||
|
|
||||||
RStatLoadTypeQPO rStatLoadTypeQPO = new RStatLoadTypeQPO();
|
RStatLoadTypeQPO rStatLoadTypeQPO = new RStatLoadTypeQPO();
|
||||||
rStatLoadTypeQPO.setDataDate(date);
|
rStatLoadTypeQPO.setDataDate(localDate);
|
||||||
rStatLoadTypeQPO.setOrgNo(dept.getId());
|
rStatLoadTypeQPO.setOrgNo(dept.getId());
|
||||||
rStatLoadTypeQPO.setLoadType(m);
|
rStatLoadTypeQPO.setLoadType(m);
|
||||||
/*2、有效接入监测点数*/
|
/*2、有效接入监测点数*/
|
||||||
@@ -278,7 +676,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
private void hanlderMonth(List<Dept> deptList, String dataDate, Integer type) {
|
private void hanlderMonth(List<Dept> deptList, String dataDate, Integer type) {
|
||||||
Date date = DateUtil.parse(dataDate);
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
List<RStatLoadTypeMPO> result = new ArrayList<>();
|
List<RStatLoadTypeMPO> result = new ArrayList<>();
|
||||||
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -315,7 +713,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
List<RStatLoadTypeDPO> rStatLoadTypeDPOS = rStatLoadTypeDPOService.getBaseMapper().selectList(rStatLoadTypeDPOQueryWrapper);
|
List<RStatLoadTypeDPO> rStatLoadTypeDPOS = rStatLoadTypeDPOService.getBaseMapper().selectList(rStatLoadTypeDPOQueryWrapper);
|
||||||
|
|
||||||
RStatLoadTypeMPO rStatLoadTypeMPO = new RStatLoadTypeMPO();
|
RStatLoadTypeMPO rStatLoadTypeMPO = new RStatLoadTypeMPO();
|
||||||
rStatLoadTypeMPO.setDataDate(date);
|
rStatLoadTypeMPO.setDataDate(localDate);
|
||||||
rStatLoadTypeMPO.setOrgNo(dept.getId());
|
rStatLoadTypeMPO.setOrgNo(dept.getId());
|
||||||
rStatLoadTypeMPO.setLoadType(m);
|
rStatLoadTypeMPO.setLoadType(m);
|
||||||
/*2、有效接入监测点数*/
|
/*2、有效接入监测点数*/
|
||||||
@@ -379,7 +777,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
private void hanlderDay(List<Dept> deptList, String dataDate, Integer type) {
|
private void hanlderDay(List<Dept> deptList, String dataDate, Integer type) {
|
||||||
Date date = DateUtil.parse(dataDate);
|
LocalDate localDate = LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN);
|
||||||
List<RStatLoadTypeDPO> result = new ArrayList<>();
|
List<RStatLoadTypeDPO> result = new ArrayList<>();
|
||||||
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
//过滤监测对象类型(陆上风电、分布式光伏、电气化铁路、其他非线性负荷)
|
//过滤监测对象类型(陆上风电、分布式光伏、电气化铁路、其他非线性负荷)
|
||||||
@@ -396,12 +794,12 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
|
|
||||||
collect.forEach((m,n)->{
|
collect.forEach((m,n)->{
|
||||||
RStatLoadTypeDPO rStatLoadTypeDPO = new RStatLoadTypeDPO();
|
RStatLoadTypeDPO rStatLoadTypeDPO = new RStatLoadTypeDPO();
|
||||||
rStatLoadTypeDPO.setDataDate(date);
|
rStatLoadTypeDPO.setDataDate(localDate);
|
||||||
rStatLoadTypeDPO.setOrgNo(dept.getId());
|
rStatLoadTypeDPO.setOrgNo(dept.getId());
|
||||||
rStatLoadTypeDPO.setLoadType(m);
|
rStatLoadTypeDPO.setLoadType(m);
|
||||||
/*只计算谐波电压、谐波电流、三相电压不平衡度、负序电流/闪变*/
|
/*只计算谐波电压、谐波电流、三相电压不平衡度、负序电流/闪变*/
|
||||||
RStatHarmonicDPO one = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
RStatHarmonicDPO one = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
||||||
eq(RStatHarmonicDPO::getDataDate, date).
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE).getId()).one();
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE).getId()).one();
|
||||||
@@ -411,7 +809,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
rStatLoadTypeDPO.setVRatio(0.00);
|
rStatLoadTypeDPO.setVRatio(0.00);
|
||||||
}
|
}
|
||||||
RStatHarmonicDPO two = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
RStatHarmonicDPO two = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
||||||
eq(RStatHarmonicDPO::getDataDate, date).
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT).getId()).one();
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT).getId()).one();
|
||||||
@@ -421,7 +819,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
rStatLoadTypeDPO.setIRatio(0.00);
|
rStatLoadTypeDPO.setIRatio(0.00);
|
||||||
}
|
}
|
||||||
RStatHarmonicDPO three = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
RStatHarmonicDPO three = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
||||||
eq(RStatHarmonicDPO::getDataDate, date).
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE).getId()).one();
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE).getId()).one();
|
||||||
@@ -431,7 +829,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
rStatLoadTypeDPO.setUnbalanceRatio(0.00);
|
rStatLoadTypeDPO.setUnbalanceRatio(0.00);
|
||||||
}
|
}
|
||||||
RStatHarmonicDPO four = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
RStatHarmonicDPO four = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
||||||
eq(RStatHarmonicDPO::getDataDate, date).
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.NEG_CURRENT).getId()).one();
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.NEG_CURRENT).getId()).one();
|
||||||
@@ -441,7 +839,7 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
|
|||||||
rStatLoadTypeDPO.setINegRatio(0.00);
|
rStatLoadTypeDPO.setINegRatio(0.00);
|
||||||
}
|
}
|
||||||
RStatHarmonicDPO five = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
RStatHarmonicDPO five = rStatHarmonicDPOService.lambdaQuery().eq(RStatHarmonicDPO::getOrgNo, dept.getId()).
|
||||||
eq(RStatHarmonicDPO::getDataDate, date).
|
eq(RStatHarmonicDPO::getDataDate, localDate).
|
||||||
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
eq(RStatHarmonicDPO::getMeasurementTypeClass, m).
|
||||||
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
eq(RStatHarmonicDPO::getDataType, dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.FLICKER).getId()).one();
|
eq(RStatHarmonicDPO::getHarmonicType, steadyStatisMap.get(DicDataEnum.FLICKER).getId()).one();
|
||||||
|
|||||||
Reference in New Issue
Block a user