调整部分prepare项目关于influx查询的代码
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,279 @@
|
||||
package com.njcn.influx.deprecated;
|
||||
|
||||
/**
|
||||
* 类的介绍:使用influxDB查询时的公共参数
|
||||
*
|
||||
* @author xuyang
|
||||
* @version 1.0.0
|
||||
* @createTime 2022/6/24 15:02
|
||||
*/
|
||||
@Deprecated
|
||||
public interface InfluxDBPublicParam {
|
||||
|
||||
/**
|
||||
* 暂态事件汇总表
|
||||
*/
|
||||
String PQS_EVENT_DETAIL = " pqs_eventdetail";
|
||||
|
||||
/**
|
||||
* 电压波动闪变表
|
||||
*/
|
||||
String DATA_FLICKER = "data_flicker";
|
||||
|
||||
/**
|
||||
* 电压波动表
|
||||
*/
|
||||
String DATA_FLUC = "data_fluc";
|
||||
|
||||
/**
|
||||
* 谐波电流角度表
|
||||
*/
|
||||
String DATA_HARM_PHASIC_I = "data_harmphasic_i";
|
||||
|
||||
/**
|
||||
* 谐波电压角度表
|
||||
*/
|
||||
String DATA_HARM_PHASIC_V = "data_harmphasic_v";
|
||||
|
||||
/**
|
||||
* 有功功率表
|
||||
*/
|
||||
String DATA_HARM_POWER_P = "data_harmpower_p";
|
||||
|
||||
/**
|
||||
* 无功功率表
|
||||
*/
|
||||
String DATA_HARM_POWER_Q = "data_harmpower_q";
|
||||
|
||||
/**
|
||||
* 视在功率表
|
||||
*/
|
||||
String DATA_HARM_POWER_S = "data_harmpower_s";
|
||||
|
||||
/**
|
||||
* 谐波电流含有率表
|
||||
*/
|
||||
String DATA_HARM_RATE_I = "data_harmrate_i";
|
||||
|
||||
/**
|
||||
* 谐波电压含有率表
|
||||
*/
|
||||
String DATA_HARM_RATE_V = "data_harmrate_v";
|
||||
|
||||
/**
|
||||
* 电流表
|
||||
*/
|
||||
String DATA_I = "data_i";
|
||||
|
||||
/**
|
||||
* 电流间谐波幅值表
|
||||
*/
|
||||
String DATA_IN_HARM_I = "data_inharm_i";
|
||||
|
||||
/**
|
||||
* 电压间谐波幅值表
|
||||
*/
|
||||
String DATA_IN_HARM_V = "data_inharm_v";
|
||||
|
||||
/**
|
||||
* 长时闪变表
|
||||
*/
|
||||
String DATA_PLT = "data_plt";
|
||||
|
||||
/**
|
||||
* 电压表
|
||||
*/
|
||||
String DATA_V = "data_v";
|
||||
|
||||
/**
|
||||
* 日统计-电压波动闪变表
|
||||
*/
|
||||
String DAY_FLICKER = "day_flicker";
|
||||
|
||||
/**
|
||||
* 日统计-电压波动表
|
||||
*/
|
||||
String DAY_FLUC = "day_fluc";
|
||||
|
||||
/**
|
||||
* 日统计-谐波电流角度表
|
||||
*/
|
||||
String DAY_HARM_PHASIC_I = "day_harmphasic_i";
|
||||
|
||||
/**
|
||||
* 日统计-谐波电压角度表
|
||||
*/
|
||||
String DAY_HARM_PHASIC_V = "day_harmphasic_v";
|
||||
|
||||
/**
|
||||
* 日统计-有功功率表
|
||||
*/
|
||||
String DAY_HARM_POWER_P = "day_harmpower_p";
|
||||
|
||||
/**
|
||||
* 日统计-无功功率表
|
||||
*/
|
||||
String DAY_HARM_POWER_Q = "day_harmpower_q";
|
||||
|
||||
/**
|
||||
* 日统计-视在功率表
|
||||
*/
|
||||
String DAY_HARM_POWER_S = "day_harmpower_s";
|
||||
|
||||
/**
|
||||
* 日统计-谐波电流含有率表
|
||||
*/
|
||||
String DAY_HARM_RATE_I = "day_harmrate_i";
|
||||
|
||||
/**
|
||||
* 日统计-谐波电压含有率表
|
||||
*/
|
||||
String DAY_HARM_RATE_V = "day_harmrate_v";
|
||||
|
||||
/**
|
||||
* 日统计-电流表
|
||||
*/
|
||||
String DAY_I = "day_i";
|
||||
|
||||
/**
|
||||
* 日统计-电流间谐波幅值表
|
||||
*/
|
||||
String DAY_IN_HARM_I = "day_inharm_i";
|
||||
|
||||
/**
|
||||
* 日统计-电压间谐波幅值表
|
||||
*/
|
||||
String DAY_IN_HARM_V = "day_inharm_v";
|
||||
|
||||
/**
|
||||
* 日统计-长时闪变表
|
||||
*/
|
||||
String DAY_PLT = "day_plt";
|
||||
|
||||
/**
|
||||
* 日统计-电压表
|
||||
*/
|
||||
String DAY_V = "day_v";
|
||||
|
||||
/**
|
||||
* 时区
|
||||
*/
|
||||
String TIME_ZONE = " tz('Asia/Shanghai')";
|
||||
|
||||
String TZ = "Asia/Shanghai";
|
||||
|
||||
|
||||
/**
|
||||
* 日起始时间
|
||||
*/
|
||||
String START_TIME = " 00:00:00";
|
||||
|
||||
/**
|
||||
* 日结束时间
|
||||
*/
|
||||
String END_TIME = " 23:59:59";
|
||||
|
||||
/**
|
||||
* 时间
|
||||
*/
|
||||
String TIME = "time";
|
||||
|
||||
/**
|
||||
* 数据线路号
|
||||
*/
|
||||
String LINE_ID = "line_id";
|
||||
|
||||
/**
|
||||
* 装置ID
|
||||
*/
|
||||
String DEV_ID = "dev_id";
|
||||
|
||||
/**
|
||||
* 数据类型
|
||||
*/
|
||||
String PHASIC_TYPE = "phasic_type";
|
||||
|
||||
/**
|
||||
* 指标类型
|
||||
*/
|
||||
String VALUE_TYPE = "value_type";
|
||||
|
||||
/**
|
||||
* 数据质量标志
|
||||
*/
|
||||
String QUALITY_FLAG = "quality_flag";
|
||||
|
||||
/**
|
||||
* limit_rate
|
||||
*/
|
||||
String LIMIT_RATE = "limit_rate";
|
||||
|
||||
/**
|
||||
* limit_target
|
||||
*/
|
||||
String LIMIT_TARGET = "limit_target";
|
||||
|
||||
/**
|
||||
* pqs_comasses
|
||||
*/
|
||||
String PQS_COMASSES = "pqs_comasses";
|
||||
|
||||
/**
|
||||
* 终端运维日志表
|
||||
*/
|
||||
String PQS_TERMINAL_LOGS = "pqs_terminal_logs";
|
||||
|
||||
/**
|
||||
* 监测点状态信息表
|
||||
*/
|
||||
String PQS_COMMUNICATE = "pqs_communicate";
|
||||
|
||||
String PQS_ACTUAL_FLOW = "pqs_actual_flow";
|
||||
|
||||
String CLD_STATIS_FLOW = "cld_statis_flow";
|
||||
|
||||
/**
|
||||
* 终端在线率表
|
||||
*/
|
||||
String PQS_ONLINERATE = "pqs_onlinerate";
|
||||
|
||||
/**
|
||||
* 数据完整性表
|
||||
*/
|
||||
String PQS_INTEGRITY = "pqs_integrity";
|
||||
|
||||
/**
|
||||
* 终端在线率表公共字段
|
||||
*/
|
||||
String ONLINE_MIN = "online_min";
|
||||
|
||||
String OFFLINE_MIN = "offline_min";
|
||||
|
||||
String ONLINE_RATE = "online_rate";
|
||||
|
||||
/**
|
||||
* data表中InfluxDBPublicParam
|
||||
*/
|
||||
String VALUETYPE = "value_type";
|
||||
|
||||
|
||||
/**
|
||||
* 数据完整性表公共字段
|
||||
*/
|
||||
String DUE = "due";
|
||||
|
||||
String REAL = "real";
|
||||
|
||||
String DEV_INDEX = "dev_id";
|
||||
|
||||
/**
|
||||
* 稳态数据分析字段
|
||||
*/
|
||||
String PHASIC_TYPET = "T";
|
||||
|
||||
/**
|
||||
* 每天固定时间分钟
|
||||
*/
|
||||
Integer DAY_MINUTE = 1440;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.njcn.influx.deprecated;
|
||||
|
||||
import cn.hutool.core.text.StrPool;
|
||||
|
||||
/**
|
||||
* 拼接influx查询语句相关常量
|
||||
*
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2022年10月14日 14:02
|
||||
*/
|
||||
@Deprecated
|
||||
public interface InfluxDBSqlConstant {
|
||||
|
||||
/**
|
||||
* "SELECT "
|
||||
*/
|
||||
String SELECT = "SELECT" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* "* "
|
||||
*/
|
||||
String ALL = "*" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* "FROM "
|
||||
*/
|
||||
String FROM = "FROM" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* " WHERE "
|
||||
*/
|
||||
String WHERE = StrPool.C_SPACE + "WHERE" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* " AND "
|
||||
*/
|
||||
String AND = StrPool.C_SPACE + "AND" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* " OR "
|
||||
*/
|
||||
String OR = StrPool.C_SPACE + "OR" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* " GROUP BY "
|
||||
*/
|
||||
String GB = StrPool.C_SPACE + "GROUP BY" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* " ORDER BY "
|
||||
*/
|
||||
String OB = StrPool.C_SPACE + "ORDER BY" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* “DESC ”
|
||||
*/
|
||||
String DESC = "DESC" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* " as value "
|
||||
*/
|
||||
String AS_VALUE = StrPool.C_SPACE + "as value" + StrPool.C_SPACE;
|
||||
|
||||
String EQ = "=";
|
||||
String QM = "'";
|
||||
String LBK = "(";
|
||||
String RBK = ")";
|
||||
String GT = ">";
|
||||
String GE = ">=";
|
||||
String LT = "<";
|
||||
String LE = "<=";
|
||||
|
||||
/**
|
||||
* influxDB函数拼接
|
||||
*/
|
||||
String MAX = "MAX";
|
||||
String MIN = "MIN";
|
||||
String AVG = "MEAN";
|
||||
String NUM_95 = ",95";
|
||||
String CP95 = "PERCENTILE";
|
||||
|
||||
/**
|
||||
* “ tz('Asia/Shanghai')”
|
||||
*/
|
||||
String TZ = StrPool.C_SPACE + "tz('Asia/Shanghai')";
|
||||
String TIME_AREA = "Asia/Shanghai";
|
||||
|
||||
|
||||
/**
|
||||
* 日起始时间
|
||||
*/
|
||||
String START_TIME = " 00:00:00";
|
||||
|
||||
/**
|
||||
* 日结束时间
|
||||
*/
|
||||
String END_TIME = " 23:59:59";
|
||||
|
||||
/**
|
||||
* 时间
|
||||
*/
|
||||
String TIME = "time" + StrPool.C_SPACE;
|
||||
|
||||
/**
|
||||
* 每天固定时间分钟
|
||||
*/
|
||||
Integer DAY_MINUTE = 1440;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.njcn.influx.deprecated;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
*
|
||||
* @author xuyang
|
||||
* @version 1.0.0
|
||||
* @createTime 2021/12/10 10:48
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "spring.influx")
|
||||
@Deprecated
|
||||
public class InfluxDbConfig {
|
||||
|
||||
private String url;
|
||||
|
||||
private String user;
|
||||
|
||||
private String password;
|
||||
|
||||
private String database;
|
||||
|
||||
@Bean
|
||||
public InfluxDbUtils influxDbUtils() {
|
||||
return new InfluxDbUtils(user, password, url, database, "autogen");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,378 @@
|
||||
package com.njcn.influx.deprecated;
|
||||
|
||||
|
||||
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
|
||||
@Deprecated
|
||||
public class InfluxDbUtils {
|
||||
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 InfluxDbUtils(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<String, String> tags, Map<String, Object> 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<String> 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<String> 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<String, String> tags,
|
||||
Map<String, Object> fields) {
|
||||
Point point = Point.measurement(measurement).time(time, timeUnit).tag(tags).fields(fields).build();
|
||||
return point;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//单条查询语句封装
|
||||
/**
|
||||
* 查询结果封装到map
|
||||
* @param commond 单条sql语句
|
||||
* @return 查询结果
|
||||
*/
|
||||
@Deprecated
|
||||
public List<Map<String, Object>> getResult(String commond){
|
||||
List<Map<String, Object>> retList = new ArrayList<>();
|
||||
QueryResult queryResult = influxDB.query(new Query(commond,dbName));
|
||||
List<QueryResult.Result> results = queryResult.getResults();
|
||||
if (results==null||results.isEmpty()){
|
||||
return retList;
|
||||
}
|
||||
QueryResult.Result result = results.get(0);
|
||||
List<QueryResult.Series> seriess = result.getSeries();
|
||||
if (seriess==null||seriess.isEmpty()){
|
||||
return retList;
|
||||
}
|
||||
QueryResult.Series series = seriess.get(0);
|
||||
List<String> columns = series.getColumns();
|
||||
List<List<Object>> values = series.getValues();
|
||||
for (List<Object> columnValue :values){
|
||||
Map<String, Object> map = new HashMap<>(1);
|
||||
for (int i=0;i<columnValue.size();i++){
|
||||
if(columns.get(i).equals("time")){
|
||||
long aa = Instant.parse(columnValue.get(i).toString()).minusMillis(TimeUnit.HOURS.toMillis(8)).getEpochSecond();
|
||||
map.put(columns.get(i), aa);
|
||||
}else {
|
||||
map.put(columns.get(i),columnValue.get(i));
|
||||
}
|
||||
}
|
||||
retList.add(map);
|
||||
}
|
||||
return retList;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public List<Map<String, Object>> getResult(String commond, String type){
|
||||
|
||||
List<Map<String, Object>> retList = new ArrayList<>();
|
||||
QueryResult queryResult = influxDB.query(new Query(commond,dbName));
|
||||
List<QueryResult.Result> results = queryResult.getResults();
|
||||
if (results==null||results.isEmpty()){
|
||||
return retList;
|
||||
}
|
||||
QueryResult.Result result = results.get(0);
|
||||
List<QueryResult.Series> seriess = result.getSeries();
|
||||
if (seriess==null||seriess.isEmpty()){
|
||||
return retList;
|
||||
}
|
||||
QueryResult.Series series = seriess.get(0);
|
||||
List<String> columns = series.getColumns();
|
||||
List<List<Object>> values = series.getValues();
|
||||
for (List<Object> columnValue :values){
|
||||
Map<String, Object> map = new HashMap<>(1);
|
||||
for (int i=0;i<columnValue.size();i++){
|
||||
if(columns.get(i).equals("time")){
|
||||
Instant aa = Instant.parse(columnValue.get(i).toString()).minusMillis(TimeUnit.HOURS.toMillis(8));
|
||||
LocalDateTime localDateTime =LocalDateTime.ofInstant(aa,ZoneId.systemDefault());
|
||||
String time = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
map.put(columns.get(i), time);
|
||||
}else {
|
||||
map.put(columns.get(i),columnValue.get(i));
|
||||
}
|
||||
}
|
||||
retList.add(map);
|
||||
}
|
||||
return retList;
|
||||
}
|
||||
|
||||
|
||||
public List<Map<String, Object>> getMapResult(String commond){
|
||||
|
||||
List<Map<String, Object>> retList = new ArrayList<>();
|
||||
QueryResult queryResult = influxDB.query(new Query(commond,dbName));
|
||||
List<QueryResult.Result> results = queryResult.getResults();
|
||||
if (results==null||results.isEmpty()){
|
||||
return retList;
|
||||
}
|
||||
QueryResult.Result result = results.get(0);
|
||||
List<QueryResult.Series> seriess = result.getSeries();
|
||||
if (seriess==null||seriess.isEmpty()){
|
||||
return retList;
|
||||
}
|
||||
QueryResult.Series series = seriess.get(0);
|
||||
List<String> columns = series.getColumns();
|
||||
List<List<Object>> values = series.getValues();
|
||||
for (List<Object> columnValue :values){
|
||||
Map<String, Object> map = new HashMap<>(1);
|
||||
for (int i=0;i<columnValue.size();i++){
|
||||
if(columns.get(i).equals("time")){
|
||||
Instant instant = Instant.from(RFC3339_FORMATTER.parse(String.valueOf(columnValue.get(i))));
|
||||
LocalDateTime localDateTime =LocalDateTime.ofInstant(instant,ZoneId.systemDefault());
|
||||
String time = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
map.put(columns.get(i), time);
|
||||
}else {
|
||||
map.put(columns.get(i),columnValue.get(i));
|
||||
}
|
||||
}
|
||||
retList.add(map);
|
||||
}
|
||||
return retList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -124,7 +124,7 @@ public interface InfluxDBTableConstant {
|
||||
*/
|
||||
String QUALITY_FLAG = "quality_flag";
|
||||
|
||||
String CP95 = "CP95";
|
||||
|
||||
|
||||
/**
|
||||
* 相别
|
||||
@@ -166,4 +166,13 @@ public interface InfluxDBTableConstant {
|
||||
*/
|
||||
String UUID = "uuid";
|
||||
|
||||
/**
|
||||
* 报表业务计算方式
|
||||
*/
|
||||
String MAX = "MAX";
|
||||
String MIN = "MIN";
|
||||
String AVG = "AVG";
|
||||
String CP95 = "CP95";
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -40,4 +40,18 @@ public class DataFlicker {
|
||||
@Column(name = "quality_flag")
|
||||
private String qualityFlag;
|
||||
|
||||
|
||||
//自定义字段
|
||||
@Column(name = "value_type")
|
||||
private String valueType;
|
||||
|
||||
@Column(name = "count")
|
||||
private Integer count;
|
||||
|
||||
@Column(name = "pst_count")
|
||||
private Integer pstCount;
|
||||
|
||||
@Column(name = "plt_count")
|
||||
private Integer pltCount;
|
||||
|
||||
}
|
||||
|
||||
@@ -37,5 +37,7 @@ public class DataFluc {
|
||||
@Column(name = "quality_flag")
|
||||
private String qualityFlag;
|
||||
|
||||
@Column(name = "value_type")
|
||||
private String valueType;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 9:13
|
||||
*/
|
||||
@Data
|
||||
@Measurement(name = "data_inharmrate_i")
|
||||
public class DataInHarmRateI {
|
||||
|
||||
@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 = "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;
|
||||
|
||||
}
|
||||
@@ -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 9:13
|
||||
*/
|
||||
@Data
|
||||
@Measurement(name = "data_inharmrate_v")
|
||||
public class DataInHarmRateV {
|
||||
|
||||
@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;
|
||||
|
||||
}
|
||||
@@ -42,4 +42,8 @@ public class DataPlt {
|
||||
@Column(name = "flicker_all_time")
|
||||
private Integer flickerAllTime;
|
||||
|
||||
//自定义字段
|
||||
@Column(name = "mean")
|
||||
private Double mean;
|
||||
|
||||
}
|
||||
|
||||
@@ -218,7 +218,16 @@ public class DataV{
|
||||
@Column(name = "value_type")
|
||||
private String valueType;
|
||||
|
||||
|
||||
//自定义字段-总计算次数
|
||||
//@Column(name = "all_time")
|
||||
//private Integer allTime;
|
||||
@Column(name = "all_time")
|
||||
private Integer allTime;
|
||||
|
||||
//自定义字段
|
||||
@Column(name = "mean")
|
||||
private Double mean;
|
||||
|
||||
//自定义字段
|
||||
@Column(name = "count")
|
||||
private Integer count;
|
||||
}
|
||||
|
||||
@@ -32,4 +32,9 @@ public class PqsCommunicate {
|
||||
@Column(name = "type")
|
||||
private Integer type;
|
||||
|
||||
//自定义
|
||||
private int duration;
|
||||
|
||||
private String desc;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.njcn.influx.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.csdevice.api.CsLineFeignClient;
|
||||
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
|
||||
@@ -9,7 +8,6 @@ import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
||||
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.influx.service.CommonService;
|
||||
import com.njcn.influx.utils.ReflectUitl;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
@@ -17,7 +15,6 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -33,8 +30,8 @@ import java.util.Objects;
|
||||
public class CommonServiceImpl implements CommonService {
|
||||
|
||||
private final CommonMapper commonMapper;
|
||||
private final
|
||||
DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
private final CsLineFeignClient csLineFeignClient;
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user