调整tags * values数据

This commit is contained in:
2024-02-28 19:46:17 +08:00
parent 34c97425da
commit d00316c1fd

View File

@@ -15,6 +15,7 @@ import org.influxdb.dto.Point;
import org.influxdb.dto.Query; import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult; import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBMapper; import org.influxdb.impl.InfluxDBMapper;
import org.springframework.beans.BeanUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.time.Instant; import java.time.Instant;
@@ -40,7 +41,7 @@ public class InfluxExecutor {
public <E> List<E> select(String sql, Class domainClass) { public <E> List<E> select(String sql, Class domainClass) {
List<E> results; List<E> results;
//如果domainClass没有注解Measurement则使用influxdb去查询 //如果domainClass没有注解Measurement则使用influxdb去查询
if (!domainClass.isAnnotationPresent(Measurement.class)) { if (domainClass.isAnnotationPresent(Measurement.class)) {
QueryResult queryResult = influxDb.query(new Query(sql, database)); QueryResult queryResult = influxDb.query(new Query(sql, database));
results = new ArrayList<>(); results = new ArrayList<>();
try { try {
@@ -64,6 +65,7 @@ public class InfluxExecutor {
for (QueryResult.Series series : seriesList) { for (QueryResult.Series series : seriesList) {
obj = domainClass.newInstance(); obj = domainClass.newInstance();
Map<String, String> tags = series.getTags(); Map<String, String> tags = series.getTags();
//实际的数据量= 求和tag[i] * value[i]
if (CollectionUtil.isNotEmpty(tags)) { if (CollectionUtil.isNotEmpty(tags)) {
//处理tag分组数据 //处理tag分组数据
for (String columnName : tags.keySet()) { for (String columnName : tags.keySet()) {
@@ -100,7 +102,9 @@ public class InfluxExecutor {
List<List<Object>> values = series.getValues(); List<List<Object>> values = series.getValues();
for (List<Object> columnValue : values) { for (List<Object> columnValue : values) {
Object object = domainClass.newInstance(); Object object = domainClass.newInstance();
if (ObjectUtil.isNotNull(obj)) {
BeanUtils.copyProperties(obj, object);
}
for (int i = 0; i < columnValue.size(); i++) { for (int i = 0; i < columnValue.size(); i++) {
String columnName = columns.get(i); String columnName = columns.get(i);
//属性名有下划线的替换掉 //属性名有下划线的替换掉
@@ -133,7 +137,6 @@ public class InfluxExecutor {
} }
} }
} }
if (Objects.nonNull(object)) {
results.add((E) object); results.add((E) object);
} }
} }
@@ -141,7 +144,6 @@ public class InfluxExecutor {
} }
} }
} }
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("influx反射实例化实体异常" + e); throw new RuntimeException("influx反射实例化实体异常" + e);
} }