7 Commits

Author SHA1 Message Date
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
8 changed files with 306 additions and 8 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

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

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

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

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

@@ -77,4 +77,18 @@ 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);
/**
* 获取治理各个模块在规定时间内是否存在数据
* @return
*/
StatisticalDataDTO getModuleCounts(String lineId, String tableName, String columnName,String resultName,String startTime, String endTime, String clDid);
List<StatisticalDataDTO> getEachModule(CommonQueryParam param);
}

View File

@@ -147,6 +147,41 @@ public class CommonServiceImpl implements CommonService {
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 StatisticalDataDTO getModuleCounts(String lineId, String tableName, String columnName, String resultName, String startTime, String endTime, String clDid) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(tableName,StatisticalDataDTO.class);
influxQueryWrapper.count(columnName,resultName)
.eq(InfluxDBTableConstant.LINE_ID,lineId)
.eq(InfluxDBTableConstant.CL_DID,clDid)
.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, "M")
.eq(InfluxDBTableConstant.VALUE_TYPE,"avg")
.eq(param.getDataType(),0)
.eq(InfluxDBTableConstant.PROCESS,param.getProcess())
.eq(InfluxDBTableConstant.CL_DID,param.getClDid());
return commonMapper.getDeviceRtDataByTime(influxQueryWrapper);
}
}