diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java index 4b8d3f8a3..936106658 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java @@ -28,4 +28,10 @@ public class WaveDataDTO implements Serializable { private List> listRmsData; //波形对应的相别数量 private Integer iPhasic; + //接线方式(0.星型接法;1.三角型接法;2.开口三角型接法) + private Integer ptType; + //PT变比 + private Double pt; + //CT变比" + private Double ct; } diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java index a6a6acc30..3123caf20 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java @@ -79,6 +79,8 @@ public enum CommonResponseEnum { DELETE_PID_EXIST("A0094", "存在子节点"), DELETE_PID_UNEXIST("A0095", "不存在子节点"), + + FILE_EXIST("A0096", "文件已存在"), ; private final String code; diff --git a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java index 00c492a46..2f4b6db3e 100644 --- a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java +++ b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java @@ -209,6 +209,16 @@ public interface InfluxDBPublicParam { */ String LIMIT_TARGET = "limit_target"; + /** + * pqs_comasses + */ + String PQS_COMASSES = "pqs_comasses"; + + /** + * 终端运维日志表 + */ + String PQS_TERMINAL_LOGS = "pqs_terminal_logs"; + /** * 监测点状态信息表 */ @@ -246,5 +256,9 @@ public interface InfluxDBPublicParam { String DEV_INDEX = "dev_id"; + /** + * 稳态数据分析字段 + */ + String PHASIC_TYPET = "T"; } diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/AlarmStrategyParam.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/AlarmStrategyParam.java index ab6e0d030..16a5dd996 100644 --- a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/AlarmStrategyParam.java +++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/AlarmStrategyParam.java @@ -17,7 +17,7 @@ import javax.validation.constraints.Pattern; @Data public class AlarmStrategyParam { - @ApiModelProperty(value = "告警策略Id", required = true) + @ApiModelProperty(value = "告警策略Id 关联字典表id", required = true) @NotBlank(message = DeviceValidMessage.ID_NOT_BLANK) @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) private String id; diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java index 0c3cdcd8e..5ae96eb7c 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java @@ -75,7 +75,7 @@ public class ProgramVersionController extends BaseController { String methodDescribe = getMethodDescribe("getProgramVersionById"); boolean res = programService.getProgramVersionById(id); if (res) { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FILE_EXIST, null, methodDescribe); } else { throw new BusinessException(CommonResponseEnum.NO_DATA); } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LogManageServiceImpl.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LogManageServiceImpl.java index 097c365bf..b262b844e 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LogManageServiceImpl.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LogManageServiceImpl.java @@ -13,6 +13,7 @@ import com.njcn.device.pojo.vo.EventLogVO; import com.njcn.device.service.LogManageService; import com.njcn.event.api.EventDetailFeignClient; import com.njcn.event.pojo.po.EventDetail; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; @@ -151,12 +152,12 @@ public class LogManageServiceImpl implements LogManageService { List terminalLogs; //组装sql语句 StringBuilder string = new StringBuilder(); - string.append(DeviceValidMessage.TIME + " >= '" + startTime + DeviceValidMessage.START_TIME + "' and " + DeviceValidMessage.TIME + " <= '" + endTime + DeviceValidMessage.END_TIME + "'"); + string.append(InfluxDBPublicParam.TIME + " >= '" + startTime + InfluxDBPublicParam.START_TIME + "' and " + InfluxDBPublicParam.TIME + " <= '" + endTime + InfluxDBPublicParam.END_TIME + "'"); if (!type.isEmpty()) { - string.append(" and terminal_type = '" + type +"'").append(" tz('Asia/Shanghai')"); + string.append(" and terminal_type = '" + type +"'"); } //sql语句 - String sql = "SELECT * FROM pqs_terminal_logs WHERE " + string; + String sql = "SELECT * FROM "+InfluxDBPublicParam.PQS_TERMINAL_LOGS+" WHERE " + string + InfluxDBPublicParam.TIME_ZONE; System.out.println("sql==========="+sql); //结果集 QueryResult results = influxDbUtils.query(sql); @@ -179,10 +180,10 @@ public class LogManageServiceImpl implements LogManageService { StringBuilder string = new StringBuilder(); string.append(DeviceValidMessage.TIME + " >= '" + startTime + DeviceValidMessage.START_TIME + "' and " + DeviceValidMessage.TIME + " <= '" + endTime + DeviceValidMessage.END_TIME + "'"); if (result==1 || result==2) { - string.append(" and result=" + result).append(" tz('Asia/Shanghai')"); + string.append(" and result=" + result); } //sql语句 - String sql = "SELECT * FROM pqs_event_push_logs WHERE " + string; + String sql = "SELECT * FROM pqs_event_push_logs WHERE " + string +InfluxDBPublicParam.TIME_ZONE; System.out.println("sql==========="+sql); //结果集 QueryResult results = influxDbUtils.query(sql); diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/enums/HarmonicResponseEnum.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/enums/HarmonicResponseEnum.java index 9f4e7ce28..2196780cc 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/enums/HarmonicResponseEnum.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/enums/HarmonicResponseEnum.java @@ -14,7 +14,8 @@ public enum HarmonicResponseEnum { * 谐波模块异常响应码的范围: * A00550 ~ A00649 */ - HARMONIC_COMMON_ERROR("A00550","谐波模块异常") + HARMONIC_COMMON_ERROR("A00550","谐波模块异常"), + LIMIT_RATE_ERROR("A00551","稳态监测点数据异常") ; private final String code; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SteadyQualifyDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SteadyQualifyDTO.java index 3c71cf42a..a09790885 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SteadyQualifyDTO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SteadyQualifyDTO.java @@ -10,7 +10,6 @@ import lombok.Data; @Data public class SteadyQualifyDTO { - private String id; //时间索引 private String time; //监测点索引 diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/LimitRatePO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/LimitRatePO.java index 3a772a1d8..b356c050f 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/LimitRatePO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/LimitRatePO.java @@ -12,232 +12,232 @@ import java.time.Instant; * @date: 2022/04/19 17:37 */ @Data -@Measurement(name = "LIMIT_RATE") +@Measurement(name = "limit_rate") public class LimitRatePO { //时间索引 @Column(name = "time") private Instant time; //监测点索引 - @Column(name = "MYINDEX") + @Column(name = "line_id") private String lineId; //数据类型 - @Column(name = "Phasic_Type") + @Column(name = "phasic_type") private String phasicType; //总次数 - @Column(name = "AllTime") + @Column(name = "all_time") private Integer allTime; //闪变越限次数 - @Column(name = "Flicker_OverTime") + @Column(name = "flicker_overtime") private Integer flickerOverTime; //闪变总次数 - @Column(name = "Flicker_AllTime") + @Column(name = "flicker_all_time") private Integer flickerAllTime; //频率偏差越限次数 - @Column(name = "Freq_Dev_OverTime") + @Column(name = "freq_dev_overtime") private Integer freqDevOverTime; //电压偏差越限次数 - @Column(name = "Voltage_Dev_OverTime") + @Column(name = "voltage_dev_overtime") private Integer voltageDevOverTime; //电压不平衡度越限次数 - @Column(name = "UBalance_OverTime") + @Column(name = "ubalance_overtime") private Integer uBalanceOverTime; //电压谐波畸变率越限次数 - @Column(name = "UAberrance_OverTime") + @Column(name = "uaberrance_overtime") private Integer uAberranceOverTime; //负序电流限值次数 - @Column(name = "I_Neg_OverTime") + @Column(name = "i_neg_overtime") private Integer iNegOverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_2_OverTime") + @Column(name = "uharm_2_overtime") private Integer uHarm2OverTime; //3次电压谐波含有率越限次数 - @Column(name = "UHarm_3_OverTime") + @Column(name = "uharm_3_overtime") private Integer uHarm3OverTime; //4次电压谐波含有率越限次数 - @Column(name = "UHarm_4_OverTime") + @Column(name = "uharm_4_overtime") private Integer uHarm4OverTime; //5次电压谐波含有率越限次数 - @Column(name = "UHarm_5_OverTime") + @Column(name = "uharm_5_overtime") private Integer uHarm5OverTime; //6次电压谐波含有率越限次数 - @Column(name = "UHarm_6_OverTime") + @Column(name = "uharm_6_overtime") private Integer uHarm6OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_7_OverTime") + @Column(name = "uharm_7_overtime") private Integer uHarm7OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_8_OverTime") + @Column(name = "uharm_8_overtime") private Integer uHarm8OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_9_OverTime") + @Column(name = "uharm_9_overtime") private Integer uHarm9OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_10_OverTime") + @Column(name = "uharm_10_overtime") private Integer uHarm10OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_11_OverTime") + @Column(name = "uharm_11_overtime") private Integer uHarm11OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_12_OverTime") + @Column(name = "uharm_12_overtime") private Integer uHarm12OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_13_OverTime") + @Column(name = "uharm_13_overtime") private Integer uHarm13OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_14_OverTime") + @Column(name = "uharm_14_overtime") private Integer uHarm14OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_15_OverTime") + @Column(name = "uharm_15_overtime") private Integer uHarm15OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_16_OverTime") + @Column(name = "uharm_16_overtime") private Integer uHarm16OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_17_OverTime") + @Column(name = "uharm_17_overtime") private Integer uHarm17OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_18_OverTime") + @Column(name = "uharm_18_overtime") private Integer uHarm18OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_19_OverTime") + @Column(name = "uharm_19_overtime") private Integer uHarm19OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_20_OverTime") + @Column(name = "uharm_20_overtime") private Integer uHarm20OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_21_OverTime") + @Column(name = "uharm_21_overtime") private Integer uHarm21OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_22_OverTime") + @Column(name = "uharm_22_overtime") private Integer uHarm22OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_23_OverTime") + @Column(name = "uharm_23_overtime") private Integer uHarm23OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_24_OverTime") + @Column(name = "uharm_24_overtime") private Integer uHarm24OverTime; //2次电压谐波含有率越限次数 - @Column(name = "UHarm_25_OverTime") + @Column(name = "uharm_25_overtime") private Integer uHarm25OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_2_OverTime") + @Column(name = "iharm_2_overtime") private Integer iHarm2OverTime; //3次电流谐波幅值越限次数 - @Column(name = "IHarm_3_OverTime") + @Column(name = "iharm_3_overtime") private Integer iHarm3OverTime; //4次电流谐波幅值越限次数 - @Column(name = "IHarm_4_OverTime") + @Column(name = "iharm_4_overtime") private Integer iHarm4OverTime; //5次电流谐波幅值越限次数 - @Column(name = "IHarm_5_OverTime") + @Column(name = "iharm_5_overtime") private Integer iHarm5OverTime; //6次电流谐波幅值越限次数 - @Column(name = "IHarm_6_OverTime") + @Column(name = "iharm_6_overtime") private Integer iHarm6OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_7_OverTime") + @Column(name = "iharm_7_overtime") private Integer iHarm7OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_8_OverTime") + @Column(name = "iharm_8_overtime") private Integer iHarm8OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_9_OverTime") + @Column(name = "iharm_9_overtime") private Integer iHarm9OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_10_OverTime") + @Column(name = "iharm_10_overtime") private Integer iHarm10OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_11_OverTime") + @Column(name = "iharm_11_overtime") private Integer iHarm11OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_12_OverTime") + @Column(name = "iharm_12_overtime") private Integer iHarm12OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_13_OverTime") + @Column(name = "iharm_13_overtime") private Integer iHarm13OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_14_OverTime") + @Column(name = "iharm_14_overtime") private Integer iHarm14OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_15_OverTime") + @Column(name = "iharm_15_overtime") private Integer iHarm15OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_16_OverTime") + @Column(name = "iharm_16_overtime") private Integer iHarm16OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_17_OverTime") + @Column(name = "iharm_17_overtime") private Integer iHarm17OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_18_OverTime") + @Column(name = "iharm_18_overtime") private Integer iHarm18OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_19_OverTime") + @Column(name = "iharm_19_overtime") private Integer iHarm19OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_20_OverTime") + @Column(name = "iharm_20_overtime") private Integer iHarm20OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_21_OverTime") + @Column(name = "iharm_21_overtime") private Integer iHarm21OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_22_OverTime") + @Column(name = "iharm_22_overtime") private Integer iHarm22OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_23_OverTime") + @Column(name = "iharm_23_overtime") private Integer iHarm23OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_24_OverTime") + @Column(name = "iharm_24_overtime") private Integer iHarm24OverTime; //2次电流谐波幅值越限次数 - @Column(name = "IHarm_25_OverTime") + @Column(name = "iharm_25_overtime") private Integer iHarm25OverTime; //0.5次间谐波电压限值次数 - @Column(name = "InUHARM_1_OverTime") + @Column(name = "inuharm_1_overtime") private Integer inUHARM1OverTime; //1.5次间谐波电压限值次数 - @Column(name = "InUHARM_2_OverTime") + @Column(name = "inuharm_2_overtime") private Integer inUHARM2OverTime; //2.5次间谐波电压限值次数 - @Column(name = "InUHARM_3_OverTime") + @Column(name = "inuharm_3_overtime") private Integer inUHARM3OverTime; //3.5次间谐波电压限值次数 - @Column(name = "InUHARM_4_OverTime") + @Column(name = "inuharm_4_overtime") private Integer inUHARM4OverTime; //4.5次间谐波电压限值次数 - @Column(name = "InUHARM_5_OverTime") + @Column(name = "inuharm_5_overtime") private Integer inUHARM5OverTime; //5.5次间谐波电压限值次数 - @Column(name = "InUHARM_6_OverTime") + @Column(name = "inuharm_6_overtime") private Integer inUHARM6OverTime; //6.5次间谐波电压限值次数 - @Column(name = "InUHARM_7_OverTime") + @Column(name = "inuharm_7_overtime") private Integer inUHARM7OverTime; //7.5次间谐波电压限值次数 - @Column(name = "InUHARM_8_OverTime") + @Column(name = "inuharm_8_overtime") private Integer inUHARM8OverTime; //8.5次间谐波电压限值次数 - @Column(name = "InUHARM_9_OverTime") + @Column(name = "inuharm_9_overtime") private Integer inUHARM9OverTime; //9.5次间谐波电压限值次数 - @Column(name = "InUHARM_10_OverTime") + @Column(name = "inuharm_10_overtime") private Integer inUHARM10OverTime; //10.5次间谐波电压限值次数 - @Column(name = "InUHARM_11_OverTime") + @Column(name = "inuharm_11_overtime") private Integer inUHARM11OverTime; //11.5次间谐波电压限值次数 - @Column(name = "InUHARM_12_OverTime") + @Column(name = "inuharm_12_overtime") private Integer inUHARM12OverTime; //12.5次间谐波电压限值次数 - @Column(name = "InUHARM_13_OverTime") + @Column(name = "inuharm_13_overtime") private Integer inUHARM13OverTime; //13.5次间谐波电压限值次数 - @Column(name = "InUHARM_14_OverTime") + @Column(name = "inuharm_14_overtime") private Integer inUHARM14OverTime; //14.5次间谐波电压限值次数 - @Column(name = "InUHARM_15_OverTime") + @Column(name = "inuharm_15_overtime") private Integer inUHARM15OverTime; //15.5次间谐波电压限值次数 - @Column(name = "InUHARM_16_OverTime") + @Column(name = "inuharm_16_overtime") private Integer inUHARM16OverTime; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/PQSComAssesPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/PQSComAssesPO.java index 93527bb05..9d1267a82 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/PQSComAssesPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/PQSComAssesPO.java @@ -12,103 +12,103 @@ import java.time.Instant; * @date: 2022/04/21 14:58 */ @Data -@Measurement(name = "PQS_COMASSES") +@Measurement(name = "pqs_comasses") public class PQSComAssesPO { //时间索引 @Column(name = "time") private Instant time; //监测点索引 - @Column(name = "LineID") + @Column(name = "line_id") private String lineId; //电压正偏差等级1 - @Column(name = "VU_Dev1") + @Column(name = "vu_dev1") private Double vuDev1; //电压正偏差等级2 - @Column(name = "VU_Dev2") + @Column(name = "vu_dev2") private Double vuDev2; //电压正偏差等级3 - @Column(name = "VU_Dev3") + @Column(name = "vu_dev3") private Double vuDev3; //电压正偏差等级4 - @Column(name = "VU_Dev4") + @Column(name = "vu_dev4") private Double vuDev4; //电压正偏差等级5 - @Column(name = "VU_Dev5") + @Column(name = "vu_dev5") private Double vuDev5; //频率偏差等级1 - @Column(name = "Freq_Dev1") + @Column(name = "freq_dev1") private Double freqDev1; //频率偏差等级2 - @Column(name = "Freq_Dev2") + @Column(name = "freq_dev2") private Double freqDev2; //频率偏差等级3 - @Column(name = "Freq_Dev3") + @Column(name = "freq_dev3") private Double freqDev3; //频率偏差等级4 - @Column(name = "Freq_Dev4") + @Column(name = "freq_dev4") private Double freqDev4; //频率偏差等级5 - @Column(name = "Freq_Dev5") + @Column(name = "freq_dev5") private Double freqDev5; //电压闪变等级1 - @Column(name = "Data_PST1") + @Column(name = "data_plt1") private Double dataPST1; //电压闪变等级2 - @Column(name = "Data_PST2") + @Column(name = "data_plt2") private Double dataPST2; //电压闪变等级3 - @Column(name = "Data_PST3") + @Column(name = "data_plt3") private Double dataPST3; //电压闪变等级4 - @Column(name = "Data_PST4") + @Column(name = "data_plt4") private Double dataPST4; //电压闪变等级5 - @Column(name = "Data_PST5") + @Column(name = "data_plt5") private Double dataPST5; //电压不平衡度等级1 - @Column(name = "V_Unbalance1") + @Column(name = "v_unbalance1") private Double vUnbalance1; //电压不平衡度等级2 - @Column(name = "V_Unbalance2") + @Column(name = "v_unbalance2") private Double vUnbalance2; //电压不平衡度等级3 - @Column(name = "V_Unbalance3") + @Column(name = "v_unbalance3") private Double vUnbalance3; //电压不平衡度等级4 - @Column(name = "V_Unbalance4") + @Column(name = "v_unbalance4") private Double vUnbalance4; //电压不平衡度等级5 - @Column(name = "V_Unbalance5") + @Column(name = "v_unbalance5") private Double vUnbalance5; //谐波含量等级1 - @Column(name = "V_THD1") + @Column(name = "v_thd1") private Double vTHD1; //谐波含量等级2 - @Column(name = "V_THD2") + @Column(name = "v_thd2") private Double vTHD2; //谐波含量等级3 - @Column(name = "V_THD3") + @Column(name = "v_thd3") private Double vTHD3; //谐波含量等级4 - @Column(name = "V_THD4") + @Column(name = "v_thd4") private Double vTHD4; //谐波含量等级5 - @Column(name = "V_THD5") + @Column(name = "v_thd5") private Double vTHD5; //电压暂降等级1 - @Column(name = "Event1") + @Column(name = "event1") private Double event1; //电压暂降等级2 - @Column(name = "Event2") + @Column(name = "event2") private Double event2; //电压暂降等级3 - @Column(name = "Event3") + @Column(name = "event3") private Double event3; //电压暂降等级4 - @Column(name = "Event4") + @Column(name = "event4") private Double event4; //电压暂降等级5 - @Column(name = "Event5") + @Column(name = "event5") private Double event5; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/OnlineRateDataController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/OnlineRateDataController.java index f55431608..0e7778d7b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/OnlineRateDataController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/OnlineRateDataController.java @@ -50,7 +50,7 @@ public class OnlineRateDataController extends BaseController { @OperateInfo @PostMapping("/getOnlineRateDataCensus") - @ApiOperation("终端在线率统计") + @ApiOperation("终端在线率图表") @ApiImplicitParam(name = "onlineRateCensusParam", value = "终端在线率参数", required = true) public HttpResult getOnlineRateDataCensus(@RequestBody @Validated DeviceInfoParam.CompareBusinessParam onlineRateCensusParam){ String methodDescribe = getMethodDescribe("getOnlineRateDataCensus"); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ComAssessServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ComAssessServiceImpl.java index 357cdf09e..99d86841f 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ComAssessServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ComAssessServiceImpl.java @@ -3,12 +3,12 @@ package com.njcn.harmonic.service.impl; import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.param.DeviceInfoParam; -import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.pojo.dto.ComAssessDTO; import com.njcn.harmonic.pojo.po.PQSComAssesPO; import com.njcn.harmonic.pojo.vo.ComAssessVO; import com.njcn.harmonic.service.ComAssessService; import com.njcn.harmonic.utils.HarmonicComAssesUtil; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; @@ -48,12 +48,13 @@ public class ComAssessServiceImpl implements ComAssessService { comAssessVO.setMonitors(lineIndexes.size()); if (!CollectionUtils.isEmpty(lineIndexes)) { List pqsComAssesPOS = getComAccessData(lineIndexes, comAccessParam.getSearchBeginTime(), comAccessParam.getSearchEndTime()); - setResults(pqsComAssesPOS,comAssessDTOS); - - float allComAss = comAssesUtil.getAllComAss(comAssessDTOS); - String lv = getLevel(allComAss); - comAssessVO.setData(allComAss); - comAssessVO.setLevel(lv); + if (!CollectionUtils.isEmpty(pqsComAssesPOS)) { + setResults(pqsComAssesPOS,comAssessDTOS); + float allComAss = comAssesUtil.getAllComAss(comAssessDTOS); + String lv = getLevel(allComAss); + comAssessVO.setData(allComAss); + comAssessVO.setLevel(lv); + } } comAssessVOList.add(comAssessVO); } @@ -62,6 +63,7 @@ public class ComAssessServiceImpl implements ComAssessService { return comAssessVOList; } + //设置保留四位小数 private void setResults(List pqsComAssesPOS, List comAssessDTOS) { for (int i = 0; i < pqsComAssesPOS.size(); i++) { float v1 = new BigDecimal(pqsComAssesPOS.get(i).getVuDev1()).setScale(4, BigDecimal.ROUND_HALF_UP).floatValue(); @@ -150,6 +152,7 @@ public class ComAssessServiceImpl implements ComAssessService { /** * influxDB查询综合评估相关信息 + * 返回每个监测点在时间段的各指标平均数 * @param lineIndexes * @param searchBeginTime * @param searchEndTime @@ -157,26 +160,24 @@ public class ComAssessServiceImpl implements ComAssessService { private List getComAccessData(List lineIndexes, String searchBeginTime, String searchEndTime) { //组装sql语句 StringBuilder builder = new StringBuilder(); - builder.append("MEAN(VU_Dev1)AS VU_Dev1, MEAN(VU_Dev2)AS VU_Dev2, MEAN(VU_Dev3)AS VU_Dev3, MEAN(VU_Dev4)AS VU_Dev4, MEAN(VU_Dev5)AS VU_Dev5, MEAN(Freq_Dev1)AS Freq_Dev1, MEAN(Freq_Dev2)AS Freq_Dev2, MEAN(Freq_Dev3)AS Freq_Dev3, MEAN(Freq_Dev4)AS Freq_Dev4, MEAN(Freq_Dev5)AS Freq_Dev5, MEAN(Data_PST1)AS Data_PST1, MEAN(Data_PST2)AS Data_PST2, MEAN(Data_PST3)AS Data_PST3, MEAN(Data_PST4)AS Data_PST4, MEAN(Data_PST5)AS Data_PST5, MEAN(V_Unbalance1)AS V_Unbalance1, MEAN(V_Unbalance2)AS V_Unbalance2, MEAN(V_Unbalance3)AS V_Unbalance3, MEAN(V_Unbalance4)AS V_Unbalance4, MEAN(V_Unbalance5)AS V_Unbalance5, MEAN(V_THD1)AS V_THD1, MEAN(V_THD2)AS V_THD2, MEAN(V_THD3)AS V_THD3, MEAN(V_THD4)AS V_THD4, MEAN(V_THD5)AS V_THD5, MEAN(Event1)AS Event1, MEAN(Event2)AS Event2, MEAN(Event3)AS Event3, MEAN(Event4)AS Event4, MEAN(Event5)AS Event5"); + builder.append("MEAN(vu_dev1)AS vu_dev1, MEAN(vu_dev2)AS vu_dev2, MEAN(vu_dev3)AS vu_dev3, MEAN(vu_dev4)AS vu_dev4, MEAN(vu_dev5)AS vu_dev5, MEAN(freq_dev1)AS freq_dev1, MEAN(freq_dev2)AS freq_dev2, MEAN(freq_dev3)AS freq_dev3, MEAN(freq_dev4)AS freq_dev4, MEAN(freq_dev5)AS freq_dev5, MEAN(data_plt1)AS data_plt1, MEAN(data_plt2)AS data_plt2, MEAN(data_plt3)AS data_plt3, MEAN(data_plt4)AS data_plt4, MEAN(data_plt5)AS data_plt5, MEAN(v_unbalance1)AS v_unbalance1, MEAN(v_unbalance2)AS v_unbalance2, MEAN(v_unbalance3)AS v_unbalance3, MEAN(v_unbalance4)AS v_unbalance4, MEAN(v_unbalance5)AS v_unbalance5, MEAN(v_thd1)AS v_thd1, MEAN(v_thd2)AS v_thd2, MEAN(v_thd3)AS v_thd3, MEAN(v_thd4)AS v_thd4, MEAN(v_thd5)AS v_thd5, MEAN(event1)AS event1, MEAN(event2)AS event2, MEAN(event3)AS event3, MEAN(event4)AS event4, MEAN(event5)AS event5"); StringBuffer string = new StringBuffer(); - string.append(Param.TIME + " >= '" + searchBeginTime + Param.START_TIME + "' and " + Param.TIME + " <= '" + searchEndTime + Param.END_TIME + "' and "); + string.append(InfluxDBPublicParam.TIME + " >= '" + searchBeginTime + InfluxDBPublicParam.START_TIME + "' and " + InfluxDBPublicParam.TIME + " <= '" + searchEndTime + InfluxDBPublicParam.END_TIME + "' and "); for (int i = 0; i < lineIndexes.size(); i++) { if (lineIndexes.size() - i != 1) { - string.append(Param.LINEID + "='").append(lineIndexes.get(i)).append("' or "); + string.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' or "); } else { - string.append(Param.LINEID + "='").append(lineIndexes.get(i)).append("' group by " + Param.LINEID); + string.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' group by " + InfluxDBPublicParam.LINE_ID); } } - //sql语句 - String sql = "SELECT "+ builder +" FROM PQS_COMASSES WHERE " + string; + String sql = "SELECT "+ builder +" FROM "+InfluxDBPublicParam.PQS_COMASSES+" WHERE " + string + InfluxDBPublicParam.TIME_ZONE; //结果集 + System.out.println("--------------->>>>"+sql); QueryResult result = influxDbUtils.query(sql); //结果集映射到对象中 InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List pqsComAssesPOS = resultMapper.toPOJO(result, PQSComAssesPO.class); - - return pqsComAssesPOS; } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java index abbf87ace..48e35905b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java @@ -9,12 +9,12 @@ import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.enums.LineBaseEnum; import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.param.DeviceInfoParam; -import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.IntegrityMapper; import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.vo.IntegrityIconVO; import com.njcn.harmonic.pojo.vo.IntegrityVO; import com.njcn.harmonic.service.IntegrityService; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.pojo.bo.BaseLineExcelBody; @@ -29,7 +29,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.io.File; -import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; @@ -325,16 +324,16 @@ public class IntegrityServiceImpl implements IntegrityService { List integrityList = new ArrayList<>(); //组装sql语句 StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(Param.TIME + " >= '").append(startTime).append(Param.START_TIME).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append(Param.END_TIME).append("' and ("); + stringBuilder.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append(InfluxDBPublicParam.START_TIME).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append(InfluxDBPublicParam.END_TIME).append("' and ("); for (int i = 0; i < lineList.size(); i++) { if (lineList.size() - i != 1) { - stringBuilder.append(Param.LINE_INDEX + "='").append(lineList.get(i)).append("' or "); + stringBuilder.append(InfluxDBPublicParam.LINE_ID + "='").append(lineList.get(i)).append("' or "); } else { - stringBuilder.append(Param.LINE_INDEX + "='").append(lineList.get(i)).append("')"); + stringBuilder.append(InfluxDBPublicParam.LINE_ID + "='").append(lineList.get(i)).append("')"); } } //sql语句 - String sql = "SELECT SUM(" + Param.REAL + ")/SUM(" + Param.DUE + ")*100 AS integrity FROM PQS_INTEGRITY WHERE " + stringBuilder + " group by " + Param.LINE_INDEX + " tz('Asia/Shanghai')"; + String sql = "SELECT SUM(" + InfluxDBPublicParam.REAL + ")/SUM(" + InfluxDBPublicParam.DUE + ")*100 AS integrity FROM "+InfluxDBPublicParam.PQS_INTEGRITY+" WHERE " + stringBuilder + " group by " + InfluxDBPublicParam.LINE_ID + " tz('Asia/Shanghai')"; //结果集 QueryResult result = influxDbUtils.query(sql); //处理结果集 @@ -343,7 +342,7 @@ public class IntegrityServiceImpl implements IntegrityService { list.forEach(po -> { PublicDTO publicDTO = new PublicDTO(); List> valueList = po.getValues(); - String index = po.getTags().get(Param.LINE_INDEX); + String index = po.getTags().get(InfluxDBPublicParam.LINE_ID); if (!CollectionUtils.isEmpty(valueList)) { for (List value : valueList) { //数据完整性 保留四位小数 diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java index 4dbb5ba06..11d3770c1 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java @@ -1,17 +1,16 @@ package com.njcn.harmonic.service.impl; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.njcn.common.config.GeneralInfo; import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.param.DeviceInfoParam; -import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.OnlineRateDataMapper; import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.vo.OnlineRateCensusVO; import com.njcn.harmonic.pojo.vo.OnlineRateVO; import com.njcn.harmonic.service.OnlineRateDataService; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; @@ -21,7 +20,6 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -100,43 +98,7 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { onlineRateCensusVO.setSingle(single); onlineRateCensusVO.setRatio(ratio); - // List list = new ArrayList<>(); - // List periodList = new ArrayList<>(); - // OnlineRateCensusVO onlineRateCensusVO = new OnlineRateCensusVO(); - // OnlineRateParam onlineRateParam = new OnlineRateParam(); - // BeanUtil.copyProperties(onlineRateCensusParam,onlineRateParam); - // List type = new ArrayList<>(); - // List single = new ArrayList<>(); - // List ratio = new ArrayList<>(); - // if (Objects.equals(onlineRateCensusParam.getStatisticalType(),0)){ - // list = getOnlineRateData(onlineRateParam).get(0).getChildren(); - // } else { - // list = getOnlineRateData(onlineRateParam); - // } - // if (!CollectionUtils.isEmpty(list)){ - // list.forEach(onlineRateVO -> { - // type.add(onlineRateVO.getName()); - // single.add(onlineRateVO.getOnlineRateData()); - // onlineRateCensusVO.setType(type); - // onlineRateCensusVO.setSingle(single); - // }); - // } - // if (StringUtils.isNotBlank(onlineRateCensusParam.getPeriodBeginTime()) && - // StringUtils.isNotBlank(onlineRateCensusParam.getPeriodEndTime())){ - // onlineRateParam.setSearchBeginTime(onlineRateCensusParam.getPeriodBeginTime()); - // onlineRateParam.setSearchEndTime(onlineRateCensusParam.getPeriodEndTime()); - // if (Objects.equals(onlineRateCensusParam.getStatisticalType(),0)){ - // periodList = getOnlineRateData(onlineRateParam).get(0).getChildren(); - // } else { - // periodList = getOnlineRateData(onlineRateParam); - // } - // if (!CollectionUtils.isEmpty(periodList)) { - // periodList.forEach(onlineRateVO -> { - // ratio.add(onlineRateVO.getOnlineRateData()); - // onlineRateCensusVO.setRatio(ratio); - // }); - // } - // } + return onlineRateCensusVO; } @@ -161,9 +123,9 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { })).collect(Collectors.toList()); } substationList.stream().peek(item -> item.setChildren(getChildCategoryList(item, deviceList))).collect(Collectors.toList()); + setSubstationListOnlineRate(substationList); powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList()); - setFatherOnlineRate(substationList); - setFatherOnlineRate(powerCompanyList); + setPowerCompanyListOnlineRate(powerCompanyList); return powerCompanyList; } @@ -183,16 +145,16 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { List publicDTOList = new ArrayList<>(); //组装sql语句 StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(Param.TIME + " >= '").append(startTime).append(Param.START_TIME).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append(Param.END_TIME).append("' and ("); + stringBuilder.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append(InfluxDBPublicParam.START_TIME).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append(InfluxDBPublicParam.END_TIME).append("' and ("); for (int i = 0; i < deviceIndexes.size(); i++) { if (deviceIndexes.size() - i != 1) { - stringBuilder.append(Param.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("' or "); + stringBuilder.append(InfluxDBPublicParam.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("' or "); } else { - stringBuilder.append(Param.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("')"); + stringBuilder.append(InfluxDBPublicParam.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("')"); } } //sql语句 - String sql = "SELECT (SUM(" + Param.ONLINEMIN + ")/(SUM(" + Param.OFFLINEMIN + ")+SUM(" + Param.ONLINEMIN + ")))*100 AS onlineRate FROM pqs_onlinerate WHERE " + stringBuilder + " group by " + Param.DEV_INDEX; + String sql = "SELECT (SUM(" + InfluxDBPublicParam.ONLINEMIN + ")/(SUM(" + InfluxDBPublicParam.OFFLINEMIN + ")+SUM(" + InfluxDBPublicParam.ONLINEMIN + ")))*100 AS onlineRate FROM "+InfluxDBPublicParam.PQS_ONLINERATE+" WHERE " + stringBuilder + " group by " + InfluxDBPublicParam.DEV_INDEX +" tz('Asia/Shanghai')"; //结果集 QueryResult result = influxDbUtils.query(sql); //处理结果集 @@ -201,7 +163,7 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { list.forEach(po -> { PublicDTO publicDTO = new PublicDTO(); List> valueList = po.getValues(); - String index = po.getTags().get(Param.DEV_INDEX); + String index = po.getTags().get(InfluxDBPublicParam.DEV_INDEX); if (!CollectionUtils.isEmpty(valueList)) { for (List value : valueList) { //终端在线率 保留两位小数 @@ -216,102 +178,41 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { return publicDTOList; } - /** - * 父级组装 - */ - private void setFatherData(Map> map, List list, DeviceInfoParam.BusinessParam onlineRateParam) { - for (String key : map.keySet()) { - if (!CollectionUtils.isEmpty(map.get(key))) { - List onlineRateVOList = getTreeData(map.get(key), onlineRateParam); - //拼接父级 - OnlineRateVO onlineRateVO = new OnlineRateVO(); - onlineRateVO.setId("0"); - onlineRateVO.setName(key); - onlineRateVO.setLevel(0); - if (CollectionUtil.isNotEmpty(onlineRateVOList)) { - onlineRateVO.setChildren(onlineRateVOList); - } - list.add(onlineRateVO); - setTopOnlineRate(list); - } - } - } - /** - * 计算父级终端在线率 + * 计算变电站层级在线率 */ - private void setFatherOnlineRate(List list) { + private void setSubstationListOnlineRate(List list) { list.forEach(item -> { List children = item.getChildren(); List tempList = children.stream().filter(s -> !Objects.equals(s.getOnlineRateData(), 3.14159)).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(tempList)) { - item.setOnlineRateData(tempList.stream().mapToDouble(OnlineRateVO::getOnlineRateData).sum() / children.size()); + item.setOnlineRateData(tempList.stream().mapToDouble(OnlineRateVO::getOnlineRateData).sum() / tempList.size()); + } else { + item.setOnlineRateData(3.14159); + } + }); + } + /** + * 计算供电公司层级在线率 + */ + private void setPowerCompanyListOnlineRate(List list) { + list.forEach(item -> { + List rateVOS = new ArrayList<>(); + item.getChildren().forEach(item1 -> { + item1.getChildren().forEach(item2 -> { + rateVOS.add(item2); + }); + }); + List tempList = rateVOS.stream().filter(s -> !Objects.equals(s.getOnlineRateData(), 3.14159)).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(tempList)) { + item.setOnlineRateData(tempList.stream().mapToDouble(OnlineRateVO::getOnlineRateData).sum() / tempList.size()); } else { item.setOnlineRateData(3.14159); } }); } - //变电站 - private void setSubstationIntegrity(List list) { - list.forEach(item -> { - List children = item.getChildren(); - List result = new ArrayList<>(children); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - - //供电公司 - private void setPowerCompanyIntegrity(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - result.addAll(children2); - }); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - - //省级 - private void setAreaIntegrity(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - children2.forEach(item3 -> { - List children3 = item3.getChildren(); - result.addAll(children3); - }); - }); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - - private void setTopOnlineRate(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - children2.forEach(item3 -> { - List children3 = item3.getChildren(); - children3.forEach(item4 -> { - List children4 = item4.getChildren(); - result.addAll(children4); - }); - }); - }); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java index a3f1b1ac8..b7cfb9003 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java @@ -9,12 +9,12 @@ import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.enums.LineBaseEnum; import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.param.DeviceInfoParam; -import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.SteadyExceedRateMapper; import com.njcn.harmonic.pojo.po.LimitRatePO; import com.njcn.harmonic.pojo.vo.SteadyExceedRateCensusVO; import com.njcn.harmonic.pojo.vo.SteadyExceedRateVO; import com.njcn.harmonic.service.SteadyExceedRateService; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; @@ -172,13 +172,13 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { List string = new ArrayList<>(); int beginMouthTime = Integer.parseInt(searchBeginTime.substring(5, 7)); int endMouthTime = Integer.parseInt(searchEndTime.substring(5, 7)); + int a =0; for (int i =0; i qualifiesRate, String lineId) { SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO(); @@ -321,7 +321,6 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { //从数据里筛选出指定监测点的数据 limitRatePOList = qualifiesRate.stream().filter( temp -> temp.getLineId().equalsIgnoreCase(lineId)).collect(Collectors.toList()); - System.out.println("该监测点当天的信息为>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+limitRatePOList); if (CollectionUtil.isNotEmpty(limitRatePOList)) { Map> timeMap; //获取出时间和id,获取日统计占比率 @@ -332,7 +331,6 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { steadyExceedRateVO.setSteadyExceedRate(rate); steadyExceedRateVOS.add(steadyExceedRateVO); } - System.out.println("steadyExceedRateVOS>>>>>>>>>>>>>>>>>>>>>>>>>"+steadyExceedRateVOS); //求时间范围的占比率平均值 steadyExceedRateVO.setSteadyExceedRate(NumberUtil.round(steadyExceedRateVOS.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()); @@ -357,9 +355,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { } if (CollectionUtil.isNotEmpty(steadyResults)) { //求区域监测点多天的平均值 - steadyExceedRateVO.setSteadyExceedRate( - NumberUtil.round(steadyResults.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue() - ); + steadyExceedRateVO.setSteadyExceedRate(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()); } return steadyExceedRateVO; } @@ -406,24 +402,26 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { * @param endTime */ private List getQualifiesRate(List lineIndexes, String startTime, String endTime) { - List limitRatePOS = new ArrayList<>(); + List limitRatePOS; //组装sql语句 // StringBuilder string = new StringBuilder(); // string.append(Param.QualityFlag + "='1' and (" + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEA + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEB + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEC + "') and "+ Param.VALUETYPE + "='AVG' and "); StringBuilder timeId = new StringBuilder(); - timeId.append(Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPET + "' and " + Param.TIME + " >= '" + startTime + Param.START_TIME + "' and " + Param.TIME + " <= '" + endTime + Param.END_TIME + "' and "); + timeId.append(InfluxDBPublicParam.PHASIC_TYPE + "='" + InfluxDBPublicParam.PHASIC_TYPET + "' and " + InfluxDBPublicParam.TIME + " >= '" + startTime + InfluxDBPublicParam.START_TIME + "' and " + InfluxDBPublicParam.TIME + " <= '" + endTime + InfluxDBPublicParam.END_TIME + "' and "); for (int i = 0; i < lineIndexes.size(); i++) { if (lineIndexes.size() - i != 1) { - timeId.append(Param.MYINDEX + "='").append(lineIndexes.get(i)).append("' or "); + timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' or "); } else { - timeId.append(Param.MYINDEX + "='").append(lineIndexes.get(i)).append("' "); + timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' tz('Asia/Shanghai')"); } } - String a = "SELECT * FROM LIMIT_RATE WHERE time >= '2021-01-01 00:00:00' and time <= '2022-04-30 23:59:59' and MYINDEX='71b900811d9a95811913776d6e725255' or MYINDEX='479bf4e228b5579629454ee99de0b950' or MYINDEX='1e3b8531483b2a8cbee6747f1f641cf9'"; //sql语句 - String sql = "SELECT * FROM LIMIT_RATE WHERE " + timeId; + String sql = "SELECT * FROM "+ InfluxDBPublicParam.LIMIT_RATE +" WHERE " + timeId; //结果集 QueryResult result = influxDbUtils.query(sql); + // if (Objects.isNull(result.getResults().get(0).getSeries())) { + // throw new BusinessException(HarmonicResponseEnum.LIMIT_RATE_ERROR); + // } //结果集映射到对象中 InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); limitRatePOS = resultMapper.toPOJO(result, LimitRatePO.class); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java index 677884ebc..417cd8b01 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java @@ -6,18 +6,23 @@ import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.enums.LineBaseEnum; import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.param.DeviceInfoParam; -import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.SteadyQualifyMapper; import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO; +import com.njcn.harmonic.pojo.po.LimitRate; import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO; import com.njcn.harmonic.pojo.vo.SteadyQualifyVO; import com.njcn.harmonic.service.SteadyQualifyService; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -53,15 +58,17 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { steadyQualifyVO.setName(generalDeviceDTO.getName()); // List lineData = steadyQualifyMapper.getSteadyQualifyData(lineIndexes); List qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime()); - SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate); - steadyQualifyVO.setFlicker(dataMoreMonitorMoreDay.getFlicker()); - steadyQualifyVO.setFreqOffset(dataMoreMonitorMoreDay.getFreqOffset()); - steadyQualifyVO.setVoltageOffset(dataMoreMonitorMoreDay.getVoltageOffset()); - steadyQualifyVO.setVoltageUnbalance(dataMoreMonitorMoreDay.getVoltageUnbalance()); - steadyQualifyVO.setNegativeCurrent(dataMoreMonitorMoreDay.getNegativeCurrent()); - steadyQualifyVO.setHarmonicVoltage(dataMoreMonitorMoreDay.getHarmonicVoltage()); - steadyQualifyVO.setHarmonicCurrent(dataMoreMonitorMoreDay.getHarmonicCurrent()); - steadyQualifyVO.setInterHarmonic(dataMoreMonitorMoreDay.getInterHarmonic()); + if (!CollectionUtils.isEmpty(qualifiesRate)) { + SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate); + steadyQualifyVO.setFlicker(dataMoreMonitorMoreDay.getFlicker()); + steadyQualifyVO.setFreqOffset(dataMoreMonitorMoreDay.getFreqOffset()); + steadyQualifyVO.setVoltageOffset(dataMoreMonitorMoreDay.getVoltageOffset()); + steadyQualifyVO.setVoltageUnbalance(dataMoreMonitorMoreDay.getVoltageUnbalance()); + steadyQualifyVO.setNegativeCurrent(dataMoreMonitorMoreDay.getNegativeCurrent()); + steadyQualifyVO.setHarmonicVoltage(dataMoreMonitorMoreDay.getHarmonicVoltage()); + steadyQualifyVO.setHarmonicCurrent(dataMoreMonitorMoreDay.getHarmonicCurrent()); + steadyQualifyVO.setInterHarmonic(dataMoreMonitorMoreDay.getInterHarmonic()); + } //组装父级数据树 List treeList = getTreeData(lineIndexes, steadyParam); steadyQualifyVO.setChildren(treeList); @@ -252,15 +259,41 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { for (SteadyQualifyDTO steadyQualifyDTO : steadyQualifyDTOList) { steadyQualifyVOS.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, steadyQualifyDTO.getTime())); } - //求各项平均值 - steadyQualifyVO.setFlicker(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()); + if (CollectionUtil.isNotEmpty(steadyQualifyVOS)) { + List flicker = steadyQualifyVOS.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList()); + List freqOffset = steadyQualifyVOS.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList()); + List voltageOffset = steadyQualifyVOS.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList()); + List voltageUnbalance = steadyQualifyVOS.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList()); + List negativeCurrent = steadyQualifyVOS.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList()); + List harmonicVoltage = steadyQualifyVOS.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList()); + List harmonicCurrent = steadyQualifyVOS.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList()); + List interHarmonic = steadyQualifyVOS.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList()); + //求各项平均值 + if (!CollectionUtils.isEmpty(flicker)) { + steadyQualifyVO.setFlicker(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(freqOffset)) { + steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(voltageOffset)) { + steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(voltageUnbalance)) { + steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(negativeCurrent)) { + steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(harmonicVoltage)) { + steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(harmonicCurrent)) { + steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(flicker)) { + steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()); + } + } } return steadyQualifyVO; } @@ -281,15 +314,39 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { } } if (CollectionUtil.isNotEmpty(steadyResults)) { + List flicker = steadyResults.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList()); + List freqOffset = steadyResults.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList()); + List voltageOffset = steadyResults.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList()); + List voltageUnbalance = steadyResults.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList()); + List negativeCurrent = steadyResults.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList()); + List harmonicVoltage = steadyResults.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList()); + List harmonicCurrent = steadyResults.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList()); + List interHarmonic = steadyResults.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList()); //求各项平均值 - steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()); + if (!CollectionUtils.isEmpty(flicker)) { + steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(freqOffset)) { + steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(voltageOffset)) { + steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(voltageUnbalance)) { + steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(negativeCurrent)) { + steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(harmonicVoltage)) { + steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(harmonicCurrent)) { + steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(interHarmonic)) { + steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()); + } } return steadyQualifyVO; } @@ -304,15 +361,39 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { steadyResults.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, time)); } if (CollectionUtil.isNotEmpty(steadyResults)) { + List flicker = steadyResults.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList()); + List freqOffset = steadyResults.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList()); + List voltageOffset = steadyResults.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList()); + List voltageUnbalance = steadyResults.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList()); + List negativeCurrent = steadyResults.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList()); + List harmonicVoltage = steadyResults.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList()); + List harmonicCurrent = steadyResults.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList()); + List interHarmonic = steadyResults.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList()); //求各项平均值 - steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()); - steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()); + if (!CollectionUtils.isEmpty(flicker)) { + steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(freqOffset)) { + steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(voltageOffset)) { + steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(voltageUnbalance)) { + steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(negativeCurrent)) { + steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(harmonicVoltage)) { + steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(harmonicCurrent)) { + steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()); + } + if (!CollectionUtils.isEmpty(interHarmonic)) { + steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()); + } } return steadyQualifyVO; } @@ -327,128 +408,119 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { private List getQualifiesRate(List lineIndexes, String startTime, String endTime) { List qualifyDTOList = new ArrayList<>(); //组装sql语句 - // StringBuilder string = new StringBuilder(); - // string.append(Param.QualityFlag + "='1' and (" + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEA + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEB + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEC + "') and "+ Param.VALUETYPE + "='AVG' and "); StringBuilder timeId = new StringBuilder(); - timeId.append(Param.TIME + " >= '" + startTime + Param.START_TIME + "' and " + Param.TIME + " <= '" + endTime + Param.END_TIME + "' and "); + timeId.append(InfluxDBPublicParam.TIME + " >= '" + startTime + InfluxDBPublicParam.START_TIME + "' and " + InfluxDBPublicParam.TIME + " <= '" + endTime + InfluxDBPublicParam.END_TIME + "' and "); for (int i = 0; i < lineIndexes.size(); i++) { if (lineIndexes.size() - i != 1) { - timeId.append(Param.MYINDEX + "='").append(lineIndexes.get(i)).append("' or "); + timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' or "); } else { - timeId.append(Param.MYINDEX + "='").append(lineIndexes.get(i)).append("' "); + timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' tz('Asia/Shanghai')"); } } - String a = "SELECT * FROM LIMIT_RATE WHERE time >= '2021-01-01 00:00:00' and time <= '2022-04-30 23:59:59' and MYINDEX='bffe97ff541333448358b7b00ed97cdb' or MYINDEX='479bf4e228b5579629454ee99de0b950' or MYINDEX='1e3b8531483b2a8cbee6747f1f641cf9'"; //sql语句 - String sql = "SELECT * FROM LIMIT_RATE WHERE " + timeId; + String sql = "SELECT * FROM "+ InfluxDBPublicParam.LIMIT_RATE +" WHERE " + timeId; //结果集 QueryResult result = influxDbUtils.query(sql); - //处理结果集 - if (!CollectionUtils.isEmpty(result.getResults().get(0).getSeries())) { - List> values = result.getResults().get(0).getSeries().get(0).getValues(); - values.forEach(list ->{ - SteadyQualifyDTO steadyQualifyDTO = new SteadyQualifyDTO(); - steadyQualifyDTO.setTime(list.get(0).toString()); - steadyQualifyDTO.setMYINDEX(list.get(46).toString()); - steadyQualifyDTO.setPhasic_Type(list.get(47).toString()); - steadyQualifyDTO.setAllTime(Double.parseDouble(list.get(1).toString())); - steadyQualifyDTO.setFlicker_AllTime(Double.parseDouble(list.get(2).toString())); - steadyQualifyDTO.setFlicker_OverTime(Double.parseDouble(list.get(3).toString())); - steadyQualifyDTO.setFreq_Dev_OverTime(Double.parseDouble(list.get(4).toString())); - steadyQualifyDTO.setIHarm_10_OverTime(Double.parseDouble(list.get(5).toString())); - steadyQualifyDTO.setIHarm_11_OverTime(Double.parseDouble(list.get(6).toString())); - steadyQualifyDTO.setIHarm_12_OverTime(Double.parseDouble(list.get(7).toString())); - steadyQualifyDTO.setIHarm_13_OverTime(Double.parseDouble(list.get(8).toString())); - steadyQualifyDTO.setIHarm_14_OverTime(Double.parseDouble(list.get(9).toString())); - steadyQualifyDTO.setIHarm_15_OverTime(Double.parseDouble(list.get(10).toString())); - steadyQualifyDTO.setIHarm_16_OverTime(Double.parseDouble(list.get(11).toString())); - steadyQualifyDTO.setIHarm_17_OverTime(Double.parseDouble(list.get(12).toString())); - steadyQualifyDTO.setIHarm_18_OverTime(Double.parseDouble(list.get(13).toString())); - steadyQualifyDTO.setIHarm_19_OverTime(Double.parseDouble(list.get(14).toString())); - steadyQualifyDTO.setIHarm_20_OverTime(Double.parseDouble(list.get(15).toString())); - steadyQualifyDTO.setIHarm_21_OverTime(Double.parseDouble(list.get(16).toString())); - steadyQualifyDTO.setIHarm_22_OverTime(Double.parseDouble(list.get(17).toString())); - steadyQualifyDTO.setIHarm_23_OverTime(Double.parseDouble(list.get(18).toString())); - steadyQualifyDTO.setIHarm_24_OverTime(Double.parseDouble(list.get(19).toString())); - steadyQualifyDTO.setIHarm_25_OverTime(Double.parseDouble(list.get(20).toString())); - steadyQualifyDTO.setIHarm_2_OverTime(Double.parseDouble(list.get(21).toString())); - steadyQualifyDTO.setIHarm_3_OverTime(Double.parseDouble(list.get(22).toString())); - steadyQualifyDTO.setIHarm_4_OverTime(Double.parseDouble(list.get(23).toString())); - steadyQualifyDTO.setIHarm_5_OverTime(Double.parseDouble(list.get(24).toString())); - steadyQualifyDTO.setIHarm_6_OverTime(Double.parseDouble(list.get(25).toString())); - steadyQualifyDTO.setIHarm_7_OverTime(Double.parseDouble(list.get(26).toString())); - steadyQualifyDTO.setIHarm_8_OverTime(Double.parseDouble(list.get(27).toString())); - steadyQualifyDTO.setIHarm_9_OverTime(Double.parseDouble(list.get(28).toString())); - steadyQualifyDTO.setI_Neg_OverTime(Double.parseDouble(list.get(29).toString())); - steadyQualifyDTO.setInUHARM_10_OverTime(Double.parseDouble(list.get(30).toString())); - steadyQualifyDTO.setInUHARM_11_OverTime(Double.parseDouble(list.get(31).toString())); - steadyQualifyDTO.setInUHARM_12_OverTime(Double.parseDouble(list.get(32).toString())); - steadyQualifyDTO.setInUHARM_13_OverTime(Double.parseDouble(list.get(33).toString())); - steadyQualifyDTO.setInUHARM_14_OverTime(Double.parseDouble(list.get(34).toString())); - steadyQualifyDTO.setInUHARM_15_OverTime(Double.parseDouble(list.get(35).toString())); - steadyQualifyDTO.setInUHARM_16_OverTime(Double.parseDouble(list.get(36).toString())); - steadyQualifyDTO.setInUHARM_1_OverTime(Double.parseDouble(list.get(37).toString())); - steadyQualifyDTO.setInUHARM_2_OverTime(Double.parseDouble(list.get(38).toString())); - steadyQualifyDTO.setInUHARM_3_OverTime(Double.parseDouble(list.get(39).toString())); - steadyQualifyDTO.setInUHARM_4_OverTime(Double.parseDouble(list.get(40).toString())); - steadyQualifyDTO.setInUHARM_5_OverTime(Double.parseDouble(list.get(41).toString())); - steadyQualifyDTO.setInUHARM_6_OverTime(Double.parseDouble(list.get(42).toString())); - steadyQualifyDTO.setInUHARM_7_OverTime(Double.parseDouble(list.get(43).toString())); - steadyQualifyDTO.setInUHARM_8_OverTime(Double.parseDouble(list.get(44).toString())); - steadyQualifyDTO.setInUHARM_9_OverTime(Double.parseDouble(list.get(45).toString())); - steadyQualifyDTO.setUAberrance_OverTime(Double.parseDouble(list.get(48).toString())); - steadyQualifyDTO.setUBalance_OverTime(Double.parseDouble(list.get(49).toString())); - steadyQualifyDTO.setUHarm_10_OverTime(Double.parseDouble(list.get(50).toString())); - steadyQualifyDTO.setUHarm_11_OverTime(Double.parseDouble(list.get(51).toString())); - steadyQualifyDTO.setUHarm_12_OverTime(Double.parseDouble(list.get(52).toString())); - steadyQualifyDTO.setUHarm_13_OverTime(Double.parseDouble(list.get(53).toString())); - steadyQualifyDTO.setUHarm_14_OverTime(Double.parseDouble(list.get(54).toString())); - steadyQualifyDTO.setUHarm_15_OverTime(Double.parseDouble(list.get(55).toString())); - steadyQualifyDTO.setUHarm_16_OverTime(Double.parseDouble(list.get(56).toString())); - steadyQualifyDTO.setUHarm_17_OverTime(Double.parseDouble(list.get(57).toString())); - steadyQualifyDTO.setUHarm_18_OverTime(Double.parseDouble(list.get(58).toString())); - steadyQualifyDTO.setUHarm_19_OverTime(Double.parseDouble(list.get(59).toString())); - steadyQualifyDTO.setUHarm_20_OverTime(Double.parseDouble(list.get(60).toString())); - steadyQualifyDTO.setUHarm_21_OverTime(Double.parseDouble(list.get(61).toString())); - steadyQualifyDTO.setUHarm_22_OverTime(Double.parseDouble(list.get(62).toString())); - steadyQualifyDTO.setUHarm_23_OverTime(Double.parseDouble(list.get(63).toString())); - steadyQualifyDTO.setUHarm_24_OverTime(Double.parseDouble(list.get(64).toString())); - steadyQualifyDTO.setUHarm_25_OverTime(Double.parseDouble(list.get(65).toString())); - steadyQualifyDTO.setUHarm_2_OverTime(Double.parseDouble(list.get(66).toString())); - steadyQualifyDTO.setUHarm_3_OverTime(Double.parseDouble(list.get(67).toString())); - steadyQualifyDTO.setUHarm_4_OverTime(Double.parseDouble(list.get(68).toString())); - steadyQualifyDTO.setUHarm_5_OverTime(Double.parseDouble(list.get(69).toString())); - steadyQualifyDTO.setUHarm_6_OverTime(Double.parseDouble(list.get(70).toString())); - steadyQualifyDTO.setUHarm_7_OverTime(Double.parseDouble(list.get(71).toString())); - steadyQualifyDTO.setUHarm_8_OverTime(Double.parseDouble(list.get(72).toString())); - steadyQualifyDTO.setUHarm_9_OverTime(Double.parseDouble(list.get(73).toString())); - steadyQualifyDTO.setVoltage_Dev_OverTime(Double.parseDouble(list.get(74).toString())); + //结果集映射到对象中 + InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper(); + List limitRates = influxDBResultMapper.toPOJO(result, LimitRate.class); + limitRates.forEach(list ->{ + SteadyQualifyDTO steadyQualifyDTO = new SteadyQualifyDTO(); + LocalDateTime localDateTime = LocalDateTime.ofInstant(list.getTime(), ZoneId.systemDefault()); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + steadyQualifyDTO.setTime(dateTimeFormatter.format(localDateTime)); + steadyQualifyDTO.setMYINDEX(list.getLineId()); + steadyQualifyDTO.setPhasic_Type(list.getPhasicType()); + steadyQualifyDTO.setAllTime(Double.parseDouble(list.getAllTime().toString())); + steadyQualifyDTO.setFlicker_AllTime(Double.parseDouble(list.getFlickerAllTime().toString())); + steadyQualifyDTO.setFlicker_OverTime(Double.parseDouble(list.getFlickerOverTime().toString())); + steadyQualifyDTO.setFreq_Dev_OverTime(Double.parseDouble(list.getFreqDevOverTime().toString())); + steadyQualifyDTO.setIHarm_2_OverTime(Double.parseDouble(list.getIHarm2OverTime().toString())); + steadyQualifyDTO.setIHarm_3_OverTime(Double.parseDouble(list.getIHarm3OverTime().toString())); + steadyQualifyDTO.setIHarm_4_OverTime(Double.parseDouble(list.getIHarm4OverTime().toString())); + steadyQualifyDTO.setIHarm_5_OverTime(Double.parseDouble(list.getIHarm5OverTime().toString())); + steadyQualifyDTO.setIHarm_6_OverTime(Double.parseDouble(list.getIHarm6OverTime().toString())); + steadyQualifyDTO.setIHarm_7_OverTime(Double.parseDouble(list.getIHarm7OverTime().toString())); + steadyQualifyDTO.setIHarm_8_OverTime(Double.parseDouble(list.getIHarm8OverTime().toString())); + steadyQualifyDTO.setIHarm_9_OverTime(Double.parseDouble(list.getIHarm9OverTime().toString())); + steadyQualifyDTO.setIHarm_10_OverTime(Double.parseDouble(list.getIHarm10OverTime().toString())); + steadyQualifyDTO.setIHarm_11_OverTime(Double.parseDouble(list.getIHarm11OverTime().toString())); + steadyQualifyDTO.setIHarm_12_OverTime(Double.parseDouble(list.getIHarm12OverTime().toString())); + steadyQualifyDTO.setIHarm_13_OverTime(Double.parseDouble(list.getIHarm13OverTime().toString())); + steadyQualifyDTO.setIHarm_14_OverTime(Double.parseDouble(list.getIHarm14OverTime().toString())); + steadyQualifyDTO.setIHarm_15_OverTime(Double.parseDouble(list.getIHarm15OverTime().toString())); + steadyQualifyDTO.setIHarm_16_OverTime(Double.parseDouble(list.getIHarm16OverTime().toString())); + steadyQualifyDTO.setIHarm_17_OverTime(Double.parseDouble(list.getIHarm17OverTime().toString())); + steadyQualifyDTO.setIHarm_18_OverTime(Double.parseDouble(list.getIHarm18OverTime().toString())); + steadyQualifyDTO.setIHarm_19_OverTime(Double.parseDouble(list.getIHarm19OverTime().toString())); + steadyQualifyDTO.setIHarm_20_OverTime(Double.parseDouble(list.getIHarm20OverTime().toString())); + steadyQualifyDTO.setIHarm_21_OverTime(Double.parseDouble(list.getIHarm21OverTime().toString())); + steadyQualifyDTO.setIHarm_22_OverTime(Double.parseDouble(list.getIHarm22OverTime().toString())); + steadyQualifyDTO.setIHarm_23_OverTime(Double.parseDouble(list.getIHarm23OverTime().toString())); + steadyQualifyDTO.setIHarm_24_OverTime(Double.parseDouble(list.getIHarm24OverTime().toString())); + steadyQualifyDTO.setIHarm_25_OverTime(Double.parseDouble(list.getIHarm25OverTime().toString())); + steadyQualifyDTO.setI_Neg_OverTime(Double.parseDouble(list.getINegOverTime().toString())); + steadyQualifyDTO.setInUHARM_1_OverTime(Double.parseDouble(list.getInuHarm1OverTime().toString())); + steadyQualifyDTO.setInUHARM_2_OverTime(Double.parseDouble(list.getInuHarm2OverTime().toString())); + steadyQualifyDTO.setInUHARM_3_OverTime(Double.parseDouble(list.getInuHarm3OverTime().toString())); + steadyQualifyDTO.setInUHARM_4_OverTime(Double.parseDouble(list.getInuHarm4OverTime().toString())); + steadyQualifyDTO.setInUHARM_5_OverTime(Double.parseDouble(list.getInuHarm5OverTime().toString())); + steadyQualifyDTO.setInUHARM_6_OverTime(Double.parseDouble(list.getInuHarm6OverTime().toString())); + steadyQualifyDTO.setInUHARM_7_OverTime(Double.parseDouble(list.getInuHarm7OverTime().toString())); + steadyQualifyDTO.setInUHARM_8_OverTime(Double.parseDouble(list.getInuHarm8OverTime().toString())); + steadyQualifyDTO.setInUHARM_9_OverTime(Double.parseDouble(list.getInuHarm9OverTime().toString())); + steadyQualifyDTO.setInUHARM_10_OverTime(Double.parseDouble(list.getInuHarm10OverTime().toString())); + steadyQualifyDTO.setInUHARM_11_OverTime(Double.parseDouble(list.getInuHarm11OverTime().toString())); + steadyQualifyDTO.setInUHARM_12_OverTime(Double.parseDouble(list.getInuHarm12OverTime().toString())); + steadyQualifyDTO.setInUHARM_13_OverTime(Double.parseDouble(list.getInuHarm13OverTime().toString())); + steadyQualifyDTO.setInUHARM_14_OverTime(Double.parseDouble(list.getInuHarm14OverTime().toString())); + steadyQualifyDTO.setInUHARM_15_OverTime(Double.parseDouble(list.getInuHarm15OverTime().toString())); + steadyQualifyDTO.setInUHARM_16_OverTime(Double.parseDouble(list.getInuHarm16OverTime().toString())); + steadyQualifyDTO.setUAberrance_OverTime(Double.parseDouble(list.getUAberranceOverTime().toString())); + steadyQualifyDTO.setUBalance_OverTime(Double.parseDouble(list.getUBalanceOverTime().toString())); + steadyQualifyDTO.setUHarm_2_OverTime(Double.parseDouble(list.getUHarm2OverTime().toString())); + steadyQualifyDTO.setUHarm_3_OverTime(Double.parseDouble(list.getUHarm3OverTime().toString())); + steadyQualifyDTO.setUHarm_4_OverTime(Double.parseDouble(list.getUHarm4OverTime().toString())); + steadyQualifyDTO.setUHarm_5_OverTime(Double.parseDouble(list.getUHarm5OverTime().toString())); + steadyQualifyDTO.setUHarm_6_OverTime(Double.parseDouble(list.getUHarm6OverTime().toString())); + steadyQualifyDTO.setUHarm_7_OverTime(Double.parseDouble(list.getUHarm7OverTime().toString())); + steadyQualifyDTO.setUHarm_8_OverTime(Double.parseDouble(list.getUHarm8OverTime().toString())); + steadyQualifyDTO.setUHarm_9_OverTime(Double.parseDouble(list.getUHarm9OverTime().toString())); + steadyQualifyDTO.setUHarm_10_OverTime(Double.parseDouble(list.getUHarm10OverTime().toString())); + steadyQualifyDTO.setUHarm_11_OverTime(Double.parseDouble(list.getUHarm11OverTime().toString())); + steadyQualifyDTO.setUHarm_12_OverTime(Double.parseDouble(list.getUHarm12OverTime().toString())); + steadyQualifyDTO.setUHarm_13_OverTime(Double.parseDouble(list.getUHarm13OverTime().toString())); + steadyQualifyDTO.setUHarm_14_OverTime(Double.parseDouble(list.getUHarm14OverTime().toString())); + steadyQualifyDTO.setUHarm_15_OverTime(Double.parseDouble(list.getUHarm15OverTime().toString())); + steadyQualifyDTO.setUHarm_16_OverTime(Double.parseDouble(list.getUHarm16OverTime().toString())); + steadyQualifyDTO.setUHarm_17_OverTime(Double.parseDouble(list.getUHarm17OverTime().toString())); + steadyQualifyDTO.setUHarm_18_OverTime(Double.parseDouble(list.getUHarm18OverTime().toString())); + steadyQualifyDTO.setUHarm_19_OverTime(Double.parseDouble(list.getUHarm19OverTime().toString())); + steadyQualifyDTO.setUHarm_20_OverTime(Double.parseDouble(list.getUHarm20OverTime().toString())); + steadyQualifyDTO.setUHarm_21_OverTime(Double.parseDouble(list.getUHarm21OverTime().toString())); + steadyQualifyDTO.setUHarm_22_OverTime(Double.parseDouble(list.getUHarm22OverTime().toString())); + steadyQualifyDTO.setUHarm_23_OverTime(Double.parseDouble(list.getUHarm23OverTime().toString())); + steadyQualifyDTO.setUHarm_24_OverTime(Double.parseDouble(list.getUHarm24OverTime().toString())); + steadyQualifyDTO.setUHarm_25_OverTime(Double.parseDouble(list.getUHarm25OverTime().toString())); + steadyQualifyDTO.setVoltage_Dev_OverTime(Double.parseDouble(list.getVoltageDevOverTime().toString())); + qualifyDTOList.add(steadyQualifyDTO); + }); - // steadyQualifyDTO.setTime(time); - // if (!CollectionUtils.isEmpty(valueList)){ - // for (List value : valueList) { - // String time = value.get(0).toString(); - // double v = Double.parseDouble(value.get(1).toString()); - // value.get(2); - // value.get(3); - // //谐波畸变率 保留两位小数 - // Double distortion = value.get(1) == null ? null : BigDecimal.valueOf(Double.parseDouble(value.get(1).toString())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - // - // - // } - // } - qualifyDTOList.add(steadyQualifyDTO); - }); - } return qualifyDTOList; } + + private static double calculate(Double allTime, Double overTime) { - if (allTime >= overTime){ - return NumberUtil.round((allTime - overTime) / allTime * 100, 2).doubleValue(); + if (allTime == 0) { + return 3.14159; + } else { + if (allTime >= overTime){ + return NumberUtil.round((allTime - overTime) / allTime * 100, 2).doubleValue(); + } + return 0.0; } - return 0.0; } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java index 341aba3f2..50c6dbdc5 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java @@ -4,12 +4,12 @@ import com.njcn.common.config.GeneralInfo; import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.param.DeviceInfoParam; -import com.njcn.harmonic.constant.Param; import com.njcn.harmonic.mapper.TerminalDataMapper; import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.vo.TerminalCensusVO; import com.njcn.harmonic.pojo.vo.TerminalVO; import com.njcn.harmonic.service.TerminalService; +import com.njcn.influxdb.param.InfluxDBPublicParam; import com.njcn.influxdb.utils.InfluxDbUtils; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; @@ -151,7 +151,7 @@ public class TerminalServiceImpl implements TerminalService { /** - * 获取父级每层数据 + * 获取树的每层级数据 */ public List getTreeData(List deviceIndexes, DeviceInfoParam.BusinessParam terminalParam) { //终端集合 @@ -160,16 +160,6 @@ public class TerminalServiceImpl implements TerminalService { List substationList = terminalDataMapper.getLineInfoByList(deviceList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList())); //供电公司集合 List powerCompanyList = terminalDataMapper.getLineInfoByList(substationList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList())); - // //区域集合 - // List areaList = terminalDataMapper.getLineInfoByList(powerCompanyList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList())); - // //区域详情,用来替换区域名称 - // List area = areaFeignClient.areaNameByList(areaList.stream().map(TerminalVO::getName).collect(Collectors.toList())).getData(); - // //组装区域名称 - // areaList.stream().map(list1 -> area.stream().filter(list2 -> Objects.equals(list1.getName(), list2.getId())).findAny().map(m -> { - // list1.setName(m.getName()); - // return list1; - // })).collect(Collectors.toList()); - //查询终端的在线率 List onlineRateList = getCondition(deviceIndexes, terminalParam.getSearchBeginTime(), terminalParam.getSearchEndTime()); //根据终端集合组装终端的在线率 @@ -191,7 +181,6 @@ public class TerminalServiceImpl implements TerminalService { powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList()); setTreeFlag(powerCompanyList,substationList); - // areaList.stream().peek(item -> item.setChildren(getChildCategoryList(item, powerCompanyList))).collect(Collectors.toList()); setFatherOnlineRate(substationList); setFatherOnlineRate(powerCompanyList); // setAreaIntegrity(areaList); @@ -218,16 +207,16 @@ public class TerminalServiceImpl implements TerminalService { List publicDTOList = new ArrayList<>(); //组装sql语句 StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(Param.TIME + " >= '").append(startTime).append(Param.START_TIME).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append(Param.END_TIME).append("' and ("); + stringBuilder.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append(InfluxDBPublicParam.START_TIME).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append(InfluxDBPublicParam.END_TIME).append("' and ("); for (int i = 0; i < deviceIndexes.size(); i++) { if (deviceIndexes.size() - i != 1) { - stringBuilder.append(Param.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("' or "); + stringBuilder.append(InfluxDBPublicParam.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("' or "); } else { - stringBuilder.append(Param.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("')"); + stringBuilder.append(InfluxDBPublicParam.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("')"); } } //sql语句 - String sql = "SELECT (SUM(" + Param.ONLINEMIN + ")/(SUM(" + Param.OFFLINEMIN + ")+SUM(" + Param.ONLINEMIN + ")))*100 AS onlineRate FROM PQS_ONLINERATE WHERE " + stringBuilder + " group by " + Param.DEV_INDEX; + String sql = "SELECT (SUM(" + InfluxDBPublicParam.ONLINEMIN + ")/(SUM(" + InfluxDBPublicParam.OFFLINEMIN + ")+SUM(" + InfluxDBPublicParam.ONLINEMIN + ")))*100 AS onlineRate FROM "+InfluxDBPublicParam.PQS_ONLINERATE+" WHERE " + stringBuilder + " group by " + InfluxDBPublicParam.DEV_INDEX + InfluxDBPublicParam.TIME_ZONE; //结果集 QueryResult result = influxDbUtils.query(sql); //处理结果集 @@ -236,7 +225,7 @@ public class TerminalServiceImpl implements TerminalService { list.forEach(po -> { PublicDTO publicDTO = new PublicDTO(); List> valueList = po.getValues(); - String index = po.getTags().get(Param.DEV_INDEX); + String index = po.getTags().get(InfluxDBPublicParam.DEV_INDEX); if (!CollectionUtils.isEmpty(valueList)) { for (List value : valueList) { //终端在线率 保留两位小数 @@ -252,14 +241,14 @@ public class TerminalServiceImpl implements TerminalService { } /** - * 计算父级终端在线率 + * 计算该子层级终端在线率 */ private void setFatherOnlineRate(List list) { list.forEach(item -> { List children = item.getChildren(); List tempList = children.stream().filter(s -> !Objects.equals(s.getOnlineRateData(), 3.14159)).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(tempList)) { - item.setOnlineRateData(tempList.stream().mapToDouble(TerminalVO::getOnlineRateData).sum() / children.size()); + item.setOnlineRateData(tempList.stream().mapToDouble(TerminalVO::getOnlineRateData).sum() / tempList.size()); } else { item.setOnlineRateData(3.14159); } @@ -267,22 +256,5 @@ public class TerminalServiceImpl implements TerminalService { } - //省级 - private void setAreaOnlineRate(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - children2.forEach(item3 -> { - List children3 = item3.getChildren(); - result.addAll(children3); - }); - }); - double aver = result.stream().mapToDouble(TerminalVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - }