diff --git a/pom.xml b/pom.xml index 284836f68..c4e918a11 100644 --- a/pom.xml +++ b/pom.xml @@ -22,8 +22,7 @@ pqs-prepare pqs-process pqs-algorithm - - + pqs-influx pom 灿能微服务生态系统 @@ -41,22 +40,17 @@ - - 192.168.1.18 + 192.168.1.13 - - 192.168.1.166 + 192.168.1.111 - 192.168.1.13 + 192.168.1.31 ${middle.server.url}:18848 - - - - 012fcc94-a4d4-4dff-a75a-396a1b997f25 + + fd74182b-1fce-4dba-afa7-2623b0376205 - ${middle.server.url}:8080 ${service.server.url}:10215 diff --git a/pqs-influx/pom.xml b/pqs-influx/pom.xml new file mode 100644 index 000000000..cb0509669 --- /dev/null +++ b/pqs-influx/pom.xml @@ -0,0 +1,74 @@ + + + 4.0.0 + + pqs + com.njcn + 1.0.0 + + com.njcn + pqs-influx + 0.0.1-SNAPSHOT + influx公共模块 + pqs-influx + + + 8 + 8 + + + + com.njcn + influxdb-springboot-starter + 1.0.0 + + + com.squareup.okhttp3 + okhttp + + + com.squareup.okhttp3 + logging-interceptor + + + + + com.squareup.okhttp3 + okhttp + 4.9.0 + + + com.squareup.okhttp3 + logging-interceptor + 4.9.0 + + + + + njcn-influx + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + -Xlint:unchecked + + + + org.springframework.boot + spring-boot-maven-plugin + + + package + + repackage + + + + + + + + diff --git a/pqs-influx/src/main/java/com/njcn/influx/PqsInfluxApplication.java b/pqs-influx/src/main/java/com/njcn/influx/PqsInfluxApplication.java new file mode 100644 index 000000000..e7375c650 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/PqsInfluxApplication.java @@ -0,0 +1,15 @@ +package com.njcn.influx; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.DependsOn; + +@SpringBootApplication +@DependsOn("proxyMapperRegister") +public class PqsInfluxApplication { + + public static void main(String[] args) { + SpringApplication.run(PqsInfluxApplication.class, args); + } + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/mapper/CldStatisticsFlowMapper.java b/pqs-influx/src/main/java/com/njcn/influx/mapper/CldStatisticsFlowMapper.java new file mode 100644 index 000000000..ebc6509cf --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/mapper/CldStatisticsFlowMapper.java @@ -0,0 +1,14 @@ +package com.njcn.influx.mapper; + +import com.njcn.influx.base.InfluxDbBaseMapper; +import com.njcn.influx.pojo.po.CldStatisFlow; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月04日 20:50 + */ +public interface CldStatisticsFlowMapper extends InfluxDbBaseMapper{ + + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlickerMapper.java b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlickerMapper.java new file mode 100644 index 000000000..40ac9608c --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlickerMapper.java @@ -0,0 +1,18 @@ +package com.njcn.influx.mapper; + +import com.njcn.influx.base.InfluxDbBaseMapper; +import com.njcn.influx.pojo.dto.DataFlickerDTO; +import com.njcn.influx.pojo.po.DataFlicker; +import com.njcn.influx.query.InfluxQueryWrapper; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 08:55 + */ +public interface DataFlickerMapper extends InfluxDbBaseMapper { + + List getStatisticsByWraper(InfluxQueryWrapper influxQueryWrapper); +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlucMapper.java b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlucMapper.java new file mode 100644 index 000000000..5472d08d2 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlucMapper.java @@ -0,0 +1,12 @@ +package com.njcn.influx.mapper; + +import com.njcn.influx.base.InfluxDbBaseMapper; +import com.njcn.influx.pojo.po.DataFluc; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 08:56 + */ +public interface DataFlucMapper extends InfluxDbBaseMapper { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicIMapper.java b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicIMapper.java new file mode 100644 index 000000000..2cb51fcf0 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicIMapper.java @@ -0,0 +1,12 @@ +package com.njcn.influx.mapper; + +import com.njcn.influx.base.InfluxDbBaseMapper; +import com.njcn.influx.pojo.po.DataHarmPhasicI; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 08:56 + */ +public interface DataHarmPhasicIMapper extends InfluxDbBaseMapper { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicVMapper.java b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicVMapper.java new file mode 100644 index 000000000..23cd7c051 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicVMapper.java @@ -0,0 +1,12 @@ +package com.njcn.influx.mapper; + +import com.njcn.influx.base.InfluxDbBaseMapper; +import com.njcn.influx.pojo.po.DataHarmPhasicV; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 08:56 + */ +public interface DataHarmPhasicVMapper extends InfluxDbBaseMapper { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPowerPMapper.java b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPowerPMapper.java new file mode 100644 index 000000000..5c45b63ec --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPowerPMapper.java @@ -0,0 +1,12 @@ +package com.njcn.influx.mapper; + +import com.njcn.influx.base.InfluxDbBaseMapper; +import com.njcn.influx.pojo.po.DataHarmPowerP; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:00 + */ +public interface DataHarmPowerPMapper extends InfluxDbBaseMapper { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/DataFlickerDTO.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/DataFlickerDTO.java new file mode 100644 index 000000000..ed3e05794 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/DataFlickerDTO.java @@ -0,0 +1,21 @@ +package com.njcn.influx.pojo.dto; + +import com.njcn.influx.pojo.po.DataFlicker; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.influxdb.annotation.Measurement; + +import java.io.Serializable; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 10:17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DataFlickerDTO extends DataFlicker implements Serializable { + + private String valueType; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/CldStatisFlow.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/CldStatisFlow.java new file mode 100644 index 000000000..0c34918c5 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/CldStatisFlow.java @@ -0,0 +1,29 @@ +package com.njcn.influx.pojo.po; + + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * @author hongawen + */ +@Data +@Measurement(name = "cld_statis_flow") +public class CldStatisFlow { + + @Column(name="time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name="actual_value") + private Integer actualValue; + + @Column(name="dev_id") + private String devId; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFlicker.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFlicker.java new file mode 100644 index 000000000..27950b502 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFlicker.java @@ -0,0 +1,43 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + */ +@Data +@Measurement(name = "data_flicker") +public class DataFlicker { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "fluc") + private Double fluc; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "plt") + private Double plt; + + @Column(name = "pst") + private Double pst; + + @Column(name = "quality_flag") + private String qualityFlag; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFluc.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFluc.java new file mode 100644 index 000000000..d2dcae9c0 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFluc.java @@ -0,0 +1,41 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + */ +@Data +@Measurement(name = "data_fluc") +public class DataFluc { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "fluc") + private Double fluc; + + @Column(name = "fluccf") + private Double fluccf; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicI.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicI.java new file mode 100644 index 000000000..79c7acb63 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicI.java @@ -0,0 +1,187 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + */ +@Data +@Measurement(name = "data_harmphasic_i") +public class DataHarmPhasicI { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "i_1") + private Double i1; + + @Column(name = "i_2") + private Double i2; + + @Column(name = "i_3") + private Double i3; + + @Column(name = "i_4") + private Double i4; + + @Column(name = "i_5") + private Double i5; + + @Column(name = "i_6") + private Double i6; + + @Column(name = "i_7") + private Double i7; + + @Column(name = "i_8") + private Double i8; + + @Column(name = "i_9") + private Double i9; + + @Column(name = "i_10") + private Double i10; + + @Column(name = "i_11") + private Double i11; + + @Column(name = "i_12") + private Double i12; + + @Column(name = "i_13") + private Double i13; + + @Column(name = "i_14") + private Double i14; + + @Column(name = "i_15") + private Double i15; + + @Column(name = "i_16") + private Double i16; + + @Column(name = "i_17") + private Double i17; + + @Column(name = "i_18") + private Double i18; + + @Column(name = "i_19") + private Double i19; + + @Column(name = "i_20") + private Double i20; + + @Column(name = "i_21") + private Double i21; + + @Column(name = "i_22") + private Double i22; + + @Column(name = "i_23") + private Double i23; + + @Column(name = "i_24") + private Double i24; + + @Column(name = "i_25") + private Double i25; + + @Column(name = "i_26") + private Double i26; + + @Column(name = "i_27") + private Double i27; + + @Column(name = "i_28") + private Double i28; + + @Column(name = "i_29") + private Double i29; + + @Column(name = "i_30") + private Double i30; + + @Column(name = "i_31") + private Double i31; + + @Column(name = "i_32") + private Double i32; + + @Column(name = "i_33") + private Double i33; + + @Column(name = "i_34") + private Double i34; + + @Column(name = "i_35") + private Double i35; + + @Column(name = "i_36") + private Double i36; + + @Column(name = "i_37") + private Double i37; + + @Column(name = "i_38") + private Double i38; + + @Column(name = "i_39") + private Double i39; + + @Column(name = "i_40") + private Double i40; + + @Column(name = "i_41") + private Double i41; + + @Column(name = "i_42") + private Double i42; + + @Column(name = "i_43") + private Double i43; + + @Column(name = "i_44") + private Double i44; + + @Column(name = "i_45") + private Double i45; + + @Column(name = "i_46") + private Double i46; + + @Column(name = "i_47") + private Double i47; + + @Column(name = "i_48") + private Double i48; + + @Column(name = "i_49") + private Double i49; + + @Column(name = "i_50") + private Double i50; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicV.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicV.java new file mode 100644 index 000000000..f699f52a4 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicV.java @@ -0,0 +1,188 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 9:13 + */ +@Data +@Measurement(name = "data_harmphasic_v") +public class DataHarmPhasicV { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "v_1") + private Double v1; + + @Column(name = "v_2") + private Double v2; + + @Column(name = "v_3") + private Double v3; + + @Column(name = "v_4") + private Double v4; + + @Column(name = "v_5") + private Double v5; + + @Column(name = "v_6") + private Double v6; + + @Column(name = "v_7") + private Double v7; + + @Column(name = "v_8") + private Double v8; + + @Column(name = "v_9") + private Double v9; + + @Column(name = "v_10") + private Double v10; + + @Column(name = "v_11") + private Double v11; + + @Column(name = "v_12") + private Double v12; + + @Column(name = "v_13") + private Double v13; + + @Column(name = "v_14") + private Double v14; + + @Column(name = "v_15") + private Double v15; + + @Column(name = "v_16") + private Double v16; + + @Column(name = "v_17") + private Double v17; + + @Column(name = "v_18") + private Double v18; + + @Column(name = "v_19") + private Double v19; + + @Column(name = "v_20") + private Double v20; + + @Column(name = "v_21") + private Double v21; + + @Column(name = "v_22") + private Double v22; + + @Column(name = "v_23") + private Double v23; + + @Column(name = "v_24") + private Double v24; + + @Column(name = "v_25") + private Double v25; + + @Column(name = "v_26") + private Double v26; + + @Column(name = "v_27") + private Double v27; + + @Column(name = "v_28") + private Double v28; + + @Column(name = "v_29") + private Double v29; + + @Column(name = "v_30") + private Double v30; + + @Column(name = "v_31") + private Double v31; + + @Column(name = "v_32") + private Double v32; + + @Column(name = "v_33") + private Double v33; + + @Column(name = "v_34") + private Double v34; + + @Column(name = "v_35") + private Double v35; + + @Column(name = "v_36") + private Double v36; + + @Column(name = "v_37") + private Double v37; + + @Column(name = "v_38") + private Double v38; + + @Column(name = "v_39") + private Double v39; + + @Column(name = "v_40") + private Double v40; + + @Column(name = "v_41") + private Double v41; + + @Column(name = "v_42") + private Double v42; + + @Column(name = "v_43") + private Double v43; + + @Column(name = "v_44") + private Double v44; + + @Column(name = "v_45") + private Double v45; + + @Column(name = "v_46") + private Double v46; + + @Column(name = "v_47") + private Double v47; + + @Column(name = "v_48") + private Double v48; + + @Column(name = "v_49") + private Double v49; + + @Column(name = "v_50") + private Double v50; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerP.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerP.java new file mode 100644 index 000000000..b8ea20ed0 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerP.java @@ -0,0 +1,196 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 9:13 + */ +@Data +@Measurement(name = "data_harmpower_p") +public class DataHarmPowerP { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "df") + private Double df; + + @Column(name = "pf") + private Double pf; + + @Column(name = "p") + private Double p; + + @Column(name = "p_1") + private Double p1; + + @Column(name = "p_2") + private Double p2; + + @Column(name = "p_3") + private Double p3; + + @Column(name = "p_4") + private Double p4; + + @Column(name = "p_5") + private Double p5; + + @Column(name = "p_6") + private Double p6; + + @Column(name = "p_7") + private Double p7; + + @Column(name = "p_8") + private Double p8; + + @Column(name = "p_9") + private Double p9; + + @Column(name = "p_10") + private Double p10; + + @Column(name = "p_11") + private Double p11; + + @Column(name = "p_12") + private Double p12; + + @Column(name = "p_13") + private Double p13; + + @Column(name = "p_14") + private Double p14; + + @Column(name = "p_15") + private Double p15; + + @Column(name = "p_16") + private Double p16; + + @Column(name = "p_17") + private Double p17; + + @Column(name = "p_18") + private Double p18; + + @Column(name = "p_19") + private Double p19; + + @Column(name = "p_20") + private Double p20; + + @Column(name = "p_21") + private Double p21; + + @Column(name = "p_22") + private Double p22; + + @Column(name = "p_23") + private Double p23; + + @Column(name = "p_24") + private Double p24; + + @Column(name = "p_25") + private Double p25; + + @Column(name = "p_26") + private Double p26; + + @Column(name = "p_27") + private Double p27; + + @Column(name = "p_28") + private Double p28; + + @Column(name = "p_29") + private Double p29; + + @Column(name = "p_30") + private Double p30; + + @Column(name = "p_31") + private Double p31; + + @Column(name = "p_32") + private Double p32; + + @Column(name = "p_33") + private Double p33; + + @Column(name = "p_34") + private Double p34; + + @Column(name = "p_35") + private Double p35; + + @Column(name = "p_36") + private Double p36; + + @Column(name = "p_37") + private Double p37; + + @Column(name = "p_38") + private Double p38; + + @Column(name = "p_39") + private Double p39; + + @Column(name = "p_40") + private Double p40; + + @Column(name = "p_41") + private Double p41; + + @Column(name = "p_42") + private Double p42; + + @Column(name = "p_43") + private Double p43; + + @Column(name = "p_44") + private Double p44; + + @Column(name = "p_45") + private Double p45; + + @Column(name = "p_46") + private Double p46; + + @Column(name = "p_47") + private Double p47; + + @Column(name = "p_48") + private Double p48; + + @Column(name = "p_49") + private Double p49; + + @Column(name = "p_50") + private Double p50; +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerQ.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerQ.java new file mode 100644 index 000000000..06ab1e023 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerQ.java @@ -0,0 +1,191 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 9:13 + */ +@Data +@Measurement(name = "data_harmpower_q") +public class DataHarmPowerQ { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "q") + private Double q; + + @Column(name = "q_1") + private Double q1; + + @Column(name = "q_2") + private Double q2; + + @Column(name = "q_3") + private Double q3; + + @Column(name = "q_4") + private Double q4; + + @Column(name = "q_5") + private Double q5; + + @Column(name = "q_6") + private Double q6; + + @Column(name = "q_7") + private Double q7; + + @Column(name = "q_8") + private Double q8; + + @Column(name = "q_9") + private Double q9; + + @Column(name = "q_10") + private Double q10; + + @Column(name = "q_11") + private Double q11; + + @Column(name = "q_12") + private Double q12; + + @Column(name = "q_13") + private Double q13; + + @Column(name = "q_14") + private Double q14; + + @Column(name = "q_15") + private Double q15; + + @Column(name = "q_16") + private Double q16; + + @Column(name = "q_17") + private Double q17; + + @Column(name = "q_18") + private Double q18; + + @Column(name = "q_19") + private Double q19; + + @Column(name = "q_20") + private Double q20; + + @Column(name = "q_21") + private Double q21; + + @Column(name = "q_22") + private Double q22; + + @Column(name = "q_23") + private Double q23; + + @Column(name = "q_24") + private Double q24; + + @Column(name = "q_25") + private Double q25; + + @Column(name = "q_26") + private Double q26; + + @Column(name = "q_27") + private Double q27; + + @Column(name = "q_28") + private Double q28; + + @Column(name = "q_29") + private Double q29; + + @Column(name = "q_30") + private Double q30; + + @Column(name = "q_31") + private Double q31; + + @Column(name = "q_32") + private Double q32; + + @Column(name = "q_33") + private Double q33; + + @Column(name = "q_34") + private Double q34; + + @Column(name = "q_35") + private Double q35; + + @Column(name = "q_36") + private Double q36; + + @Column(name = "q_37") + private Double q37; + + @Column(name = "q_38") + private Double q38; + + @Column(name = "q_39") + private Double q39; + + @Column(name = "q_40") + private Double q40; + + @Column(name = "q_41") + private Double q41; + + @Column(name = "q_42") + private Double q42; + + @Column(name = "q_43") + private Double q43; + + @Column(name = "q_44") + private Double q44; + + @Column(name = "q_45") + private Double q45; + + @Column(name = "q_46") + private Double q46; + + @Column(name = "q_47") + private Double q47; + + @Column(name = "q_48") + private Double q48; + + @Column(name = "q_49") + private Double q49; + + @Column(name = "q_50") + private Double q50; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerS.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerS.java new file mode 100644 index 000000000..bfba31dd6 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerS.java @@ -0,0 +1,191 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 9:13 + */ +@Data +@Measurement(name = "data_harmpower_s") +public class DataHarmPowerS { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "s") + private Double s; + + @Column(name = "s_1") + private Double s1; + + @Column(name = "s_2") + private Double s2; + + @Column(name = "s_3") + private Double s3; + + @Column(name = "s_4") + private Double s4; + + @Column(name = "s_5") + private Double s5; + + @Column(name = "s_6") + private Double s6; + + @Column(name = "s_7") + private Double s7; + + @Column(name = "s_8") + private Double s8; + + @Column(name = "s_9") + private Double s9; + + @Column(name = "s_10") + private Double s10; + + @Column(name = "s_11") + private Double s11; + + @Column(name = "s_12") + private Double s12; + + @Column(name = "s_13") + private Double s13; + + @Column(name = "s_14") + private Double s14; + + @Column(name = "s_15") + private Double s15; + + @Column(name = "s_16") + private Double s16; + + @Column(name = "s_17") + private Double s17; + + @Column(name = "s_18") + private Double s18; + + @Column(name = "s_19") + private Double s19; + + @Column(name = "s_20") + private Double s20; + + @Column(name = "s_21") + private Double s21; + + @Column(name = "s_22") + private Double s22; + + @Column(name = "s_23") + private Double s23; + + @Column(name = "s_24") + private Double s24; + + @Column(name = "s_25") + private Double s25; + + @Column(name = "s_26") + private Double s26; + + @Column(name = "s_27") + private Double s27; + + @Column(name = "s_28") + private Double s28; + + @Column(name = "s_29") + private Double s29; + + @Column(name = "s_30") + private Double s30; + + @Column(name = "s_31") + private Double s31; + + @Column(name = "s_32") + private Double s32; + + @Column(name = "s_33") + private Double s33; + + @Column(name = "s_34") + private Double s34; + + @Column(name = "s_35") + private Double s35; + + @Column(name = "s_36") + private Double s36; + + @Column(name = "s_37") + private Double s37; + + @Column(name = "s_38") + private Double s38; + + @Column(name = "s_39") + private Double s39; + + @Column(name = "s_40") + private Double s40; + + @Column(name = "s_41") + private Double s41; + + @Column(name = "s_42") + private Double s42; + + @Column(name = "s_43") + private Double s43; + + @Column(name = "s_44") + private Double s44; + + @Column(name = "s_45") + private Double s45; + + @Column(name = "s_46") + private Double s46; + + @Column(name = "s_47") + private Double s47; + + @Column(name = "s_48") + private Double s48; + + @Column(name = "s_49") + private Double s49; + + @Column(name = "s_50") + private Double s50; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateI.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateI.java new file mode 100644 index 000000000..737b11507 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateI.java @@ -0,0 +1,18 @@ +package com.njcn.influx.pojo.po; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.influxdb.annotation.Measurement; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 11:27 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Measurement(name = "data_harmrate_i") +public class DataHarmRateI extends DataHarmPhasicI{ +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateV.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateV.java new file mode 100644 index 000000000..799bec602 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateV.java @@ -0,0 +1,18 @@ +package com.njcn.influx.pojo.po; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.influxdb.annotation.Measurement; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 11:27 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Measurement(name = "data_harmrate_v") +public class DataHarmRateV extends DataHarmPhasicV{ +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataI.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataI.java new file mode 100644 index 000000000..f0bed816d --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataI.java @@ -0,0 +1,206 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/11 15:13 + */ +@Data +@Measurement(name = "data_i") +public class DataI { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "i_neg") + private Double iNeg; + + @Column(name = "i_pos") + private Double iPos; + + @Column(name = "i_thd") + private Double iThd; + + @Column(name = "i_unbalance") + private Double iUnbalance; + + @Column(name = "i_zero") + private Double iZero; + + @Column(name = "rms") + private Double rms; + + @Column(name = "i_1") + private Double i1; + + @Column(name = "i_2") + private Double i2; + + @Column(name = "i_3") + private Double i3; + + @Column(name = "i_4") + private Double i4; + + @Column(name = "i_5") + private Double i5; + + @Column(name = "i_6") + private Double i6; + + @Column(name = "i_7") + private Double i7; + + @Column(name = "i_8") + private Double i8; + + @Column(name = "i_9") + private Double i9; + + @Column(name = "i_10") + private Double i10; + + @Column(name = "i_11") + private Double i11; + + @Column(name = "i_12") + private Double i12; + + @Column(name = "i_13") + private Double i13; + + @Column(name = "i_14") + private Double i14; + + @Column(name = "i_15") + private Double i15; + + @Column(name = "i_16") + private Double i16; + + @Column(name = "i_17") + private Double i17; + + @Column(name = "i_18") + private Double i18; + + @Column(name = "i_19") + private Double i19; + + @Column(name = "i_20") + private Double i20; + + @Column(name = "i_21") + private Double i21; + + @Column(name = "i_22") + private Double i22; + + @Column(name = "i_23") + private Double i23; + + @Column(name = "i_24") + private Double i24; + + @Column(name = "i_25") + private Double i25; + + @Column(name = "i_26") + private Double i26; + + @Column(name = "i_27") + private Double i27; + + @Column(name = "i_28") + private Double i28; + + @Column(name = "i_29") + private Double i29; + + @Column(name = "i_30") + private Double i30; + + @Column(name = "i_31") + private Double i31; + + @Column(name = "i_32") + private Double i32; + + @Column(name = "i_33") + private Double i33; + + @Column(name = "i_34") + private Double i34; + + @Column(name = "i_35") + private Double i35; + + @Column(name = "i_36") + private Double i36; + + @Column(name = "i_37") + private Double i37; + + @Column(name = "i_38") + private Double i38; + + @Column(name = "i_39") + private Double i39; + + @Column(name = "i_40") + private Double i40; + + @Column(name = "i_41") + private Double i41; + + @Column(name = "i_42") + private Double i42; + + @Column(name = "i_43") + private Double i43; + + @Column(name = "i_44") + private Double i44; + + @Column(name = "i_45") + private Double i45; + + @Column(name = "i_46") + private Double i46; + + @Column(name = "i_47") + private Double i47; + + @Column(name = "i_48") + private Double i48; + + @Column(name = "i_49") + private Double i49; + + @Column(name = "i_50") + private Double i50; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmI.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmI.java new file mode 100644 index 000000000..f0783b664 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmI.java @@ -0,0 +1,20 @@ +package com.njcn.influx.pojo.po; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.influxdb.annotation.Measurement; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 11:27 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Measurement(name = "data_inharm_i") +public class DataInHarmI extends DataHarmPhasicI{ + + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmV.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmV.java new file mode 100644 index 000000000..0e22b0630 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmV.java @@ -0,0 +1,185 @@ +package com.njcn.influx.pojo.po; + +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/5/12 11:27 + */ +@Data +@Measurement(name = "data_inharm_v") +public class DataInHarmV { + + @Column(name = "time") + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "v_1") + private Double v1; + + @Column(name = "v_2") + private Double v2; + + @Column(name = "v_3") + private Double v3; + + @Column(name = "v_4") + private Double v4; + + @Column(name = "v_5") + private Double v5; + + @Column(name = "v_6") + private Double v6; + + @Column(name = "v_7") + private Double v7; + + @Column(name = "v_8") + private Double v8; + + @Column(name = "v_9") + private Double v9; + + @Column(name = "v_10") + private Double v10; + + @Column(name = "v_11") + private Double v11; + + @Column(name = "v_12") + private Double v12; + + @Column(name = "v_13") + private Double v13; + + @Column(name = "v_14") + private Double v14; + + @Column(name = "v_15") + private Double v15; + + @Column(name = "v_16") + private Double v16; + + @Column(name = "v_17") + private Double v17; + + @Column(name = "v_18") + private Double v18; + + @Column(name = "v_19") + private Double v19; + + @Column(name = "v_20") + private Double v20; + + @Column(name = "v_21") + private Double v21; + + @Column(name = "v_22") + private Double v22; + + @Column(name = "v_23") + private Double v23; + + @Column(name = "v_24") + private Double v24; + + @Column(name = "v_25") + private Double v25; + + @Column(name = "v_26") + private Double v26; + + @Column(name = "v_27") + private Double v27; + + @Column(name = "v_28") + private Double v28; + + @Column(name = "v_29") + private Double v29; + + @Column(name = "v_30") + private Double v30; + + @Column(name = "v_31") + private Double v31; + + @Column(name = "v_32") + private Double v32; + + @Column(name = "v_33") + private Double v33; + + @Column(name = "v_34") + private Double v34; + + @Column(name = "v_35") + private Double v35; + + @Column(name = "v_36") + private Double v36; + + @Column(name = "v_37") + private Double v37; + + @Column(name = "v_38") + private Double v38; + + @Column(name = "v_39") + private Double v39; + + @Column(name = "v_40") + private Double v40; + + @Column(name = "v_41") + private Double v41; + + @Column(name = "v_42") + private Double v42; + + @Column(name = "v_43") + private Double v43; + + @Column(name = "v_44") + private Double v44; + + @Column(name = "v_45") + private Double v45; + + @Column(name = "v_46") + private Double v46; + + @Column(name = "v_47") + private Double v47; + + @Column(name = "v_48") + private Double v48; + + @Column(name = "v_49") + private Double v49; + + @Column(name = "v_50") + private Double v50; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataPlt.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataPlt.java new file mode 100644 index 000000000..6a0904fe4 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataPlt.java @@ -0,0 +1,45 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/12 16:01 + */ +@Data +@Measurement(name = "data_plt") +public class DataPlt { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "plt") + private Double plt; + + //自定义字段-闪变总计算次数 + @Column(name = "flicker_all_time") + private Integer flickerAllTime; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataV.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataV.java new file mode 100644 index 000000000..1f324092f --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataV.java @@ -0,0 +1,224 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/7 10:00 + */ +@Data +@Measurement(name = "data_v") +public class DataV{ + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "freq") + private Double freq; + + @Column(name = "freq_dev") + private Double freqDev; + + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "rms") + private Double rms; + + @Column(name = "rms_lvr") + private Double rmsLvr; + + @Column(name = "vl_dev") + private Double vlDev; + + @Column(name = "vu_dev") + private Double vuDev; + + @Column(name = "v_1") + private Double v1; + + @Column(name = "v_2") + private Double v2; + + @Column(name = "v_3") + private Double v3; + + @Column(name = "v_4") + private Double v4; + + @Column(name = "v_5") + private Double v5; + + @Column(name = "v_6") + private Double v6; + + @Column(name = "v_7") + private Double v7; + + @Column(name = "v_8") + private Double v8; + + @Column(name = "v_9") + private Double v9; + + @Column(name = "v_10") + private Double v10; + + @Column(name = "v_11") + private Double v11; + + @Column(name = "v_12") + private Double v12; + + @Column(name = "v_13") + private Double v13; + + @Column(name = "v_14") + private Double v14; + + @Column(name = "v_15") + private Double v15; + + @Column(name = "v_16") + private Double v16; + + @Column(name = "v_17") + private Double v17; + + @Column(name = "v_18") + private Double v18; + + @Column(name = "v_19") + private Double v19; + + @Column(name = "v_20") + private Double v20; + + @Column(name = "v_21") + private Double v21; + + @Column(name = "v_22") + private Double v22; + + @Column(name = "v_23") + private Double v23; + + @Column(name = "v_24") + private Double v24; + + @Column(name = "v_25") + private Double v25; + + @Column(name = "v_26") + private Double v26; + + @Column(name = "v_27") + private Double v27; + + @Column(name = "v_28") + private Double v28; + + @Column(name = "v_29") + private Double v29; + + @Column(name = "v_30") + private Double v30; + + @Column(name = "v_31") + private Double v31; + + @Column(name = "v_32") + private Double v32; + + @Column(name = "v_33") + private Double v33; + + @Column(name = "v_34") + private Double v34; + + @Column(name = "v_35") + private Double v35; + + @Column(name = "v_36") + private Double v36; + + @Column(name = "v_37") + private Double v37; + + @Column(name = "v_38") + private Double v38; + + @Column(name = "v_39") + private Double v39; + + @Column(name = "v_40") + private Double v40; + + @Column(name = "v_41") + private Double v41; + + @Column(name = "v_42") + private Double v42; + + @Column(name = "v_43") + private Double v43; + + @Column(name = "v_44") + private Double v44; + + @Column(name = "v_45") + private Double v45; + + @Column(name = "v_46") + private Double v46; + + @Column(name = "v_47") + private Double v47; + + @Column(name = "v_48") + private Double v48; + + @Column(name = "v_49") + private Double v49; + + @Column(name = "v_50") + private Double v50; + + @Column(name = "v_neg") + private Double vNeg; + + @Column(name = "v_pos") + private Double vPos; + + @Column(name = "v_thd") + private Double vThd; + + @Column(name = "v_unbalance") + private Double vUnbalance; + + @Column(name = "v_zero") + private Double vZero; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "value_type") + private String valueType; + + //自定义字段-总计算次数 + @Column(name = "all_time") + private Integer allTime; +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/PqsCommunicate.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/PqsCommunicate.java new file mode 100644 index 000000000..f44065f86 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/PqsCommunicate.java @@ -0,0 +1,35 @@ +package com.njcn.influx.pojo.po; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/7/12 9:55 + */ +@Data +@Measurement(name = "pqs_communicate") +public class PqsCommunicate { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "dev_id") + private String devId; + + @Column(name = "description") + private String description; + + @Column(name = "type") + private Integer type; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/CldStatisticsFlowService.java b/pqs-influx/src/main/java/com/njcn/influx/service/CldStatisticsFlowService.java new file mode 100644 index 000000000..6c17008e8 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/CldStatisticsFlowService.java @@ -0,0 +1,9 @@ +package com.njcn.influx.service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:00 + */ +public interface CldStatisticsFlowService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/DataFlickerService.java b/pqs-influx/src/main/java/com/njcn/influx/service/DataFlickerService.java new file mode 100644 index 000000000..9b18d10d0 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/DataFlickerService.java @@ -0,0 +1,15 @@ +package com.njcn.influx.service; + +import com.njcn.influx.pojo.dto.DataFlickerDTO; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:04 + */ +public interface DataFlickerService { + + List getDataFlicker(String lineIndex, String startTime, String endTime); +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/DataFlucService.java b/pqs-influx/src/main/java/com/njcn/influx/service/DataFlucService.java new file mode 100644 index 000000000..fd6d64155 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/DataFlucService.java @@ -0,0 +1,9 @@ +package com.njcn.influx.service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:10 + */ +public interface DataFlucService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicIService.java b/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicIService.java new file mode 100644 index 000000000..56a0879e9 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicIService.java @@ -0,0 +1,9 @@ +package com.njcn.influx.service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:46 + */ +public interface DataHarmPhasicIService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicVService.java b/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicVService.java new file mode 100644 index 000000000..d4c458be7 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicVService.java @@ -0,0 +1,9 @@ +package com.njcn.influx.service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:50 + */ +public interface DataHarmPhasicVService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPowerPService.java b/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPowerPService.java new file mode 100644 index 000000000..ca2ff1108 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPowerPService.java @@ -0,0 +1,9 @@ +package com.njcn.influx.service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:51 + */ +public interface DataHarmPowerPService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CldStatisticsFlowServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CldStatisticsFlowServiceImpl.java new file mode 100644 index 000000000..6ee060267 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CldStatisticsFlowServiceImpl.java @@ -0,0 +1,14 @@ +package com.njcn.influx.service.impl; + +import com.njcn.influx.service.CldStatisticsFlowService; +import org.springframework.stereotype.Service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:00 + */ +@Service +public class CldStatisticsFlowServiceImpl implements CldStatisticsFlowService { + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlickerServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlickerServiceImpl.java new file mode 100644 index 000000000..ab5b20b9e --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlickerServiceImpl.java @@ -0,0 +1,143 @@ +package com.njcn.influx.service.impl; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.njcn.influx.mapper.DataFlickerMapper; +import com.njcn.influx.pojo.dto.DataFlickerDTO; +import com.njcn.influx.pojo.po.DataFlicker; +import com.njcn.influx.query.InfluxQueryWrapper; +import com.njcn.influx.service.DataFlickerService; +import com.njcn.influx.utils.InfluxDbUtil; +import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:05 + */ +@Service +public class DataFlickerServiceImpl implements DataFlickerService { + + @Resource + private DataFlickerMapper dataFlickerMapper; + + + @Override + public List getDataFlicker(String lineIndex, String startTime, String endTime) { + InfluxDbUtil influxDbUtils = new InfluxDbUtil("admin", "123456", "http://192.168.1.16:8086", "pqsbase_sjzx", "autogen"); + + List result = new ArrayList<>(); +// StringBuilder stringBuilder = new StringBuilder(); +// stringBuilder.append("line_id='").append(lineIndex).append("' and "); +// //最小值 +// String sql1 = "select min(fluc) AS fluc,min(plt) AS plt,min(pst) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')"; +// QueryResult sqlResult1 = influxDbUtils.query(sql1); +// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper(); +// List list1 = resultMapper1.toPOJO(sqlResult1, DataFlickerDTO.class); +// list1.forEach(item -> { +// item.setValueType("MIN"); +// }); +// //最大值 +// String sql2 = "select max(fluc) AS fluc,max(plt) AS plt,max(pst) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')"; +// QueryResult sqlResult2 = influxDbUtils.query(sql2); +// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper(); +// List list2 = resultMapper2.toPOJO(sqlResult2, DataFlickerDTO.class); +// list2.forEach(item -> { +// item.setValueType("MAX"); +// }); +// //平均值 +// String sql3 = "select mean(fluc) AS fluc,mean(plt) AS plt,mean(pst) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')"; +// QueryResult sqlResult3 = influxDbUtils.query(sql3); +// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper(); +// List list3 = resultMapper3.toPOJO(sqlResult3, DataFlickerDTO.class); +// list3.forEach(item -> { +// item.setValueType("AVG"); +// }); +// //CP95值 +// String sql4 = "select percentile(fluc,95) AS fluc,percentile(plt,95) AS plt,percentile(pst,95) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')"; +// QueryResult sqlResult4 = influxDbUtils.query(sql4); +// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper(); +// List list4 = resultMapper4.toPOJO(sqlResult4, DataFlickerDTO.class); +// list4.forEach(item -> { +// item.setValueType("CP95"); +// }); +// result.addAll(list1); +// result.addAll(list2); +// result.addAll(list3); +// result.addAll(list4); + + /////改造前↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑改造后↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ + //最小值 + List result1 ; + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class, DataFlickerDTO.class); + influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex) + .min(DataFlicker::getFluc) + .min(DataFlicker::getPlt) + .min(DataFlicker::getPst) + .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .between(DataFlicker::getTime, startTime, endTime); + result1 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper); + result1.forEach(item -> { + item.setValueType("MIN"); + }); + //最大值 + List result2 ; + influxQueryWrapper.initSql(); + influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex) + .max(DataFlicker::getFluc) + .max(DataFlicker::getPlt) + .max(DataFlicker::getPst) + .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .between(DataFlicker::getTime, startTime, endTime); + result2 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper); + result2.forEach(item -> { + item.setValueType("MAX"); + }); + //平均值 + List result3 ; + influxQueryWrapper.initSql(); + influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex) + .mean(DataFlicker::getFluc) + .mean(DataFlicker::getPlt) + .mean(DataFlicker::getPst) + .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .between(DataFlicker::getTime, startTime, endTime); + result3 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper); + result3.forEach(item -> { + item.setValueType("AVG"); + }); + List result4 ; + influxQueryWrapper.initSql(); + influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex) + .percentile(DataFlicker::getFluc, 95) + .percentile(DataFlicker::getPlt, 95) + .percentile(DataFlicker::getPst, 95) + .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .between(DataFlicker::getTime, startTime, endTime); + //CP95值 + result4 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper); + result4.forEach(item -> { + item.setValueType("CP95"); + }); + List result5 = new ArrayList<>(); + result5.addAll(result1); + result5.addAll(result2); + result5.addAll(result3); + result5.addAll(result4); + + ObjectMapper objectMapper = new ObjectMapper(); + try { + System.out.println(objectMapper.writeValueAsString(result)); + System.out.println(objectMapper.writeValueAsString(result5)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return result; + } +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlucServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlucServiceImpl.java new file mode 100644 index 000000000..7f793deb4 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlucServiceImpl.java @@ -0,0 +1,12 @@ +package com.njcn.influx.service.impl; + +import org.springframework.stereotype.Service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:10 + */ +@Service +public class DataFlucServiceImpl { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicIServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicIServiceImpl.java new file mode 100644 index 000000000..f9edccec3 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicIServiceImpl.java @@ -0,0 +1,13 @@ +package com.njcn.influx.service.impl; + +import com.njcn.influx.service.DataHarmPhasicIService; +import org.springframework.stereotype.Service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:46 + */ +@Service +public class DataHarmPhasicIServiceImpl implements DataHarmPhasicIService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicVServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicVServiceImpl.java new file mode 100644 index 000000000..7300a2b9d --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicVServiceImpl.java @@ -0,0 +1,13 @@ +package com.njcn.influx.service.impl; + +import com.njcn.influx.service.DataHarmPhasicVService; +import org.springframework.stereotype.Service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:50 + */ +@Service +public class DataHarmPhasicVServiceImpl implements DataHarmPhasicVService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPowerPServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPowerPServiceImpl.java new file mode 100644 index 000000000..2976ba512 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPowerPServiceImpl.java @@ -0,0 +1,13 @@ +package com.njcn.influx.service.impl; + +import com.njcn.influx.service.DataHarmPowerPService; +import org.springframework.stereotype.Service; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年05月05日 09:51 + */ +@Service +public class DataHarmPowerPServiceImpl implements DataHarmPowerPService { +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/utils/InfluxDbUtil.java b/pqs-influx/src/main/java/com/njcn/influx/utils/InfluxDbUtil.java new file mode 100644 index 000000000..e7be28306 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/utils/InfluxDbUtil.java @@ -0,0 +1,376 @@ +package com.njcn.influx.utils; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import okhttp3.OkHttpClient; +import org.influxdb.InfluxDB; +import org.influxdb.InfluxDB.ConsistencyLevel; +import org.influxdb.InfluxDBFactory; +import org.influxdb.dto.*; +import org.influxdb.dto.Point.Builder; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.time.temporal.ChronoField; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2021/11/16 10:20 + */ +@Slf4j +@Data +public class InfluxDbUtil { + static OkHttpClient.Builder client = new OkHttpClient.Builder() + .connectTimeout(1000,TimeUnit.SECONDS) + .readTimeout(1000, TimeUnit.SECONDS) + .writeTimeout(1000, TimeUnit.SECONDS); + private static final int FRACTION_MIN_WIDTH = 0; + private static final int FRACTION_MAX_WIDTH = 9; + private static final boolean ADD_DECIMAL_POINT = true; + private static final DateTimeFormatter RFC3339_FORMATTER = new DateTimeFormatterBuilder() + .appendPattern("yyyy-MM-dd'T'HH:mm:ss") + .appendFraction(ChronoField.NANO_OF_SECOND, FRACTION_MIN_WIDTH, FRACTION_MAX_WIDTH, ADD_DECIMAL_POINT) + .appendZoneOrOffsetId() + .toFormatter(); + + /**用户名*/ + private String username; + /**密码*/ + private String password; + /**链接地址*/ + private String openurl; + /**数据库*/ + private String dbName; + /**保留策略*/ + private String retentionPolicy; + + private InfluxDB influxDB; + + public InfluxDbUtil(String username, String password, String url, String dbName, String retentionPolicy) { + this.username = username; + this.password = password; + this.openurl = url; + this.dbName = dbName; + this.retentionPolicy = retentionPolicy == null || retentionPolicy.equals("") ? "autogen" : retentionPolicy; + influxDbBuild(); + } + + + /** + * 连接时序数据库 ,若不存在则创建 + * + * @return + */ + public InfluxDB influxDbBuild() { + if (influxDB == null) { + influxDB = InfluxDBFactory.connect(openurl, username, password,client); + } + try { + // if (!influxDB.databaseExists(database)) { + // influxDB.createDatabase(database); + // } + } catch (Exception e) { + // 该数据库可能设置动态代理,不支持创建数据库 + // e.printStackTrace(); + } finally { + influxDB.setRetentionPolicy(retentionPolicy); + } + influxDB.setLogLevel(InfluxDB.LogLevel.NONE); + return influxDB; + } + + + + + /** + * 创建数据库 + * + * @param dbName + */ + @SuppressWarnings("deprecation") + public void createDB(String dbName) { + influxDB.createDatabase(dbName); + } + + /** + * 删除数据库 + * + * @param dbName + */ + @SuppressWarnings("deprecation") + public void deleteDB(String dbName) { + influxDB.deleteDatabase(dbName); + } + + /** + * 测试连接是否正常 + * + * @return true 正常 + */ + public boolean ping() { + boolean isConnected = false; + Pong pong; + try { + pong = influxDB.ping(); + if (pong != null) { + isConnected = true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return isConnected; + } + + /** + * 创建自定义保留策略 + * + * @param policyName 策略名 + * @param days 保存天数 + * @param replication 保存副本数量 + * @param isDefault 是否设为默认保留策略 + */ + public void createRetentionPolicy(String dataBaseName, String policyName, int days, int replication, + Boolean isDefault) { + String sql = String.format("CREATE RETENTION POLICY \"%s\" ON \"%s\" DURATION %sd REPLICATION %s ", policyName, + dataBaseName, days, replication); + if (isDefault) { + sql = sql + " DEFAULT"; + } + query(sql); + } + + /** + * 创建默认的保留策略 + * + * 策略名:hour,保存天数:30天,保存副本数量:1,设为默认保留策略 + */ + public void createDefaultRetentionPolicy() { + String command = String + .format("CREATE RETENTION POLICY \"%s\" ON \"%s\" DURATION %s REPLICATION %s DEFAULT", "hour", dbName, + "30d", 1); + this.query(command); + } + + /** + * 查询 + * + * @param command 查询语句 + * @return + */ + public QueryResult query(String command) { + return influxDB.query(new Query(command, dbName)); + } + + /** + * 插入 + * + * @param measurement 表 + * @param tags 标签 + * @param fields 字段 + */ + public void insert(String measurement, Map tags, Map fields, long time, + TimeUnit timeUnit) { + Builder builder = Point.measurement(measurement); + builder.tag(tags); + builder.fields(fields); + if (0 != time) { + builder.time(time, timeUnit); + } + influxDB.write(dbName, retentionPolicy, builder.build()); + } + + + + /** + * 批量写入测点 + * + * @param batchPoints + */ + public void batchInsert(BatchPoints batchPoints, TimeUnit timeUnit) { + influxDB.write(batchPoints); + // influxDB.enableGzip(); + // influxDB.enableBatch(2000,100,timeUnit); + // influxDB.disableGzip(); + // influxDB.disableBatch(); + } + + /** + * 批量写入数据 + * + * @param database 数据库 + * @param retentionPolicy 保存策略 + * @param consistency 一致性 + * @param records 要保存的数据(调用BatchPoints.lineProtocol()可得到一条record) + */ + public void batchInsert(final String database, final String retentionPolicy, final ConsistencyLevel consistency,TimeUnit timeUnit, final List records) { + influxDB.write(database, retentionPolicy, consistency, records); + } + + /** + * 批量写入数据 + * + * @param database 数据库 + * @param retentionPolicy 保存策略 + * @param consistency 一致性 + * @param records 要保存的数据(调用BatchPoints.lineProtocol()可得到一条record) + */ + public void batchInsert(final String database, final String retentionPolicy, final ConsistencyLevel consistency, final List records) { + influxDB.write(database, retentionPolicy, consistency, records); + } + + + /** + * 删除 + * + * @param command 删除语句 + * @return 返回错误信息 + */ + public String deleteMeasurementData(String command) { + QueryResult result = influxDB.query(new Query(command, dbName)); + return result.getError(); + } + + /** + * 关闭数据库 + */ + public void close() { + influxDB.close(); + } + + /** + * 构建Point + * + * @param measurement + * @param time + * @param fields + * @return + */ + public Point pointBuilder(String measurement, long time, TimeUnit timeUnit, Map tags, + Map fields) { + Point point = Point.measurement(measurement).time(time, timeUnit).tag(tags).fields(fields).build(); + return point; + } + + + + + + //单条查询语句封装 + /** + * 查询结果封装到map + * @param commond 单条sql语句 + * @return 查询结果 + */ + @Deprecated + public List> getResult(String commond){ + List> retList = new ArrayList<>(); + QueryResult queryResult = influxDB.query(new Query(commond,dbName)); + List results = queryResult.getResults(); + if (results==null||results.isEmpty()){ + return retList; + } + QueryResult.Result result = results.get(0); + List seriess = result.getSeries(); + if (seriess==null||seriess.isEmpty()){ + return retList; + } + QueryResult.Series series = seriess.get(0); + List columns = series.getColumns(); + List> values = series.getValues(); + for (List columnValue :values){ + Map map = new HashMap<>(1); + for (int i=0;i> getResult(String commond, String type){ + + List> retList = new ArrayList<>(); + QueryResult queryResult = influxDB.query(new Query(commond,dbName)); + List results = queryResult.getResults(); + if (results==null||results.isEmpty()){ + return retList; + } + QueryResult.Result result = results.get(0); + List seriess = result.getSeries(); + if (seriess==null||seriess.isEmpty()){ + return retList; + } + QueryResult.Series series = seriess.get(0); + List columns = series.getColumns(); + List> values = series.getValues(); + for (List columnValue :values){ + Map map = new HashMap<>(1); + for (int i=0;i> getMapResult(String commond){ + + List> retList = new ArrayList<>(); + QueryResult queryResult = influxDB.query(new Query(commond,dbName)); + List results = queryResult.getResults(); + if (results==null||results.isEmpty()){ + return retList; + } + QueryResult.Result result = results.get(0); + List seriess = result.getSeries(); + if (seriess==null||seriess.isEmpty()){ + return retList; + } + QueryResult.Series series = seriess.get(0); + List columns = series.getColumns(); + List> values = series.getValues(); + for (List columnValue :values){ + Map map = new HashMap<>(1); + for (int i=0;i diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/influxdb/po/DataFlickerPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/influxdb/po/DataFlickerPO.java index c9f0ef5cc..ee9dfdd8b 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/influxdb/po/DataFlickerPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/influxdb/po/DataFlickerPO.java @@ -11,7 +11,6 @@ import java.time.Instant; * * @author xuyang * @version 1.0.0 - * @createTime 2022/5/11 16:08 */ @Data @Measurement(name = "data_flicker") @@ -20,27 +19,29 @@ public class DataFlickerPO { @Column(name = "time") private Instant time; + @Column(name = "fluc") + private Double fluc; + @Column(name = "line_id") private String lineId; @Column(name = "phasic_type") private String phaseType; - @Column(name = "quality_flag") - private String qualityFlag; - - @Column(name = "value_type") - private String valueType; - - @Column(name = "fluc") - private Double fluc; - @Column(name = "plt") private Double plt; @Column(name = "pst") private Double pst; + @Column(name = "quality_flag") + private String qualityFlag; + + @Column(name = "value_type") + private String valueType; + + + //自定义字段 @Column(name = "count") private Integer count;