diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java index 3b6f4ba2c..fae84a1c9 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimVoltageM.java @@ -1,14 +1,11 @@ package com.njcn.harmonic.pojo.po.dim; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; -import com.njcn.db.bo.BaseEntity; -import java.io.Serializable; -import java.math.Double; -import java.time.LocalDate; - +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; -import lombok.Getter; -import lombok.Setter; + +import java.time.LocalDate; /** *

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

@@ -20,299 +17,260 @@ import lombok.Setter; */ @Data @TableName("r_dim_voltage_y") -public class RDimVoltageY extends BaseEntity { +public class RDimVoltageY { private static final long serialVersionUID = 1L; /** * 统计时间yyyy-mm-dd */ + @MppMultiId private LocalDate statisDate; /** * 单位id */ + @MppMultiId private String orgId; /** * 电压等级 */ + @MppMultiId private String voltageType; /** * 数据类型(avg:平均值 sd:标准差) */ + @MppMultiId private String dataType; /** * 电压(日平均值) */ - private BigDecimal v; + private Double v; /** * 三相电压不平衡(日95%概率大值) */ - private BigDecimal vUnbalance; + private Double vUnbalance; /** * 长时间闪变(日最大值) */ - private BigDecimal pst; + private Double pst; /** * 电压总谐波畸变率(日95%概率大值) */ - private BigDecimal vThd; + private Double vThd; - /** - * 基波电压(日95%概率大值) - */ - private BigDecimal v1; + @TableField(value = "v_1") + private Double v1; - /** - * 2次谐波电压(日95%概率大值) - */ - private BigDecimal v2; + @TableField(value = "v_2") + private Double v2; - /** - * 3次谐波电压(日95%概率大值) - */ - private BigDecimal v3; + @TableField(value = "v_3") + private Double v3; - /** - * 4次谐波电压(日95%概率大值) - */ - private BigDecimal v4; + @TableField(value = "v_4") + private Double v4; - /** - * 5次谐波电压(日95%概率大值) - */ - private BigDecimal v5; + @TableField(value = "v_5") + private Double v5; - /** - * 6次谐波电压(日95%概率大值) - */ - private BigDecimal v6; + @TableField(value = "v_6") + private Double v6; - /** - * 7次谐波电压(日95%概率大值) - */ - private BigDecimal v7; + @TableField(value = "v_7") + private Double v7; - /** - * 8次谐波电压(日95%概率大值) - */ - private BigDecimal v8; + @TableField(value = "v_8") + private Double v8; - /** - * 9次谐波电压(日95%概率大值) - */ - private BigDecimal v9; + @TableField(value = "v_9") + private Double v9; - /** - * 10次谐波电压(日95%概率大值) - */ - private BigDecimal v10; + @TableField(value = "v_10") + private Double v10; - /** - * 11次谐波电压(日95%概率大值) - */ - private BigDecimal v11; + @TableField(value = "v_11") + private Double v11; - /** - * 12次谐波电压(日95%概率大值) - */ - private BigDecimal v12; + @TableField(value = "v_12") + private Double v12; - /** - * 13次谐波电压(日95%概率大值) - */ - private BigDecimal v13; + @TableField(value = "v_13") + private Double v13; - /** - * 14次谐波电压(日95%概率大值) - */ - private BigDecimal v14; + @TableField(value = "v_14") + private Double v14; - /** - * 15次谐波电压(日95%概率大值) - */ - private BigDecimal v15; + @TableField(value = "v_15") + private Double v15; - /** - * 16次谐波电压(日95%概率大值) - */ - private BigDecimal v16; + @TableField(value = "v_16") + private Double v16; - /** - * 17次谐波电压(日95%概率大值) - */ - private BigDecimal v17; + @TableField(value = "v_17") + private Double v17; - /** - * 18次谐波电压(日95%概率大值) - */ - private BigDecimal v18; + @TableField(value = "v_18") + private Double v18; - /** - * 19次谐波电压(日95%概率大值) - */ - private BigDecimal v19; + @TableField(value = "v_19") + private Double v19; - /** - * 20次谐波电压(日95%概率大值) - */ - private BigDecimal v20; + @TableField(value = "v_20") + private Double v20; - /** - * 21次谐波电压(日95%概率大值) - */ - private BigDecimal v21; + @TableField(value = "v_21") + private Double v21; - /** - * 22次谐波电压(日95%概率大值) - */ - private BigDecimal v22; + @TableField(value = "v_22") + private Double v22; - /** - * 23次谐波电压(日95%概率大值) - */ - private BigDecimal v23; + @TableField(value = "v_23") + private Double v23; - /** - * 24次谐波电压(日95%概率大值) - */ - private BigDecimal v24; + @TableField(value = "v_24") + private Double v24; - /** - * 25次谐波电压(日95%概率大值) - */ - private BigDecimal v25; + @TableField(value = "v_25") + private Double v25; - /** - * 26次谐波电压(日95%概率大值) - */ - private BigDecimal v26; + @TableField(value = "v_26") + private Double v26; - /** - * 27次谐波电压(日95%概率大值) - */ - private BigDecimal v27; + @TableField(value = "v_27") + private Double v27; - /** - * 28次谐波电压(日95%概率大值) - */ - private BigDecimal v28; + @TableField(value = "v_28") + private Double v28; - /** - * 29次谐波电压(日95%概率大值) - */ - private BigDecimal v29; + @TableField(value = "v_29") + private Double v29; - /** - * 30次谐波电压(日95%概率大值) - */ - private BigDecimal v30; + @TableField(value = "v_30") + private Double v30; - /** - * 31次谐波电压(日95%概率大值) - */ - private BigDecimal v31; + @TableField(value = "v_31") + private Double v31; - /** - * 32次谐波电压(日95%概率大值) - */ - private BigDecimal v32; + @TableField(value = "v_32") + private Double v32; - /** - * 33次谐波电压(日95%概率大值) - */ - private BigDecimal v33; + @TableField(value = "v_33") + private Double v33; - /** - * 34次谐波电压(日95%概率大值) - */ - private BigDecimal v34; + @TableField(value = "v_34") + private Double v34; - /** - * 35次谐波电压(日95%概率大值) - */ - private BigDecimal v35; + @TableField(value = "v_35") + private Double v35; - /** - * 36次谐波电压(日95%概率大值) - */ - private BigDecimal v36; + @TableField(value = "v_36") + private Double v36; - /** - * 37次谐波电压(日95%概率大值) - */ - private BigDecimal v37; + @TableField(value = "v_37") + private Double v37; - /** - * 38次谐波电压(日95%概率大值) - */ - private BigDecimal v38; + @TableField(value = "v_38") + private Double v38; - /** - * 39次谐波电压(日95%概率大值) - */ - private BigDecimal v39; + @TableField(value = "v_39") + private Double v39; - /** - * 40次谐波电压(日95%概率大值) - */ - private BigDecimal v40; + @TableField(value = "v_40") + private Double v40; - /** - * 41次谐波电压(日95%概率大值) - */ - private BigDecimal v41; + @TableField(value = "v_41") + private Double v41; - /** - * 42次谐波电压(日95%概率大值) - */ - private BigDecimal v42; + @TableField(value = "v_42") + private Double v42; - /** - * 43次谐波电压(日95%概率大值) - */ - private BigDecimal v43; + @TableField(value = "v_43") + private Double v43; - /** - * 44次谐波电压(日95%概率大值) - */ - private BigDecimal v44; + @TableField(value = "v_44") + private Double v44; - /** - * 45次谐波电压(日95%概率大值) - */ - private BigDecimal v45; + @TableField(value = "v_45") + private Double v45; - /** - * 46次谐波电压(日95%概率大值) - */ - private BigDecimal v46; + @TableField(value = "v_46") + private Double v46; - /** - * 47次谐波电压(日95%概率大值) - */ - private BigDecimal v47; + @TableField(value = "v_47") + private Double v47; - /** - * 48次谐波电压(日95%概率大值) - */ - private BigDecimal v48; + @TableField(value = "v_48") + private Double v48; - /** - * 49次谐波电压(日95%概率大值) - */ - private BigDecimal v49; + @TableField(value = "v_49") + private Double v49; - /** - * 50次谐波电压(日95%概率大值) - */ - private BigDecimal v50; + @TableField(value = "v_50") + private Double 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; + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java index a9eb0dd70..5f4aa4d6e 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageMServiceImpl.java @@ -1,11 +1,11 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO; 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.RDimVoltageMMapper; 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 lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ehcache.core.util.CollectionUtil; import org.springframework.stereotype.Service; import java.time.LocalDate; @@ -47,24 +45,24 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl list = calculatedParam.getIdList(); DateTime startTime = DateUtil.beginOfMonth(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 deptList = list.stream().map(DeptGetBusBarDTO::getUnitId).collect(Collectors.toList()); //获取日表数据 Map> map = getDayData(startTime,endTime,deptList); 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> map1 = v.stream().collect(Collectors.groupingBy(RDimVoltageD::getVoltageType)); map1.forEach((k1,v1)->{ - rDimVoltageM.setVoltageType(k1); //获取平均值 - getAvg(v1,rDimVoltageM); - result.add(rDimVoltageM); + RDimVoltageM rDimVoltageM1 = getAvg(v1,k,time,k1); + result.add(rDimVoltageM1); //获取标准差 - getSd(v1,rDimVoltageM); - result.add(rDimVoltageM); + RDimVoltageM rDimVoltageM2 = getSd(v1,k,time,k1,rDimVoltageM1); + result.add(rDimVoltageM2); }); }); + if (CollectionUtil.isNotEmpty(result)){ + this.saveOrUpdateBatchByMultiId(result); + } } /** @@ -84,9 +82,12 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl list, RDimVoltageM rDimVoltageM) { + public RDimVoltageM getAvg(List list, String orgId, LocalDate time, String voltageLevel) { + RDimVoltageM rDimVoltageM = new RDimVoltageM(); + rDimVoltageM.setOrgId(orgId); + rDimVoltageM.setStatisDate(time); + rDimVoltageM.setVoltageType(voltageLevel); rDimVoltageM.setDataType("avg"); rDimVoltageM.setV(list.stream().mapToDouble(RDimVoltageD::getV).average().orElse(0d)); rDimVoltageM.setVUnbalance(list.stream().mapToDouble(RDimVoltageD::getVUnbalance).average().orElse(0d)); @@ -142,17 +143,87 @@ public class RDimVoltageMServiceImpl extends MppServiceImpl list, RDimVoltageM rDimVoltageM) { - rDimVoltageM.setDataType("sd"); + public RDimVoltageM getSd(List list, String orgId, LocalDate time, String voltageLevel,RDimVoltageM rDimVoltageM) { + 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 data, double mean) { + return Math.sqrt(calculateVariance(data, mean)); + } + + private static double calculateVariance(List data, double mean) { + return data.stream() + .mapToDouble(Double::doubleValue) + .map(value -> Math.pow(value - mean, 2)) + .average() + .orElse(0.0); } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageYServiceImpl.java index 2d2f460c6..b63214903 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageYServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimVoltageYServiceImpl.java @@ -1,13 +1,29 @@ 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.harmonic.pojo.po.dim.RDimVoltageD; 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.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageYService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; 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; + /** *

* 区域母线**电压等级**指标标准差、平均值-年表 服务实现类 @@ -17,10 +33,197 @@ import org.springframework.stereotype.Service; * @since 2023-11-29 */ @Service -public class RDimVoltageYServiceImpl extends ServiceImpl implements IRDimVoltageYService { +@RequiredArgsConstructor +@Slf4j +public class RDimVoltageYServiceImpl extends MppServiceImpl implements IRDimVoltageYService { + private final RDimVoltageDMapper rDimVoltageDMapper; @Override public void busbarVoltageY(CalculatedParam calculatedParam) { - + List result = new ArrayList<>(); + List 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 deptList = list.stream().map(DeptGetBusBarDTO::getUnitId).collect(Collectors.toList()); + //获取日表数据 + Map> map = getDayData(startTime,endTime,deptList); + map.forEach((k,v)->{ + Map> 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> getDayData(DateTime startTime, DateTime endTime, List deptList) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(RDimVoltageD::getOrgId,deptList).between(RDimVoltageD::getStatisDate,startTime,endTime); + List list = rDimVoltageDMapper.selectList(lambdaQueryWrapper); + return list.stream().collect(Collectors.groupingBy(RDimVoltageD::getOrgId)); + } + + /** + * 获取平均值 + * @param list 数据集合 + */ + public RDimVoltageY getAvg(List 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 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 data, double mean) { + return Math.sqrt(calculateVariance(data, mean)); + } + + private static double calculateVariance(List data, double mean) { + return data.stream() + .mapToDouble(Double::doubleValue) + .map(value -> Math.pow(value - mean, 2)) + .average() + .orElse(0.0); + } + + }