From 285db148440fcb254f1252cb608b6a2a08b29f96 Mon Sep 17 00:00:00 2001
From: hongawen <83944980@qq.com>
Date: Fri, 5 May 2023 13:39:49 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 18 +-
pqs-influx/pom.xml | 74 ++++
.../com/njcn/influx/PqsInfluxApplication.java | 15 +
.../mapper/CldStatisticsFlowMapper.java | 14 +
.../njcn/influx/mapper/DataFlickerMapper.java | 18 +
.../njcn/influx/mapper/DataFlucMapper.java | 12 +
.../influx/mapper/DataHarmPhasicIMapper.java | 12 +
.../influx/mapper/DataHarmPhasicVMapper.java | 12 +
.../influx/mapper/DataHarmPowerPMapper.java | 12 +
.../njcn/influx/pojo/dto/DataFlickerDTO.java | 21 +
.../njcn/influx/pojo/po/CldStatisFlow.java | 29 ++
.../com/njcn/influx/pojo/po/DataFlicker.java | 43 ++
.../com/njcn/influx/pojo/po/DataFluc.java | 41 ++
.../njcn/influx/pojo/po/DataHarmPhasicI.java | 187 +++++++++
.../njcn/influx/pojo/po/DataHarmPhasicV.java | 188 +++++++++
.../njcn/influx/pojo/po/DataHarmPowerP.java | 196 +++++++++
.../njcn/influx/pojo/po/DataHarmPowerQ.java | 191 +++++++++
.../njcn/influx/pojo/po/DataHarmPowerS.java | 191 +++++++++
.../njcn/influx/pojo/po/DataHarmRateI.java | 18 +
.../njcn/influx/pojo/po/DataHarmRateV.java | 18 +
.../java/com/njcn/influx/pojo/po/DataI.java | 206 ++++++++++
.../com/njcn/influx/pojo/po/DataInHarmI.java | 20 +
.../com/njcn/influx/pojo/po/DataInHarmV.java | 185 +++++++++
.../java/com/njcn/influx/pojo/po/DataPlt.java | 45 +++
.../java/com/njcn/influx/pojo/po/DataV.java | 224 +++++++++++
.../njcn/influx/pojo/po/PqsCommunicate.java | 35 ++
.../service/CldStatisticsFlowService.java | 9 +
.../influx/service/DataFlickerService.java | 15 +
.../njcn/influx/service/DataFlucService.java | 9 +
.../service/DataHarmPhasicIService.java | 9 +
.../service/DataHarmPhasicVService.java | 9 +
.../influx/service/DataHarmPowerPService.java | 9 +
.../impl/CldStatisticsFlowServiceImpl.java | 14 +
.../service/impl/DataFlickerServiceImpl.java | 143 +++++++
.../service/impl/DataFlucServiceImpl.java | 12 +
.../impl/DataHarmPhasicIServiceImpl.java | 13 +
.../impl/DataHarmPhasicVServiceImpl.java | 13 +
.../impl/DataHarmPowerPServiceImpl.java | 13 +
.../com/njcn/influx/utils/InfluxDbUtil.java | 376 ++++++++++++++++++
pqs-influx/src/main/resources/application.yml | 7 +
.../java/com/njcn/influx/BaseJunitTest.java | 18 +
.../test/java/com/njcn/influx/DemoTest.java | 38 ++
.../pojo/influxdb/po/Communicate.java | 2 -
.../pojo/influxdb/po/DataFlickerPO.java | 21 +-
44 files changed, 2731 insertions(+), 24 deletions(-)
create mode 100644 pqs-influx/pom.xml
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/PqsInfluxApplication.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/mapper/CldStatisticsFlowMapper.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlickerMapper.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/mapper/DataFlucMapper.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicIMapper.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPhasicVMapper.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/mapper/DataHarmPowerPMapper.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/dto/DataFlickerDTO.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/CldStatisFlow.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFlicker.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataFluc.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicI.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPhasicV.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerP.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerQ.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmPowerS.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateI.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataHarmRateV.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataI.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmI.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataInHarmV.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataPlt.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/DataV.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/po/PqsCommunicate.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/CldStatisticsFlowService.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/DataFlickerService.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/DataFlucService.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicIService.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPhasicVService.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/DataHarmPowerPService.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/impl/CldStatisticsFlowServiceImpl.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlickerServiceImpl.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/impl/DataFlucServiceImpl.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicIServiceImpl.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPhasicVServiceImpl.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/service/impl/DataHarmPowerPServiceImpl.java
create mode 100644 pqs-influx/src/main/java/com/njcn/influx/utils/InfluxDbUtil.java
create mode 100644 pqs-influx/src/main/resources/application.yml
create mode 100644 pqs-influx/src/test/java/com/njcn/influx/BaseJunitTest.java
create mode 100644 pqs-influx/src/test/java/com/njcn/influx/DemoTest.java
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