10 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
19 changed files with 174 additions and 3 deletions

View File

@@ -14,6 +14,7 @@ public class CommonQueryParam {
private String lineId;
private String tableName;
private String columnName;
private String resultName;
private String phasic;
private String startTime;
private String endTime;

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

@@ -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

@@ -199,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

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

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

@@ -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

@@ -84,5 +84,9 @@ public interface CommonService {
*/
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,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)
@@ -141,7 +145,7 @@ public class CommonServiceImpl implements CommonService {
.select(StatisticalDataDTO::getClDid)
.last(columnName,InfluxDBTableConstant.VALUE)
.eq(InfluxDBTableConstant.LINE_ID,lineId)
.eq(InfluxDBTableConstant.PHASIC_TYPE, "M")
.eq(InfluxDBTableConstant.PHASIC_TYPE, "T")
.eq(InfluxDBTableConstant.PROCESS,process)
.groupBy(InfluxDBTableConstant.CL_DID);
return commonMapper.getTopTemperature(influxQueryWrapper);
@@ -157,9 +161,51 @@ public class CommonServiceImpl implements CommonService {
.eq(InfluxDBTableConstant.VALUE_TYPE,dataType)
.eq(InfluxDBTableConstant.CL_DID,clDid)
.eq(InfluxDBTableConstant.PROCESS,process)
.between(InfluxDBTableConstant.TIME, startTime, endTime);;
.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);
}
}