27 Commits

Author SHA1 Message Date
xy
97fdd6bc34 feat(power): 添加功率数据实体类字段
- 在DataHarmPowerP中新增totDpf、totHarmP和dpf字段
- 在DataHarmPowerQ中新增totHarmQ字段
- 在DataHarmPowerS中新增totHarmS字段
- 所有新增字段均为Double类型并配置相应数据库列映射
2026-05-26 15:38:22 +08:00
xy
c5b300abbf feat(influx): 添加数据实体类的时间列注解和新字段
- 为多个数据实体类添加 @TimeColumn 注解以标识时间列
- 在多个数据实体类中新增 cl_did 和 process 字段
- 为 PqdData 类添加 quality_flag 字段作为标签
- 更新 DataInHarmRateI 类的时间序列化配置
- 统一数据实体类中的异常标志字段定义
2026-05-25 20:00:30 +08:00
xy
30492cffa1 fix(influx): 修正相位类型和值类型查询条件
- 将 PHASIC_TYPE 从 "M" 修改为 "T"
- 将 VALUE_TYPE 从 "avg" 修改为 "AVG"
- 统一查询条件的数据类型匹配规则
2026-05-21 15:54:52 +08:00
xy
df01e39a58 feat(influx): 添加数据清洗标志常量
- 新增 abnormal_flag 常量用于标识数据清洗状态
- 添加注释说明数据清洗标志含义(0:正常 1:异常)
2026-05-19 15:04:10 +08:00
xy
6375115d77 微调 2026-04-13 15:30:05 +08:00
xy
bce83bd8e8 查询最新一条数据方法优化。添加时间条件,在当前时间之前的最新一条数据 2026-04-09 11:28:36 +08:00
xy
20b0c44874 微调 2025-07-17 15:34:03 +08:00
xy
e0af988ce4 微调 2025-07-09 16:05:26 +08:00
xy
c3ac9b12f7 新增查询治理各模块数据的方法 2025-07-09 11:51:19 +08:00
xy
3b136b0c5b 新增查询治理各模块数据的方法 2025-06-30 11:16:54 +08:00
hzj
20287f02bc 添加cvt中间表 2025-03-10 16:22:03 +08:00
hzj
fcbb327c4a 添加cvt中间表 2025-03-05 14:07:41 +08:00
5ca85f69e9 字段修改 2024-12-06 11:19:42 +08:00
hzj
288dc53cde 添加tag 2024-11-22 15:02:46 +08:00
hzj
2d3b17a636 添加报表批量插入类 2024-11-12 12:54:20 +08:00
xy
a7f17cd2ef 新增方法 2024-11-05 08:52:26 +08:00
hzj
5e1e409748 添加报表批量插入类 2024-09-19 10:10:26 +08:00
hzj
0ad1da0160 添加报表批量插入类 2024-09-18 18:25:59 +08:00
hzj
59068c0085 温度bug修改 2024-09-18 13:49:38 +08:00
guofeihu
ac08343f56 DataInHarmV该名称 2024-09-14 09:21:32 +08:00
guofeihu
0ca611213f DataHarmRateV属性单独拎出来 2024-09-13 19:56:08 +08:00
guofeihu
60afcb97cf 新增一些公共查询方法 2024-09-13 18:42:57 +08:00
guofeihu
ad5833f48a 公共查询方法新增谐波次数标识 2024-09-13 14:28:14 +08:00
guofeihu
067f49cda7 上一个版本恢复不需要添加对应的方法了,直接更改通用查询方法 2024-09-03 14:05:11 +08:00
guofeihu
d298f2b9fd DataHarmPowerPService中新增查询方法getNewHarmonicPowerP 2024-09-03 09:44:01 +08:00
guofeihu
d99292fad1 CommonService新增getNewDeviceRtDataByTime方法 2024-08-27 14:49:22 +08:00
cdf
41758c929a 添加注解 2024-08-22 14:28:53 +08:00
40 changed files with 833 additions and 16 deletions

View File

@@ -0,0 +1,11 @@
package com.njcn.influx.imapper;
import com.njcn.influx.base.InfluxDbBaseMapper;
import com.njcn.influx.pojo.po.DataHarmRateVCvt;
/**
* @author xy
*/
public interface DataHarmRateVCvtMapper extends InfluxDbBaseMapper<DataHarmRateVCvt> {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.influx.imapper.day;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* Description:
* Date: 2024/9/12 19:44【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface GovernReportMapper extends InfluxDbBaseMapper {
}

View File

@@ -4,8 +4,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import java.time.Instant;
import java.util.*;
import java.util.stream.Collectors;
/**
* 类的介绍:
@@ -17,22 +20,62 @@ import java.time.Instant;
@Data
public class CarryCapcityData {
@Column(name = "time")
@Column(name = "time",tag = true)
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@Column(name = "line_id")
@Column(name = "line_id",tag = true)
private String lineId;
@Column(name = "phasic_type")
@Column(name = "phasic_type",tag = true)
private String phaseType;
@Column(name = "quality_flag")
private String qualityFlag;
@Column(name = "value_type")
@Column(name = "value_type",tag = true)
private String valueType;
private Double value;
public static void main(String[] args) {
String[] strs ={"eat","tea", "tan", "ate", "nat", "bat"};
CarryCapcityData.groupAnagrams(strs);
}
public static List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> collect = Arrays.stream(strs).collect(Collectors.groupingBy(temp -> {
char[] charArray = temp.toCharArray();
Arrays.sort(charArray);
return new String(charArray);
}));
return new ArrayList<>(collect.values());
}
public int longestConsecutive(int[] nums) {
Set<Integer> num_set = new HashSet<>();
for (int num : nums) {
num_set.add(num);
}
int longestStreak = 0;
for (int num:
num_set) {
if (!num_set.contains(num - 1)) {
int currentNum = num;
int currentStreak = 1;
while (num_set.contains(currentNum + 1)) {
currentNum += 1;
currentStreak += 1;
}
longestStreak = Math.max(longestStreak, currentStreak);
}
}
return longestStreak;
}
}

View File

@@ -14,11 +14,12 @@ public class CommonQueryParam {
private String lineId;
private String tableName;
private String columnName;
private String resultName;
private String phasic;
private String startTime;
private String endTime;
private String dataType;
private String process;
private String clDid;
private String frequency;
}

View File

@@ -196,5 +196,8 @@ public interface InfluxDBTableConstant {
String NORMAL = "0";
String UN_NORMAL = "1";
/**
* 数据清洗标志 0:正常 1:异常
*/
String ABNORMAL_FLAG = "abnormal_flag";
}

View File

@@ -36,6 +36,10 @@ public class StatisticalDataDTO {
private String clDid;
/**
* 谐波次数
*/
private String frequency;
/**
* 指标值
*/

View File

@@ -58,4 +58,10 @@ public class DataFlicker {
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -18,6 +19,7 @@ import java.time.Instant;
@Measurement(name = "data_fluc")
public class DataFluc {
@TimeColumn
@Column(name = "time")
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@@ -39,7 +41,14 @@ public class DataFluc {
@Column(name = "value_type",tag = true)
private String valueType;
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -18,6 +19,7 @@ import java.time.Instant;
@Measurement(name = "data_harmphasic_i")
public class DataHarmPhasicI {
@TimeColumn
@Column(name = "time")
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@@ -186,4 +188,10 @@ public class DataHarmPhasicI {
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -189,4 +189,10 @@ public class DataHarmPhasicV {
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -19,6 +20,7 @@ import java.time.Instant;
@Measurement(name = "data_harmpower_p")
public class DataHarmPowerP {
@TimeColumn
@Column(name = "time")
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@@ -197,4 +199,19 @@ public class DataHarmPowerP {
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
@Column(name = "tot_dpf")
private Double totDpf;
@Column(name = "tot_harm_p")
private Double totHarmP;
@Column(name = "dpf")
private Double dpf;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -19,6 +20,7 @@ import java.time.Instant;
@Measurement(name = "data_harmpower_q")
public class DataHarmPowerQ {
@TimeColumn
@Column(name = "time")
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@@ -193,4 +195,13 @@ public class DataHarmPowerQ {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
@Column(name = "tot_harm_q")
private Double totHarmQ;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -19,6 +20,7 @@ import java.time.Instant;
@Measurement(name = "data_harmpower_s")
public class DataHarmPowerS {
@TimeColumn
@Column(name = "time")
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@@ -192,4 +194,13 @@ public class DataHarmPowerS {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
@Column(name = "tot_harm_s")
private Double totHarmS;
}

View File

@@ -1,8 +1,14 @@
package com.njcn.influx.pojo.po;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
/**
* 类的介绍:
@@ -11,8 +17,182 @@ import org.influxdb.annotation.Measurement;
* @version 1.0.0
* @createTime 2022/5/12 11:27
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Measurement(name = "data_harmrate_v")
public class DataHarmRateV extends DataHarmPhasicV{
public class DataHarmRateV{
@TimeColumn
@Column(name = "time", tag = true)
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@Column(name = "line_id", tag = true)
private String lineId;
@Column(name = "phasic_type", tag = true)
private String phaseType;
@Column(name = "quality_flag", tag = true)
private String qualityFlag;
@Column(name = "value_type", tag = true)
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;
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -0,0 +1,193 @@
package com.njcn.influx.pojo.po;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2022/5/12 11:27
*/
@Data
@Measurement(name = "data_harmrate_v_cvt")
public class DataHarmRateVCvt {
@TimeColumn
@Column(name = "time", tag = true)
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@Column(name = "line_id", tag = true)
private String lineId;
@Column(name = "phasic_type", tag = true)
private String phaseType;
@Column(name = "quality_flag", tag = true)
private String qualityFlag;
@Column(name = "value_type", tag = true)
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;
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
}

View File

@@ -209,4 +209,10 @@ public class DataI {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -1,8 +1,11 @@
package com.njcn.influx.pojo.po;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -17,7 +20,9 @@ import java.time.Instant;
@Measurement(name = "data_inharmrate_i")
public class DataInHarmRateI {
@TimeColumn
@Column(name = "time")
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@Column(name = "line_id",tag = true)
@@ -185,4 +190,10 @@ public class DataInHarmRateI {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -191,4 +191,10 @@ public class DataInHarmRateV {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -189,4 +189,10 @@ public class DataInHarmV {
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -51,4 +51,10 @@ public class DataPlt {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -232,7 +232,14 @@ public class DataV {
//自定义字段
@Column(name = "count")
private Integer count;
//是否是异常指标数据0否1是
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "cl_did")
private String clDid;
@Column(name = "process")
private String process;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.influx.utils.InstantDateSerializer;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.influxdb.annotation.TimeColumn;
import java.time.Instant;
@@ -18,12 +19,12 @@ import java.time.Instant;
@Data
@Measurement(name = "evt_data")
public class EntData {
@Column(name = "time")
@TimeColumn
@Column(name = "time",tag = true)
@JsonSerialize(using = InstantDateSerializer.class)
private Instant time;
@Column(name = "uuid")
@Column(name = "uuid", tag = true)
private String uuid;
@Column(name = "Evt_Param_Phase")

View File

@@ -39,6 +39,9 @@ public class PqdData implements Serializable {
@Column(name = "abnormal_flag")
private Integer abnormalFlag;
@Column(name = "quality_flag",tag = true)
private String qualityFlag;
@Column(name = "Pq_DF")
private Double pq_DF;

View File

@@ -215,7 +215,7 @@ public class DayV {
private String lineId;
@Column(name = "phasic_type",tag = true)
private String phasicType;
private String phaseType;
@Column(name = "value_type",tag = true)
private String valueType;

View File

@@ -33,7 +33,7 @@ public interface CommonService {
List<StatisticalDataDTO> getDeviceRtData(List<CommonQueryParam> commonQueryParams);
/**
* 此方法和getDeviceRtDataByTime方法逻辑一致,只是允许部分查询参数为空,也即可以不带入查询
* @Description: getDeviceRtDataByTime
* @return: java.util.List<com.njcn.influx.pojo.dto.StatisticalDataDTO>
* @Author: clam
@@ -41,6 +41,15 @@ public interface CommonService {
*/
List<StatisticalDataDTO> getDeviceRtDataByTime(List<CommonQueryParam> commonQueryParams);
/**
* @Description: getNewDeviceRtDataByTime
* @return: java.util.List<com.njcn.influx.pojo.dto.StatisticalDataDTO>
* @Author: guofeihu
* @Date: 2024/8/27
*/
List<StatisticalDataDTO> getNewDeviceRtDataByTime(List<CommonQueryParam> commonQueryParams);
/**
* 根据条件获取监测点时间范围内的最大最小值
*
@@ -68,4 +77,16 @@ public interface CommonService {
* @return
*/
List<StatisticalDataDTO> getTopTemperature(String lineId,String tableName, String columnName,String process);
/**
* 获取监测点的指标数量,用来计算完整率
*
*/
StatisticalDataDTO getCounts(String lineId, String tableName, String columnName,String resultName, String phasic, String dataType, String clDid, String process,String startTime, String endTime);
List<StatisticalDataDTO> getEachModule(CommonQueryParam param);
StatisticalDataDTO getDataCounts(String lineId, String tableName, String columnName,String resultName, String phasic, String dataType, String clDid, String process,String startTime, String endTime);
List<StatisticalDataDTO> getModuleData(CommonQueryParam param);
}

View File

@@ -1,9 +1,13 @@
package com.njcn.influx.service;
import com.njcn.influx.pojo.po.DataFluc;
import java.util.List;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:10
*/
public interface DataFlucService {
List<DataFluc> getNewDataFluc(String lineIndex, String startTime, String endTime);
}

View File

@@ -12,4 +12,5 @@ import java.util.List;
*/
public interface DataHarmPowerPService {
List<DataHarmPowerP> getHarmonicPowerP(String lineIndex, String startTime, String endTime);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.influx.service;
import com.njcn.influx.pojo.po.DataHarmRateV;
import com.njcn.influx.query.InfluxQueryWrapper;
import java.util.List;
/**
* @author hongawen
@@ -10,4 +11,5 @@ import com.njcn.influx.query.InfluxQueryWrapper;
*/
public interface DataHarmRateVService {
DataHarmRateV getMeanAllTimesData(InfluxQueryWrapper influxQueryWrapper);
List<DataHarmRateV> getNewDataHarmRateV(String lineIndex, String startTime, String endTime);
}

View File

@@ -0,0 +1,13 @@
package com.njcn.influx.service;
import com.njcn.influx.pojo.po.DataInHarmV;
import java.util.List;
/**
* @author guofeihu
* @version 1.0.0
* @date 2024年09月13日 11:01
*/
public interface DataInHarmVService {
List<DataInHarmV> getNewDataInHarmV(String lineIndex, String startTime, String endTime);
}

View File

@@ -0,0 +1,13 @@
package com.njcn.influx.service;
import com.njcn.influx.pojo.po.DataPlt;
import java.util.List;
/**
* @author guofeihu
* @version 1.0.0
* @date 2024年09月13日 11:01
*/
public interface DataPltService {
List<DataPlt> getNewDataPlt(String lineIndex, String startTime, String endTime);
}

View File

@@ -21,4 +21,5 @@ public interface IDataIService {
* @Date: 2024/2/27
*/
List<DataI> getWeekDataI(String lineIndex, String startTime, String endTime);
List<DataI> getNewDataI(String lineIndex, String startTime, String endTime);
}

View File

@@ -1,12 +1,11 @@
package com.njcn.influx.service;
import com.njcn.influx.pojo.po.DataV;
import java.util.List;
public interface IDataVService {
List<DataV> getDataV(String lineIndex, String startTime, String endTime);
List<DataV> getHarmonicDataV(String lineIndex, String startTime, String endTime);
List<DataV> getNewDataV(String lineIndex, String startTime, String endTime);
}

View File

@@ -1,5 +1,6 @@
package com.njcn.influx.service.impl;
import cn.hutool.core.date.DatePattern;
import com.njcn.influx.imapper.CommonMapper;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
@@ -9,6 +10,8 @@ import com.njcn.influx.service.CommonService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@@ -32,6 +35,7 @@ public class CommonServiceImpl implements CommonService {
.select(StatisticalDataDTO::getPhaseType)
.select(StatisticalDataDTO::getValueType)
.last(columnName)
.le(InfluxDBTableConstant.TIME, LocalDateTime.now().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)))
.eq(InfluxDBTableConstant.LINE_ID,lineId)
.eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
.eq(InfluxDBTableConstant.VALUE_TYPE,dataType)
@@ -80,6 +84,43 @@ public class CommonServiceImpl implements CommonService {
return resultList;
}
@Override
public List<StatisticalDataDTO> getNewDeviceRtDataByTime(List<CommonQueryParam> commonQueryParams) {
List<StatisticalDataDTO> resultList = new ArrayList<>();
for (CommonQueryParam commonQueryParam: commonQueryParams) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(commonQueryParam.getTableName(), StatisticalDataDTO.class);
influxQueryWrapper.select(StatisticalDataDTO::getLineId)
.select(StatisticalDataDTO::getPhaseType)
.select(StatisticalDataDTO::getValueType)
.select(commonQueryParam.getColumnName(), InfluxDBTableConstant.VALUE)
//查询条件开始和结束时间是必须的
.between(InfluxDBTableConstant.TIME, commonQueryParam.getStartTime(), commonQueryParam.getEndTime());
//此方法和getDeviceRtDataByTime方法逻辑一致,只是在以下条件判断中允许部分查询参数为空,也即可以不带入查询
if(commonQueryParam.getLineId() != null) {
influxQueryWrapper.eq(InfluxDBTableConstant.LINE_ID, commonQueryParam.getLineId());
}
if(commonQueryParam.getPhasic() != null) {
influxQueryWrapper.eq(InfluxDBTableConstant.PHASIC_TYPE, commonQueryParam.getPhasic());
}
if(commonQueryParam.getProcess() != null) {
influxQueryWrapper.eq(InfluxDBTableConstant.PROCESS, commonQueryParam.getProcess());
}
if(commonQueryParam.getDataType() != null) {
influxQueryWrapper.eq(InfluxDBTableConstant.VALUE_TYPE, commonQueryParam.getDataType());
}
if(commonQueryParam.getClDid() != null) {
influxQueryWrapper.eq(InfluxDBTableConstant.CL_DID, commonQueryParam.getClDid());
}
List<StatisticalDataDTO> deviceRtData = commonMapper.getDeviceRtDataByTime(influxQueryWrapper);
for(StatisticalDataDTO statisticalDataDTO : deviceRtData){
statisticalDataDTO.setFrequency(commonQueryParam.getFrequency());
}
resultList.addAll(deviceRtData);
}
return resultList;
}
@Override
public StatisticalDataDTO getLineHistoryData(String lineId, String tableName, String columnName, String startTime, String endTime, String clDid) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(tableName,StatisticalDataDTO.class);
@@ -104,11 +145,67 @@ public class CommonServiceImpl implements CommonService {
.select(StatisticalDataDTO::getClDid)
.last(columnName,InfluxDBTableConstant.VALUE)
.eq(InfluxDBTableConstant.LINE_ID,lineId)
.eq(InfluxDBTableConstant.PHASIC_TYPE, "T")
.eq(InfluxDBTableConstant.PROCESS,process)
.groupBy(InfluxDBTableConstant.CL_DID);
return commonMapper.getTopTemperature(influxQueryWrapper);
}
@Override
public StatisticalDataDTO getCounts(String lineId, String tableName, String columnName,String resultName, String phasic, String dataType, String clDid,String process,String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(tableName,StatisticalDataDTO.class);
influxQueryWrapper.select(StatisticalDataDTO::getLineId)
.count(columnName,resultName)
.eq(InfluxDBTableConstant.LINE_ID,lineId)
.eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
.eq(InfluxDBTableConstant.VALUE_TYPE,dataType)
.eq(InfluxDBTableConstant.CL_DID,clDid)
.eq(InfluxDBTableConstant.PROCESS,process)
.between(InfluxDBTableConstant.TIME, startTime, endTime);
return commonMapper.getLineRtData(influxQueryWrapper);
}
@Override
public List<StatisticalDataDTO> getEachModule(CommonQueryParam param) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(param.getTableName(),StatisticalDataDTO.class);
influxQueryWrapper.select(param.getColumnName(),param.getResultName())
.between(InfluxDBTableConstant.TIME, param.getStartTime(), param.getEndTime())
.eq(InfluxDBTableConstant.LINE_ID,param.getLineId())
.eq(InfluxDBTableConstant.PHASIC_TYPE, "T")
.eq(InfluxDBTableConstant.VALUE_TYPE,"AVG")
.eq(param.getDataType(),0)
.eq(InfluxDBTableConstant.PROCESS,param.getProcess())
.eq(InfluxDBTableConstant.CL_DID,param.getClDid());
return commonMapper.getDeviceRtDataByTime(influxQueryWrapper);
}
@Override
public StatisticalDataDTO getDataCounts(String lineId, String tableName, String columnName, String resultName, String phasic, String dataType, String clDid, String process, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(tableName,StatisticalDataDTO.class);
influxQueryWrapper.count(columnName,resultName)
.eq(InfluxDBTableConstant.LINE_ID,lineId)
.eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
.eq(InfluxDBTableConstant.VALUE_TYPE,dataType)
.eq(InfluxDBTableConstant.CL_DID,clDid)
.eq(InfluxDBTableConstant.PROCESS,process)
.between(InfluxDBTableConstant.TIME, startTime, endTime);
return commonMapper.getLineRtData(influxQueryWrapper);
}
@Override
public List<StatisticalDataDTO> getModuleData(CommonQueryParam param) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(param.getTableName(),StatisticalDataDTO.class);
influxQueryWrapper
.select(StatisticalDataDTO::getLineId)
.select(StatisticalDataDTO::getPhaseType)
.select("Apf_RmsI_ModOut","value")
.select("Apf_RmsI_Load","avgValue")
.select("Apf_Temp_Env","minValue")
.between(InfluxDBTableConstant.TIME, param.getStartTime(), param.getEndTime())
.eq(InfluxDBTableConstant.LINE_ID,param.getLineId())
.eq(InfluxDBTableConstant.VALUE_TYPE,"avg")
.eq(InfluxDBTableConstant.PROCESS,param.getProcess())
.eq(InfluxDBTableConstant.CL_DID,param.getClDid());
return commonMapper.getDeviceRtDataByTime(influxQueryWrapper);
}
}

View File

@@ -1,6 +1,12 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.imapper.DataFlucMapper;
import com.njcn.influx.pojo.po.DataFluc;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.service.DataFlucService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author hongawen
@@ -8,5 +14,17 @@ import org.springframework.stereotype.Service;
* @date 2023年05月05日 09:10
*/
@Service
public class DataFlucServiceImpl {
@RequiredArgsConstructor
public class DataFlucServiceImpl implements DataFlucService {
private final DataFlucMapper dataFlucMapper;
@Override
public List<DataFluc> getNewDataFluc(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFluc.class);
influxQueryWrapper.eq(DataFluc::getLineId, lineIndex)
.between(DataFluc::getTime, startTime, endTime);
return dataFlucMapper.getStatisticsByWraper(influxQueryWrapper);
}
}

View File

@@ -29,4 +29,5 @@ public class DataHarmPowerPServiceImpl implements DataHarmPowerPService {
result1 = dataHarmPowerPMapper.getStatisticsByWraper(influxQueryWrapper);
return result1;
}
}

View File

@@ -2,11 +2,14 @@ package com.njcn.influx.service.impl;
import com.njcn.influx.imapper.DataHarmRateVMapper;
import com.njcn.influx.pojo.po.DataHarmRateV;
import com.njcn.influx.pojo.po.DataV;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.service.DataHarmRateVService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author hongawen
* @version 1.0.0
@@ -23,4 +26,12 @@ public class DataHarmRateVServiceImpl implements DataHarmRateVService {
public DataHarmRateV getMeanAllTimesData(InfluxQueryWrapper influxQueryWrapper) {
return dataHarmRateVMapper.getMeanAllTimesData(influxQueryWrapper);
}
@Override
public List<DataHarmRateV> getNewDataHarmRateV(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateV.class);
influxQueryWrapper.eq(DataHarmRateV::getLineId, lineIndex)
.between(DataHarmRateV::getTime, startTime, endTime);;
return dataHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper);
}
}

View File

@@ -0,0 +1,29 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.imapper.DataInHarmVMapper;
import com.njcn.influx.pojo.po.DataInHarmV;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.service.DataInHarmVService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author guofeihu
* @version 1.0.0
* @date 2024年09月13日 11:01
*/
@Service
@RequiredArgsConstructor
public class DataInHarmVServiceImpl implements DataInHarmVService {
private final DataInHarmVMapper dataInHarmVMapper;
@Override
public List<DataInHarmV> getNewDataInHarmV(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInHarmV.class);
influxQueryWrapper.eq(DataInHarmV::getLineId, lineIndex)
.between(DataInHarmV::getTime, startTime, endTime);;
return dataInHarmVMapper.getStatisticsByWraper(influxQueryWrapper);
}
}

View File

@@ -0,0 +1,29 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.imapper.DataPltMapper;
import com.njcn.influx.pojo.po.*;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.service.DataPltService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author guofeihu
* @version 1.0.0
* @date 2024年09月13日 11:01
*/
@Service
@RequiredArgsConstructor
public class DataPltServiceImpl implements DataPltService {
private final DataPltMapper dataPltMapper;
@Override
public List<DataPlt> getNewDataPlt(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper.eq(DataPlt::getLineId, lineIndex)
.between(DataPlt::getTime, startTime, endTime);;
return dataPltMapper.getStatisticsByWraper(influxQueryWrapper);
}
}

View File

@@ -61,6 +61,14 @@ public class DataVServiceImpl implements IDataVService {
return result1;
}
@Override
public List<DataV> getNewDataV(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
influxQueryWrapper.eq(DataV::getLineId, lineIndex)
.between(DataV::getTime, startTime, endTime);;
return dataVMapper.getStatisticsByWraper(influxQueryWrapper);
}
/***
* 自定义需要查询的谐波次数

View File

@@ -37,4 +37,12 @@ public class IDataIServiceImpl implements IDataIService {
result1 = dataIMapper.getStatisticsByWraper(influxQueryWrapper);
return result1;
}
@Override
public List<DataI> getNewDataI(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
influxQueryWrapper.eq(DataI::getLineId, lineIndex)
.between(DataI::getTime, startTime, endTime);;
return dataIMapper.getStatisticsByWraper(influxQueryWrapper);
}
}