每年统计母线各电压等级各指标标准差、平均值算法

This commit is contained in:
2023-11-30 09:18:35 +08:00
parent bae007f471
commit ab1cc4b781
4 changed files with 580 additions and 390 deletions

View File

@@ -1,14 +1,11 @@
package com.njcn.harmonic.pojo.po.dim; package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.io.Serializable;
import java.math.Double;
import java.time.LocalDate;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter; import java.time.LocalDate;
/** /**
* <p> * <p>
@@ -20,28 +17,32 @@ import lombok.Setter;
*/ */
@Data @Data
@TableName("r_dim_voltage_m") @TableName("r_dim_voltage_m")
public class RDimVoltageM extends BaseEntity { public class RDimVoltageM {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 统计时间yyyy-mm-dd * 统计时间yyyy-mm-dd
*/ */
@MppMultiId
private LocalDate statisDate; private LocalDate statisDate;
/** /**
* 单位id * 单位id
*/ */
@MppMultiId
private String orgId; private String orgId;
/** /**
* 电压等级 * 电压等级
*/ */
@MppMultiId
private String voltageType; private String voltageType;
/** /**
* 数据类型(avg:平均值 sd:标准差) * 数据类型(avg:平均值 sd:标准差)
*/ */
@MppMultiId
private String dataType; private String dataType;
/** /**
@@ -64,255 +65,212 @@ public class RDimVoltageM extends BaseEntity {
*/ */
private Double vThd; private Double vThd;
/** @TableField(value = "v_1")
* 基波电压日95%概率大值)
*/
private Double v1; private Double v1;
/** @TableField(value = "v_2")
* 2次谐波电压日95%概率大值)
*/
private Double v2; private Double v2;
/** @TableField(value = "v_3")
* 3次谐波电压日95%概率大值)
*/
private Double v3; private Double v3;
/** @TableField(value = "v_4")
* 4次谐波电压日95%概率大值)
*/
private Double v4; private Double v4;
/** @TableField(value = "v_5")
* 5次谐波电压日95%概率大值)
*/
private Double v5; private Double v5;
/** @TableField(value = "v_6")
* 6次谐波电压日95%概率大值)
*/
private Double v6; private Double v6;
/** @TableField(value = "v_7")
* 7次谐波电压日95%概率大值)
*/
private Double v7; private Double v7;
/** @TableField(value = "v_8")
* 8次谐波电压日95%概率大值)
*/
private Double v8; private Double v8;
/** @TableField(value = "v_9")
* 9次谐波电压日95%概率大值)
*/
private Double v9; private Double v9;
/** @TableField(value = "v_10")
* 10次谐波电压日95%概率大值)
*/
private Double v10; private Double v10;
/** @TableField(value = "v_11")
* 11次谐波电压日95%概率大值)
*/
private Double v11; private Double v11;
/** @TableField(value = "v_12")
* 12次谐波电压日95%概率大值)
*/
private Double v12; private Double v12;
/** @TableField(value = "v_13")
* 13次谐波电压日95%概率大值)
*/
private Double v13; private Double v13;
/** @TableField(value = "v_14")
* 14次谐波电压日95%概率大值)
*/
private Double v14; private Double v14;
/** @TableField(value = "v_15")
* 15次谐波电压日95%概率大值)
*/
private Double v15; private Double v15;
/** @TableField(value = "v_16")
* 16次谐波电压日95%概率大值)
*/
private Double v16; private Double v16;
/** @TableField(value = "v_17")
* 17次谐波电压日95%概率大值)
*/
private Double v17; private Double v17;
/** @TableField(value = "v_18")
* 18次谐波电压日95%概率大值)
*/
private Double v18; private Double v18;
/** @TableField(value = "v_19")
* 19次谐波电压日95%概率大值)
*/
private Double v19; private Double v19;
/** @TableField(value = "v_20")
* 20次谐波电压日95%概率大值)
*/
private Double v20; private Double v20;
/** @TableField(value = "v_21")
* 21次谐波电压日95%概率大值)
*/
private Double v21; private Double v21;
/** @TableField(value = "v_22")
* 22次谐波电压日95%概率大值)
*/
private Double v22; private Double v22;
/** @TableField(value = "v_23")
* 23次谐波电压日95%概率大值)
*/
private Double v23; private Double v23;
/** @TableField(value = "v_24")
* 24次谐波电压日95%概率大值)
*/
private Double v24; private Double v24;
/** @TableField(value = "v_25")
* 25次谐波电压日95%概率大值)
*/
private Double v25; private Double v25;
/** @TableField(value = "v_26")
* 26次谐波电压日95%概率大值)
*/
private Double v26; private Double v26;
/** @TableField(value = "v_27")
* 27次谐波电压日95%概率大值)
*/
private Double v27; private Double v27;
/** @TableField(value = "v_28")
* 28次谐波电压日95%概率大值)
*/
private Double v28; private Double v28;
/** @TableField(value = "v_29")
* 29次谐波电压日95%概率大值)
*/
private Double v29; private Double v29;
/** @TableField(value = "v_30")
* 30次谐波电压日95%概率大值)
*/
private Double v30; private Double v30;
/** @TableField(value = "v_31")
* 31次谐波电压日95%概率大值)
*/
private Double v31; private Double v31;
/** @TableField(value = "v_32")
* 32次谐波电压日95%概率大值)
*/
private Double v32; private Double v32;
/** @TableField(value = "v_33")
* 33次谐波电压日95%概率大值)
*/
private Double v33; private Double v33;
/** @TableField(value = "v_34")
* 34次谐波电压日95%概率大值)
*/
private Double v34; private Double v34;
/** @TableField(value = "v_35")
* 35次谐波电压日95%概率大值)
*/
private Double v35; private Double v35;
/** @TableField(value = "v_36")
* 36次谐波电压日95%概率大值)
*/
private Double v36; private Double v36;
/** @TableField(value = "v_37")
* 37次谐波电压日95%概率大值)
*/
private Double v37; private Double v37;
/** @TableField(value = "v_38")
* 38次谐波电压日95%概率大值)
*/
private Double v38; private Double v38;
/** @TableField(value = "v_39")
* 39次谐波电压日95%概率大值)
*/
private Double v39; private Double v39;
/** @TableField(value = "v_40")
* 40次谐波电压日95%概率大值)
*/
private Double v40; private Double v40;
/** @TableField(value = "v_41")
* 41次谐波电压日95%概率大值)
*/
private Double v41; private Double v41;
/** @TableField(value = "v_42")
* 42次谐波电压日95%概率大值)
*/
private Double v42; private Double v42;
/** @TableField(value = "v_43")
* 43次谐波电压日95%概率大值)
*/
private Double v43; private Double v43;
/** @TableField(value = "v_44")
* 44次谐波电压日95%概率大值)
*/
private Double v44; private Double v44;
/** @TableField(value = "v_45")
* 45次谐波电压日95%概率大值)
*/
private Double v45; private Double v45;
/** @TableField(value = "v_46")
* 46次谐波电压日95%概率大值)
*/
private Double v46; private Double v46;
/** @TableField(value = "v_47")
* 47次谐波电压日95%概率大值)
*/
private Double v47; private Double v47;
/** @TableField(value = "v_48")
* 48次谐波电压日95%概率大值)
*/
private Double v48; private Double v48;
/** @TableField(value = "v_49")
* 49次谐波电压日95%概率大值)
*/
private Double v49; private Double v49;
/** @TableField(value = "v_50")
* 50次谐波电压日95%概率大值)
*/
private Double v50; private Double v50;
public RDimVoltageM() {
this.v = 3.1415926;
this.vUnbalance = 3.1415926;
this.pst = 3.1415926;
this.vThd = 3.1415926;
this.v1 = 3.1415926;
this.v2 = 3.1415926;
this.v3 = 3.1415926;
this.v4 = 3.1415926;
this.v5 = 3.1415926;
this.v6 = 3.1415926;
this.v7 = 3.1415926;
this.v8 = 3.1415926;
this.v9 = 3.1415926;
this.v10 = 3.1415926;
this.v11 = 3.1415926;
this.v12 = 3.1415926;
this.v13 = 3.1415926;
this.v14 = 3.1415926;
this.v15 = 3.1415926;
this.v16 = 3.1415926;
this.v17 = 3.1415926;
this.v18 = 3.1415926;
this.v19 = 3.1415926;
this.v20 = 3.1415926;
this.v21 = 3.1415926;
this.v22 = 3.1415926;
this.v23 = 3.1415926;
this.v24 = 3.1415926;
this.v25 = 3.1415926;
this.v26 = 3.1415926;
this.v27 = 3.1415926;
this.v28 = 3.1415926;
this.v29 = 3.1415926;
this.v30 = 3.1415926;
this.v31 = 3.1415926;
this.v32 = 3.1415926;
this.v33 = 3.1415926;
this.v34 = 3.1415926;
this.v35 = 3.1415926;
this.v36 = 3.1415926;
this.v37 = 3.1415926;
this.v38 = 3.1415926;
this.v39 = 3.1415926;
this.v40 = 3.1415926;
this.v41 = 3.1415926;
this.v42 = 3.1415926;
this.v43 = 3.1415926;
this.v44 = 3.1415926;
this.v45 = 3.1415926;
this.v46 = 3.1415926;
this.v47 = 3.1415926;
this.v48 = 3.1415926;
this.v49 = 3.1415926;
this.v50 = 3.1415926;
}
} }

View File

@@ -1,14 +1,11 @@
package com.njcn.harmonic.pojo.po.dim; package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter; import java.time.LocalDate;
/** /**
* <p> * <p>
@@ -20,299 +17,260 @@ import lombok.Setter;
*/ */
@Data @Data
@TableName("r_dim_voltage_y") @TableName("r_dim_voltage_y")
public class RDimVoltageY extends BaseEntity { public class RDimVoltageY {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 统计时间yyyy-mm-dd * 统计时间yyyy-mm-dd
*/ */
@MppMultiId
private LocalDate statisDate; private LocalDate statisDate;
/** /**
* 单位id * 单位id
*/ */
@MppMultiId
private String orgId; private String orgId;
/** /**
* 电压等级 * 电压等级
*/ */
@MppMultiId
private String voltageType; private String voltageType;
/** /**
* 数据类型(avg:平均值 sd:标准差) * 数据类型(avg:平均值 sd:标准差)
*/ */
@MppMultiId
private String dataType; private String dataType;
/** /**
* 电压(日平均值) * 电压(日平均值)
*/ */
private BigDecimal v; private Double v;
/** /**
* 三相电压不平衡日95%概率大值) * 三相电压不平衡日95%概率大值)
*/ */
private BigDecimal vUnbalance; private Double vUnbalance;
/** /**
* 长时间闪变(日最大值) * 长时间闪变(日最大值)
*/ */
private BigDecimal pst; private Double pst;
/** /**
* 电压总谐波畸变率日95%概率大值) * 电压总谐波畸变率日95%概率大值)
*/ */
private BigDecimal vThd; private Double vThd;
/** @TableField(value = "v_1")
* 基波电压日95%概率大值) private Double v1;
*/
private BigDecimal v1;
/** @TableField(value = "v_2")
* 2次谐波电压日95%概率大值) private Double v2;
*/
private BigDecimal v2;
/** @TableField(value = "v_3")
* 3次谐波电压日95%概率大值) private Double v3;
*/
private BigDecimal v3;
/** @TableField(value = "v_4")
* 4次谐波电压日95%概率大值) private Double v4;
*/
private BigDecimal v4;
/** @TableField(value = "v_5")
* 5次谐波电压日95%概率大值) private Double v5;
*/
private BigDecimal v5;
/** @TableField(value = "v_6")
* 6次谐波电压日95%概率大值) private Double v6;
*/
private BigDecimal v6;
/** @TableField(value = "v_7")
* 7次谐波电压日95%概率大值) private Double v7;
*/
private BigDecimal v7;
/** @TableField(value = "v_8")
* 8次谐波电压日95%概率大值) private Double v8;
*/
private BigDecimal v8;
/** @TableField(value = "v_9")
* 9次谐波电压日95%概率大值) private Double v9;
*/
private BigDecimal v9;
/** @TableField(value = "v_10")
* 10次谐波电压日95%概率大值) private Double v10;
*/
private BigDecimal v10;
/** @TableField(value = "v_11")
* 11次谐波电压日95%概率大值) private Double v11;
*/
private BigDecimal v11;
/** @TableField(value = "v_12")
* 12次谐波电压日95%概率大值) private Double v12;
*/
private BigDecimal v12;
/** @TableField(value = "v_13")
* 13次谐波电压日95%概率大值) private Double v13;
*/
private BigDecimal v13;
/** @TableField(value = "v_14")
* 14次谐波电压日95%概率大值) private Double v14;
*/
private BigDecimal v14;
/** @TableField(value = "v_15")
* 15次谐波电压日95%概率大值) private Double v15;
*/
private BigDecimal v15;
/** @TableField(value = "v_16")
* 16次谐波电压日95%概率大值) private Double v16;
*/
private BigDecimal v16;
/** @TableField(value = "v_17")
* 17次谐波电压日95%概率大值) private Double v17;
*/
private BigDecimal v17;
/** @TableField(value = "v_18")
* 18次谐波电压日95%概率大值) private Double v18;
*/
private BigDecimal v18;
/** @TableField(value = "v_19")
* 19次谐波电压日95%概率大值) private Double v19;
*/
private BigDecimal v19;
/** @TableField(value = "v_20")
* 20次谐波电压日95%概率大值) private Double v20;
*/
private BigDecimal v20;
/** @TableField(value = "v_21")
* 21次谐波电压日95%概率大值) private Double v21;
*/
private BigDecimal v21;
/** @TableField(value = "v_22")
* 22次谐波电压日95%概率大值) private Double v22;
*/
private BigDecimal v22;
/** @TableField(value = "v_23")
* 23次谐波电压日95%概率大值) private Double v23;
*/
private BigDecimal v23;
/** @TableField(value = "v_24")
* 24次谐波电压日95%概率大值) private Double v24;
*/
private BigDecimal v24;
/** @TableField(value = "v_25")
* 25次谐波电压日95%概率大值) private Double v25;
*/
private BigDecimal v25;
/** @TableField(value = "v_26")
* 26次谐波电压日95%概率大值) private Double v26;
*/
private BigDecimal v26;
/** @TableField(value = "v_27")
* 27次谐波电压日95%概率大值) private Double v27;
*/
private BigDecimal v27;
/** @TableField(value = "v_28")
* 28次谐波电压日95%概率大值) private Double v28;
*/
private BigDecimal v28;
/** @TableField(value = "v_29")
* 29次谐波电压日95%概率大值) private Double v29;
*/
private BigDecimal v29;
/** @TableField(value = "v_30")
* 30次谐波电压日95%概率大值) private Double v30;
*/
private BigDecimal v30;
/** @TableField(value = "v_31")
* 31次谐波电压日95%概率大值) private Double v31;
*/
private BigDecimal v31;
/** @TableField(value = "v_32")
* 32次谐波电压日95%概率大值) private Double v32;
*/
private BigDecimal v32;
/** @TableField(value = "v_33")
* 33次谐波电压日95%概率大值) private Double v33;
*/
private BigDecimal v33;
/** @TableField(value = "v_34")
* 34次谐波电压日95%概率大值) private Double v34;
*/
private BigDecimal v34;
/** @TableField(value = "v_35")
* 35次谐波电压日95%概率大值) private Double v35;
*/
private BigDecimal v35;
/** @TableField(value = "v_36")
* 36次谐波电压日95%概率大值) private Double v36;
*/
private BigDecimal v36;
/** @TableField(value = "v_37")
* 37次谐波电压日95%概率大值) private Double v37;
*/
private BigDecimal v37;
/** @TableField(value = "v_38")
* 38次谐波电压日95%概率大值) private Double v38;
*/
private BigDecimal v38;
/** @TableField(value = "v_39")
* 39次谐波电压日95%概率大值) private Double v39;
*/
private BigDecimal v39;
/** @TableField(value = "v_40")
* 40次谐波电压日95%概率大值) private Double v40;
*/
private BigDecimal v40;
/** @TableField(value = "v_41")
* 41次谐波电压日95%概率大值) private Double v41;
*/
private BigDecimal v41;
/** @TableField(value = "v_42")
* 42次谐波电压日95%概率大值) private Double v42;
*/
private BigDecimal v42;
/** @TableField(value = "v_43")
* 43次谐波电压日95%概率大值) private Double v43;
*/
private BigDecimal v43;
/** @TableField(value = "v_44")
* 44次谐波电压日95%概率大值) private Double v44;
*/
private BigDecimal v44;
/** @TableField(value = "v_45")
* 45次谐波电压日95%概率大值) private Double v45;
*/
private BigDecimal v45;
/** @TableField(value = "v_46")
* 46次谐波电压日95%概率大值) private Double v46;
*/
private BigDecimal v46;
/** @TableField(value = "v_47")
* 47次谐波电压日95%概率大值) private Double v47;
*/
private BigDecimal v47;
/** @TableField(value = "v_48")
* 48次谐波电压日95%概率大值) private Double v48;
*/
private BigDecimal v48;
/** @TableField(value = "v_49")
* 49次谐波电压日95%概率大值) private Double v49;
*/
private BigDecimal v49;
/** @TableField(value = "v_50")
* 50次谐波电压日95%概率大值) private Double v50;
*/
private BigDecimal v50; public RDimVoltageY() {
this.v = 3.1415926;
this.vUnbalance = 3.1415926;
this.pst = 3.1415926;
this.vThd = 3.1415926;
this.v1 = 3.1415926;
this.v2 = 3.1415926;
this.v3 = 3.1415926;
this.v4 = 3.1415926;
this.v5 = 3.1415926;
this.v6 = 3.1415926;
this.v7 = 3.1415926;
this.v8 = 3.1415926;
this.v9 = 3.1415926;
this.v10 = 3.1415926;
this.v11 = 3.1415926;
this.v12 = 3.1415926;
this.v13 = 3.1415926;
this.v14 = 3.1415926;
this.v15 = 3.1415926;
this.v16 = 3.1415926;
this.v17 = 3.1415926;
this.v18 = 3.1415926;
this.v19 = 3.1415926;
this.v20 = 3.1415926;
this.v21 = 3.1415926;
this.v22 = 3.1415926;
this.v23 = 3.1415926;
this.v24 = 3.1415926;
this.v25 = 3.1415926;
this.v26 = 3.1415926;
this.v27 = 3.1415926;
this.v28 = 3.1415926;
this.v29 = 3.1415926;
this.v30 = 3.1415926;
this.v31 = 3.1415926;
this.v32 = 3.1415926;
this.v33 = 3.1415926;
this.v34 = 3.1415926;
this.v35 = 3.1415926;
this.v36 = 3.1415926;
this.v37 = 3.1415926;
this.v38 = 3.1415926;
this.v39 = 3.1415926;
this.v40 = 3.1415926;
this.v41 = 3.1415926;
this.v42 = 3.1415926;
this.v43 = 3.1415926;
this.v44 = 3.1415926;
this.v45 = 3.1415926;
this.v46 = 3.1415926;
this.v47 = 3.1415926;
this.v48 = 3.1415926;
this.v49 = 3.1415926;
this.v50 = 3.1415926;
}
} }

View File

@@ -1,11 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl; package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; 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 cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO; import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO;
import com.njcn.harmonic.pojo.po.dim.RDimVoltageD; import com.njcn.harmonic.pojo.po.dim.RDimVoltageD;
@@ -13,11 +13,9 @@ import com.njcn.harmonic.pojo.po.dim.RDimVoltageM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageMMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageMMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.dto.LineDataDto;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageMService; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageMService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.ehcache.core.util.CollectionUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
@@ -47,24 +45,24 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl<RDimVoltageMMapper,
List<DeptGetBusBarDTO> list = calculatedParam.getIdList(); List<DeptGetBusBarDTO> list = calculatedParam.getIdList();
DateTime startTime = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate())); DateTime startTime = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate()));
DateTime endTime = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate())); DateTime endTime = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate()));
LocalDate time = LocalDateTimeUtil.parseDate(startTime.toString(DatePattern.NORM_DATE_PATTERN),DatePattern.NORM_DATE_FORMATTER);
List<String> deptList = list.stream().map(DeptGetBusBarDTO::getUnitId).collect(Collectors.toList()); List<String> deptList = list.stream().map(DeptGetBusBarDTO::getUnitId).collect(Collectors.toList());
//获取日表数据 //获取日表数据
Map<String, List<RDimVoltageD>> map = getDayData(startTime,endTime,deptList); Map<String, List<RDimVoltageD>> map = getDayData(startTime,endTime,deptList);
map.forEach((k,v)->{ map.forEach((k,v)->{
RDimVoltageM rDimVoltageM = new RDimVoltageM();
rDimVoltageM.setOrgId(k);
rDimVoltageM.setStatisDate(LocalDateTimeUtil.parseDate(startTime.toString(DatePattern.NORM_DATE_PATTERN),DatePattern.NORM_DATE_FORMATTER));
Map<String, List<RDimVoltageD>> map1 = v.stream().collect(Collectors.groupingBy(RDimVoltageD::getVoltageType)); Map<String, List<RDimVoltageD>> map1 = v.stream().collect(Collectors.groupingBy(RDimVoltageD::getVoltageType));
map1.forEach((k1,v1)->{ map1.forEach((k1,v1)->{
rDimVoltageM.setVoltageType(k1);
//获取平均值 //获取平均值
getAvg(v1,rDimVoltageM); RDimVoltageM rDimVoltageM1 = getAvg(v1,k,time,k1);
result.add(rDimVoltageM); result.add(rDimVoltageM1);
//获取标准差 //获取标准差
getSd(v1,rDimVoltageM); RDimVoltageM rDimVoltageM2 = getSd(v1,k,time,k1,rDimVoltageM1);
result.add(rDimVoltageM); result.add(rDimVoltageM2);
}); });
}); });
if (CollectionUtil.isNotEmpty(result)){
this.saveOrUpdateBatchByMultiId(result);
}
} }
/** /**
@@ -84,9 +82,12 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl<RDimVoltageMMapper,
/** /**
* 获取平均值 * 获取平均值
* @param list 数据集合 * @param list 数据集合
* @param rDimVoltageM 实体
*/ */
public void getAvg(List<RDimVoltageD> list, RDimVoltageM rDimVoltageM) { public RDimVoltageM getAvg(List<RDimVoltageD> list, String orgId, LocalDate time, String voltageLevel) {
RDimVoltageM rDimVoltageM = new RDimVoltageM();
rDimVoltageM.setOrgId(orgId);
rDimVoltageM.setStatisDate(time);
rDimVoltageM.setVoltageType(voltageLevel);
rDimVoltageM.setDataType("avg"); rDimVoltageM.setDataType("avg");
rDimVoltageM.setV(list.stream().mapToDouble(RDimVoltageD::getV).average().orElse(0d)); rDimVoltageM.setV(list.stream().mapToDouble(RDimVoltageD::getV).average().orElse(0d));
rDimVoltageM.setVUnbalance(list.stream().mapToDouble(RDimVoltageD::getVUnbalance).average().orElse(0d)); rDimVoltageM.setVUnbalance(list.stream().mapToDouble(RDimVoltageD::getVUnbalance).average().orElse(0d));
@@ -142,17 +143,87 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl<RDimVoltageMMapper,
rDimVoltageM.setV48(list.stream().mapToDouble(RDimVoltageD::getV48).average().orElse(0d)); rDimVoltageM.setV48(list.stream().mapToDouble(RDimVoltageD::getV48).average().orElse(0d));
rDimVoltageM.setV49(list.stream().mapToDouble(RDimVoltageD::getV49).average().orElse(0d)); rDimVoltageM.setV49(list.stream().mapToDouble(RDimVoltageD::getV49).average().orElse(0d));
rDimVoltageM.setV50(list.stream().mapToDouble(RDimVoltageD::getV50).average().orElse(0d)); rDimVoltageM.setV50(list.stream().mapToDouble(RDimVoltageD::getV50).average().orElse(0d));
return rDimVoltageM;
} }
/** /**
* 获取标准差 * 获取标准差
* @param list 数据集合 * @param list 数据集合
* @param rDimVoltageM 实体
*/ */
public void getSd(List<RDimVoltageD> list, RDimVoltageM rDimVoltageM) { public RDimVoltageM getSd(List<RDimVoltageD> list, String orgId, LocalDate time, String voltageLevel,RDimVoltageM rDimVoltageM) {
rDimVoltageM.setDataType("sd"); double limit = 3.1415926000000005;
RDimVoltageM rDimVoltageM1 = new RDimVoltageM();
rDimVoltageM1.setOrgId(orgId);
rDimVoltageM1.setStatisDate(time);
rDimVoltageM1.setVoltageType(voltageLevel);
rDimVoltageM1.setDataType("sd");
rDimVoltageM1.setV(rDimVoltageM.getV() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV).collect(Collectors.toList()),rDimVoltageM.getV()));
rDimVoltageM1.setVUnbalance(rDimVoltageM.getVUnbalance() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getVUnbalance).collect(Collectors.toList()),rDimVoltageM.getVUnbalance()));
rDimVoltageM1.setVThd(rDimVoltageM.getVThd() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getVThd).collect(Collectors.toList()),rDimVoltageM.getVThd()));
rDimVoltageM1.setPst(rDimVoltageM.getPst() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getPst).collect(Collectors.toList()),rDimVoltageM.getPst()));
rDimVoltageM1.setV1(rDimVoltageM.getV1() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV1).collect(Collectors.toList()),rDimVoltageM.getV1()));
rDimVoltageM1.setV2(rDimVoltageM.getV2() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV2).collect(Collectors.toList()),rDimVoltageM.getV2()));
rDimVoltageM1.setV3(rDimVoltageM.getV3() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV3).collect(Collectors.toList()),rDimVoltageM.getV3()));
rDimVoltageM1.setV4(rDimVoltageM.getV4() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV4).collect(Collectors.toList()),rDimVoltageM.getV4()));
rDimVoltageM1.setV5(rDimVoltageM.getV5() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV5).collect(Collectors.toList()),rDimVoltageM.getV5()));
rDimVoltageM1.setV6(rDimVoltageM.getV6() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV6).collect(Collectors.toList()),rDimVoltageM.getV6()));
rDimVoltageM1.setV7(rDimVoltageM.getV7() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV7).collect(Collectors.toList()),rDimVoltageM.getV7()));
rDimVoltageM1.setV8(rDimVoltageM.getV8() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV8).collect(Collectors.toList()),rDimVoltageM.getV8()));
rDimVoltageM1.setV9(rDimVoltageM.getV9() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV9).collect(Collectors.toList()),rDimVoltageM.getV9()));
rDimVoltageM1.setV10(rDimVoltageM.getV10() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV10).collect(Collectors.toList()),rDimVoltageM.getV10()));
rDimVoltageM1.setV11(rDimVoltageM.getV11() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV11).collect(Collectors.toList()),rDimVoltageM.getV11()));
rDimVoltageM1.setV12(rDimVoltageM.getV12() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV12).collect(Collectors.toList()),rDimVoltageM.getV12()));
rDimVoltageM1.setV13(rDimVoltageM.getV13() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV13).collect(Collectors.toList()),rDimVoltageM.getV13()));
rDimVoltageM1.setV14(rDimVoltageM.getV14() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV14).collect(Collectors.toList()),rDimVoltageM.getV14()));
rDimVoltageM1.setV15(rDimVoltageM.getV15() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV15).collect(Collectors.toList()),rDimVoltageM.getV15()));
rDimVoltageM1.setV16(rDimVoltageM.getV16() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV16).collect(Collectors.toList()),rDimVoltageM.getV16()));
rDimVoltageM1.setV17(rDimVoltageM.getV17() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV17).collect(Collectors.toList()),rDimVoltageM.getV17()));
rDimVoltageM1.setV18(rDimVoltageM.getV18() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV18).collect(Collectors.toList()),rDimVoltageM.getV18()));
rDimVoltageM1.setV19(rDimVoltageM.getV19() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV19).collect(Collectors.toList()),rDimVoltageM.getV19()));
rDimVoltageM1.setV20(rDimVoltageM.getV20() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV20).collect(Collectors.toList()),rDimVoltageM.getV20()));
rDimVoltageM1.setV21(rDimVoltageM.getV21() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV21).collect(Collectors.toList()),rDimVoltageM.getV21()));
rDimVoltageM1.setV22(rDimVoltageM.getV22() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV22).collect(Collectors.toList()),rDimVoltageM.getV22()));
rDimVoltageM1.setV23(rDimVoltageM.getV23() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV23).collect(Collectors.toList()),rDimVoltageM.getV23()));
rDimVoltageM1.setV24(rDimVoltageM.getV24() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV24).collect(Collectors.toList()),rDimVoltageM.getV24()));
rDimVoltageM1.setV25(rDimVoltageM.getV25() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV25).collect(Collectors.toList()),rDimVoltageM.getV25()));
rDimVoltageM1.setV26(rDimVoltageM.getV26() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV26).collect(Collectors.toList()),rDimVoltageM.getV26()));
rDimVoltageM1.setV27(rDimVoltageM.getV27() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV27).collect(Collectors.toList()),rDimVoltageM.getV27()));
rDimVoltageM1.setV28(rDimVoltageM.getV28() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV28).collect(Collectors.toList()),rDimVoltageM.getV28()));
rDimVoltageM1.setV29(rDimVoltageM.getV29() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV29).collect(Collectors.toList()),rDimVoltageM.getV29()));
rDimVoltageM1.setV30(rDimVoltageM.getV30() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV30).collect(Collectors.toList()),rDimVoltageM.getV30()));
rDimVoltageM1.setV31(rDimVoltageM.getV31() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV31).collect(Collectors.toList()),rDimVoltageM.getV31()));
rDimVoltageM1.setV32(rDimVoltageM.getV32() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV32).collect(Collectors.toList()),rDimVoltageM.getV32()));
rDimVoltageM1.setV33(rDimVoltageM.getV33() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV33).collect(Collectors.toList()),rDimVoltageM.getV33()));
rDimVoltageM1.setV34(rDimVoltageM.getV34() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV34).collect(Collectors.toList()),rDimVoltageM.getV34()));
rDimVoltageM1.setV35(rDimVoltageM.getV35() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV35).collect(Collectors.toList()),rDimVoltageM.getV35()));
rDimVoltageM1.setV36(rDimVoltageM.getV36() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV36).collect(Collectors.toList()),rDimVoltageM.getV36()));
rDimVoltageM1.setV37(rDimVoltageM.getV37() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV37).collect(Collectors.toList()),rDimVoltageM.getV37()));
rDimVoltageM1.setV38(rDimVoltageM.getV38() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV38).collect(Collectors.toList()),rDimVoltageM.getV38()));
rDimVoltageM1.setV39(rDimVoltageM.getV39() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV39).collect(Collectors.toList()),rDimVoltageM.getV39()));
rDimVoltageM1.setV40(rDimVoltageM.getV40() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV40).collect(Collectors.toList()),rDimVoltageM.getV40()));
rDimVoltageM1.setV41(rDimVoltageM.getV41() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV41).collect(Collectors.toList()),rDimVoltageM.getV41()));
rDimVoltageM1.setV42(rDimVoltageM.getV42() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV42).collect(Collectors.toList()),rDimVoltageM.getV42()));
rDimVoltageM1.setV43(rDimVoltageM.getV43() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV43).collect(Collectors.toList()),rDimVoltageM.getV43()));
rDimVoltageM1.setV44(rDimVoltageM.getV44() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV44).collect(Collectors.toList()),rDimVoltageM.getV44()));
rDimVoltageM1.setV45(rDimVoltageM.getV45() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV45).collect(Collectors.toList()),rDimVoltageM.getV45()));
rDimVoltageM1.setV46(rDimVoltageM.getV46() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV46).collect(Collectors.toList()),rDimVoltageM.getV46()));
rDimVoltageM1.setV47(rDimVoltageM.getV47() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV47).collect(Collectors.toList()),rDimVoltageM.getV47()));
rDimVoltageM1.setV48(rDimVoltageM.getV48() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV48).collect(Collectors.toList()),rDimVoltageM.getV48()));
rDimVoltageM1.setV49(rDimVoltageM.getV49() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV49).collect(Collectors.toList()),rDimVoltageM.getV49()));
rDimVoltageM1.setV50(rDimVoltageM.getV50() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV50).collect(Collectors.toList()),rDimVoltageM.getV50()));
return rDimVoltageM1;
}
private static double calculateStandardDeviation(List<Double> data, double mean) {
return Math.sqrt(calculateVariance(data, mean));
}
private static double calculateVariance(List<Double> data, double mean) {
return data.stream()
.mapToDouble(Double::doubleValue)
.map(value -> Math.pow(value - mean, 2))
.average()
.orElse(0.0);
} }
} }

View File

@@ -1,13 +1,29 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl; package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO; import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO;
import com.njcn.harmonic.pojo.po.dim.RDimVoltageD;
import com.njcn.harmonic.pojo.po.dim.RDimVoltageY; import com.njcn.harmonic.pojo.po.dim.RDimVoltageY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageYMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageYMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageYService; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageYService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 区域母线**电压等级**指标标准差、平均值-年表 服务实现类 * 区域母线**电压等级**指标标准差、平均值-年表 服务实现类
@@ -17,10 +33,197 @@ import org.springframework.stereotype.Service;
* @since 2023-11-29 * @since 2023-11-29
*/ */
@Service @Service
public class RDimVoltageYServiceImpl extends ServiceImpl<RDimVoltageYMapper, RDimVoltageY> implements IRDimVoltageYService { @RequiredArgsConstructor
@Slf4j
public class RDimVoltageYServiceImpl extends MppServiceImpl<RDimVoltageYMapper, RDimVoltageY> implements IRDimVoltageYService {
private final RDimVoltageDMapper rDimVoltageDMapper;
@Override @Override
public void busbarVoltageY(CalculatedParam<DeptGetBusBarDTO> calculatedParam) { public void busbarVoltageY(CalculatedParam<DeptGetBusBarDTO> calculatedParam) {
List<RDimVoltageY> result = new ArrayList<>();
List<DeptGetBusBarDTO> list = calculatedParam.getIdList();
DateTime startTime = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate()));
DateTime endTime = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate()));
LocalDate time = LocalDateTimeUtil.parseDate(startTime.toString(DatePattern.NORM_DATE_PATTERN),DatePattern.NORM_DATE_FORMATTER);
List<String> deptList = list.stream().map(DeptGetBusBarDTO::getUnitId).collect(Collectors.toList());
//获取日表数据
Map<String, List<RDimVoltageD>> map = getDayData(startTime,endTime,deptList);
map.forEach((k,v)->{
Map<String, List<RDimVoltageD>> map1 = v.stream().collect(Collectors.groupingBy(RDimVoltageD::getVoltageType));
map1.forEach((k1,v1)->{
//获取平均值
RDimVoltageY rDimVoltageY1 = getAvg(v1,k,time,k1);
result.add(rDimVoltageY1);
//获取标准差
RDimVoltageY rDimVoltageY2 = getSd(v1,k,time,k1,rDimVoltageY1);
result.add(rDimVoltageY2);
});
});
if (CollectionUtil.isNotEmpty(result)){
this.saveOrUpdateBatchByMultiId(result);
} }
}
/**
* 获取日表数据,按照单位分组
* @param startTime 起始时间
* @param endTime 结束时间
* @param deptList 单位集合
* @return
*/
public Map<String, List<RDimVoltageD>> getDayData(DateTime startTime, DateTime endTime, List<String> deptList) {
LambdaQueryWrapper<RDimVoltageD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(RDimVoltageD::getOrgId,deptList).between(RDimVoltageD::getStatisDate,startTime,endTime);
List<RDimVoltageD> list = rDimVoltageDMapper.selectList(lambdaQueryWrapper);
return list.stream().collect(Collectors.groupingBy(RDimVoltageD::getOrgId));
}
/**
* 获取平均值
* @param list 数据集合
*/
public RDimVoltageY getAvg(List<RDimVoltageD> list, String orgId, LocalDate time, String voltageLevel) {
RDimVoltageY rDimVoltageY = new RDimVoltageY();
rDimVoltageY.setOrgId(orgId);
rDimVoltageY.setStatisDate(time);
rDimVoltageY.setVoltageType(voltageLevel);
rDimVoltageY.setDataType("avg");
rDimVoltageY.setV(list.stream().mapToDouble(RDimVoltageD::getV).average().orElse(0d));
rDimVoltageY.setVUnbalance(list.stream().mapToDouble(RDimVoltageD::getVUnbalance).average().orElse(0d));
rDimVoltageY.setPst(list.stream().mapToDouble(RDimVoltageD::getPst).average().orElse(0d));
rDimVoltageY.setVThd(list.stream().mapToDouble(RDimVoltageD::getVThd).average().orElse(0d));
rDimVoltageY.setV1(list.stream().mapToDouble(RDimVoltageD::getV1).average().orElse(0d));
rDimVoltageY.setV2(list.stream().mapToDouble(RDimVoltageD::getV2).average().orElse(0d));
rDimVoltageY.setV3(list.stream().mapToDouble(RDimVoltageD::getV3).average().orElse(0d));
rDimVoltageY.setV4(list.stream().mapToDouble(RDimVoltageD::getV4).average().orElse(0d));
rDimVoltageY.setV5(list.stream().mapToDouble(RDimVoltageD::getV5).average().orElse(0d));
rDimVoltageY.setV6(list.stream().mapToDouble(RDimVoltageD::getV6).average().orElse(0d));
rDimVoltageY.setV7(list.stream().mapToDouble(RDimVoltageD::getV7).average().orElse(0d));
rDimVoltageY.setV8(list.stream().mapToDouble(RDimVoltageD::getV8).average().orElse(0d));
rDimVoltageY.setV9(list.stream().mapToDouble(RDimVoltageD::getV9).average().orElse(0d));
rDimVoltageY.setV10(list.stream().mapToDouble(RDimVoltageD::getV10).average().orElse(0d));
rDimVoltageY.setV11(list.stream().mapToDouble(RDimVoltageD::getV11).average().orElse(0d));
rDimVoltageY.setV12(list.stream().mapToDouble(RDimVoltageD::getV12).average().orElse(0d));
rDimVoltageY.setV13(list.stream().mapToDouble(RDimVoltageD::getV13).average().orElse(0d));
rDimVoltageY.setV14(list.stream().mapToDouble(RDimVoltageD::getV14).average().orElse(0d));
rDimVoltageY.setV15(list.stream().mapToDouble(RDimVoltageD::getV15).average().orElse(0d));
rDimVoltageY.setV16(list.stream().mapToDouble(RDimVoltageD::getV16).average().orElse(0d));
rDimVoltageY.setV17(list.stream().mapToDouble(RDimVoltageD::getV17).average().orElse(0d));
rDimVoltageY.setV18(list.stream().mapToDouble(RDimVoltageD::getV18).average().orElse(0d));
rDimVoltageY.setV19(list.stream().mapToDouble(RDimVoltageD::getV19).average().orElse(0d));
rDimVoltageY.setV20(list.stream().mapToDouble(RDimVoltageD::getV20).average().orElse(0d));
rDimVoltageY.setV21(list.stream().mapToDouble(RDimVoltageD::getV21).average().orElse(0d));
rDimVoltageY.setV22(list.stream().mapToDouble(RDimVoltageD::getV22).average().orElse(0d));
rDimVoltageY.setV23(list.stream().mapToDouble(RDimVoltageD::getV23).average().orElse(0d));
rDimVoltageY.setV24(list.stream().mapToDouble(RDimVoltageD::getV24).average().orElse(0d));
rDimVoltageY.setV25(list.stream().mapToDouble(RDimVoltageD::getV25).average().orElse(0d));
rDimVoltageY.setV26(list.stream().mapToDouble(RDimVoltageD::getV26).average().orElse(0d));
rDimVoltageY.setV27(list.stream().mapToDouble(RDimVoltageD::getV27).average().orElse(0d));
rDimVoltageY.setV28(list.stream().mapToDouble(RDimVoltageD::getV28).average().orElse(0d));
rDimVoltageY.setV29(list.stream().mapToDouble(RDimVoltageD::getV29).average().orElse(0d));
rDimVoltageY.setV30(list.stream().mapToDouble(RDimVoltageD::getV30).average().orElse(0d));
rDimVoltageY.setV31(list.stream().mapToDouble(RDimVoltageD::getV31).average().orElse(0d));
rDimVoltageY.setV32(list.stream().mapToDouble(RDimVoltageD::getV32).average().orElse(0d));
rDimVoltageY.setV33(list.stream().mapToDouble(RDimVoltageD::getV33).average().orElse(0d));
rDimVoltageY.setV34(list.stream().mapToDouble(RDimVoltageD::getV34).average().orElse(0d));
rDimVoltageY.setV35(list.stream().mapToDouble(RDimVoltageD::getV35).average().orElse(0d));
rDimVoltageY.setV36(list.stream().mapToDouble(RDimVoltageD::getV36).average().orElse(0d));
rDimVoltageY.setV37(list.stream().mapToDouble(RDimVoltageD::getV37).average().orElse(0d));
rDimVoltageY.setV38(list.stream().mapToDouble(RDimVoltageD::getV38).average().orElse(0d));
rDimVoltageY.setV39(list.stream().mapToDouble(RDimVoltageD::getV39).average().orElse(0d));
rDimVoltageY.setV40(list.stream().mapToDouble(RDimVoltageD::getV40).average().orElse(0d));
rDimVoltageY.setV41(list.stream().mapToDouble(RDimVoltageD::getV41).average().orElse(0d));
rDimVoltageY.setV42(list.stream().mapToDouble(RDimVoltageD::getV42).average().orElse(0d));
rDimVoltageY.setV43(list.stream().mapToDouble(RDimVoltageD::getV43).average().orElse(0d));
rDimVoltageY.setV44(list.stream().mapToDouble(RDimVoltageD::getV44).average().orElse(0d));
rDimVoltageY.setV45(list.stream().mapToDouble(RDimVoltageD::getV45).average().orElse(0d));
rDimVoltageY.setV46(list.stream().mapToDouble(RDimVoltageD::getV46).average().orElse(0d));
rDimVoltageY.setV47(list.stream().mapToDouble(RDimVoltageD::getV47).average().orElse(0d));
rDimVoltageY.setV48(list.stream().mapToDouble(RDimVoltageD::getV48).average().orElse(0d));
rDimVoltageY.setV49(list.stream().mapToDouble(RDimVoltageD::getV49).average().orElse(0d));
rDimVoltageY.setV50(list.stream().mapToDouble(RDimVoltageD::getV50).average().orElse(0d));
return rDimVoltageY;
}
/**
* 获取标准差
* @param list 数据集合
*/
public RDimVoltageY getSd(List<RDimVoltageD> list, String orgId, LocalDate time, String voltageLevel,RDimVoltageY rDimVoltageY) {
double limit = 3.1415926000000005;
RDimVoltageY rDimVoltageY1 = new RDimVoltageY();
rDimVoltageY1.setOrgId(orgId);
rDimVoltageY1.setStatisDate(time);
rDimVoltageY1.setVoltageType(voltageLevel);
rDimVoltageY1.setDataType("sd");
rDimVoltageY1.setV(rDimVoltageY.getV() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV).collect(Collectors.toList()),rDimVoltageY.getV()));
rDimVoltageY1.setVUnbalance(rDimVoltageY.getVUnbalance() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getVUnbalance).collect(Collectors.toList()),rDimVoltageY.getVUnbalance()));
rDimVoltageY1.setVThd(rDimVoltageY.getVThd() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getVThd).collect(Collectors.toList()),rDimVoltageY.getVThd()));
rDimVoltageY1.setPst(rDimVoltageY.getPst() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getPst).collect(Collectors.toList()),rDimVoltageY.getPst()));
rDimVoltageY1.setV1(rDimVoltageY.getV1() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV1).collect(Collectors.toList()),rDimVoltageY.getV1()));
rDimVoltageY1.setV2(rDimVoltageY.getV2() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV2).collect(Collectors.toList()),rDimVoltageY.getV2()));
rDimVoltageY1.setV3(rDimVoltageY.getV3() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV3).collect(Collectors.toList()),rDimVoltageY.getV3()));
rDimVoltageY1.setV4(rDimVoltageY.getV4() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV4).collect(Collectors.toList()),rDimVoltageY.getV4()));
rDimVoltageY1.setV5(rDimVoltageY.getV5() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV5).collect(Collectors.toList()),rDimVoltageY.getV5()));
rDimVoltageY1.setV6(rDimVoltageY.getV6() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV6).collect(Collectors.toList()),rDimVoltageY.getV6()));
rDimVoltageY1.setV7(rDimVoltageY.getV7() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV7).collect(Collectors.toList()),rDimVoltageY.getV7()));
rDimVoltageY1.setV8(rDimVoltageY.getV8() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV8).collect(Collectors.toList()),rDimVoltageY.getV8()));
rDimVoltageY1.setV9(rDimVoltageY.getV9() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV9).collect(Collectors.toList()),rDimVoltageY.getV9()));
rDimVoltageY1.setV10(rDimVoltageY.getV10() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV10).collect(Collectors.toList()),rDimVoltageY.getV10()));
rDimVoltageY1.setV11(rDimVoltageY.getV11() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV11).collect(Collectors.toList()),rDimVoltageY.getV11()));
rDimVoltageY1.setV12(rDimVoltageY.getV12() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV12).collect(Collectors.toList()),rDimVoltageY.getV12()));
rDimVoltageY1.setV13(rDimVoltageY.getV13() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV13).collect(Collectors.toList()),rDimVoltageY.getV13()));
rDimVoltageY1.setV14(rDimVoltageY.getV14() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV14).collect(Collectors.toList()),rDimVoltageY.getV14()));
rDimVoltageY1.setV15(rDimVoltageY.getV15() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV15).collect(Collectors.toList()),rDimVoltageY.getV15()));
rDimVoltageY1.setV16(rDimVoltageY.getV16() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV16).collect(Collectors.toList()),rDimVoltageY.getV16()));
rDimVoltageY1.setV17(rDimVoltageY.getV17() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV17).collect(Collectors.toList()),rDimVoltageY.getV17()));
rDimVoltageY1.setV18(rDimVoltageY.getV18() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV18).collect(Collectors.toList()),rDimVoltageY.getV18()));
rDimVoltageY1.setV19(rDimVoltageY.getV19() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV19).collect(Collectors.toList()),rDimVoltageY.getV19()));
rDimVoltageY1.setV20(rDimVoltageY.getV20() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV20).collect(Collectors.toList()),rDimVoltageY.getV20()));
rDimVoltageY1.setV21(rDimVoltageY.getV21() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV21).collect(Collectors.toList()),rDimVoltageY.getV21()));
rDimVoltageY1.setV22(rDimVoltageY.getV22() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV22).collect(Collectors.toList()),rDimVoltageY.getV22()));
rDimVoltageY1.setV23(rDimVoltageY.getV23() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV23).collect(Collectors.toList()),rDimVoltageY.getV23()));
rDimVoltageY1.setV24(rDimVoltageY.getV24() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV24).collect(Collectors.toList()),rDimVoltageY.getV24()));
rDimVoltageY1.setV25(rDimVoltageY.getV25() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV25).collect(Collectors.toList()),rDimVoltageY.getV25()));
rDimVoltageY1.setV26(rDimVoltageY.getV26() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV26).collect(Collectors.toList()),rDimVoltageY.getV26()));
rDimVoltageY1.setV27(rDimVoltageY.getV27() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV27).collect(Collectors.toList()),rDimVoltageY.getV27()));
rDimVoltageY1.setV28(rDimVoltageY.getV28() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV28).collect(Collectors.toList()),rDimVoltageY.getV28()));
rDimVoltageY1.setV29(rDimVoltageY.getV29() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV29).collect(Collectors.toList()),rDimVoltageY.getV29()));
rDimVoltageY1.setV30(rDimVoltageY.getV30() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV30).collect(Collectors.toList()),rDimVoltageY.getV30()));
rDimVoltageY1.setV31(rDimVoltageY.getV31() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV31).collect(Collectors.toList()),rDimVoltageY.getV31()));
rDimVoltageY1.setV32(rDimVoltageY.getV32() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV32).collect(Collectors.toList()),rDimVoltageY.getV32()));
rDimVoltageY1.setV33(rDimVoltageY.getV33() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV33).collect(Collectors.toList()),rDimVoltageY.getV33()));
rDimVoltageY1.setV34(rDimVoltageY.getV34() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV34).collect(Collectors.toList()),rDimVoltageY.getV34()));
rDimVoltageY1.setV35(rDimVoltageY.getV35() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV35).collect(Collectors.toList()),rDimVoltageY.getV35()));
rDimVoltageY1.setV36(rDimVoltageY.getV36() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV36).collect(Collectors.toList()),rDimVoltageY.getV36()));
rDimVoltageY1.setV37(rDimVoltageY.getV37() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV37).collect(Collectors.toList()),rDimVoltageY.getV37()));
rDimVoltageY1.setV38(rDimVoltageY.getV38() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV38).collect(Collectors.toList()),rDimVoltageY.getV38()));
rDimVoltageY1.setV39(rDimVoltageY.getV39() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV39).collect(Collectors.toList()),rDimVoltageY.getV39()));
rDimVoltageY1.setV40(rDimVoltageY.getV40() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV40).collect(Collectors.toList()),rDimVoltageY.getV40()));
rDimVoltageY1.setV41(rDimVoltageY.getV41() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV41).collect(Collectors.toList()),rDimVoltageY.getV41()));
rDimVoltageY1.setV42(rDimVoltageY.getV42() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV42).collect(Collectors.toList()),rDimVoltageY.getV42()));
rDimVoltageY1.setV43(rDimVoltageY.getV43() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV43).collect(Collectors.toList()),rDimVoltageY.getV43()));
rDimVoltageY1.setV44(rDimVoltageY.getV44() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV44).collect(Collectors.toList()),rDimVoltageY.getV44()));
rDimVoltageY1.setV45(rDimVoltageY.getV45() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV45).collect(Collectors.toList()),rDimVoltageY.getV45()));
rDimVoltageY1.setV46(rDimVoltageY.getV46() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV46).collect(Collectors.toList()),rDimVoltageY.getV46()));
rDimVoltageY1.setV47(rDimVoltageY.getV47() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV47).collect(Collectors.toList()),rDimVoltageY.getV47()));
rDimVoltageY1.setV48(rDimVoltageY.getV48() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV48).collect(Collectors.toList()),rDimVoltageY.getV48()));
rDimVoltageY1.setV49(rDimVoltageY.getV49() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV49).collect(Collectors.toList()),rDimVoltageY.getV49()));
rDimVoltageY1.setV50(rDimVoltageY.getV50() == limit ? limit : calculateStandardDeviation(list.stream().map(RDimVoltageD::getV50).collect(Collectors.toList()),rDimVoltageY.getV50()));
return rDimVoltageY1;
}
private static double calculateStandardDeviation(List<Double> data, double mean) {
return Math.sqrt(calculateVariance(data, mean));
}
private static double calculateVariance(List<Double> data, double mean) {
return data.stream()
.mapToDouble(Double::doubleValue)
.map(value -> Math.pow(value - mean, 2))
.average()
.orElse(0.0);
}
} }