|
@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.Assert;
|
|
|
import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
|
|
|
import vip.xiaonuo.coldchain.core.util.DateFormatter;
|
|
|
+import vip.xiaonuo.coldchain.modular.app.param.AggregationWindow;
|
|
|
|
|
|
import java.time.Instant;
|
|
|
import java.time.LocalDateTime;
|
|
@@ -98,7 +99,7 @@ public class JfcloudSensorDataService extends JfcloudFluxDataService<SensorData>
|
|
|
// .collect(Collectors.toList());
|
|
|
// }
|
|
|
|
|
|
- public List<SensorData> queryDataByDeviceIdAndRoads(String deviceId, Integer roads, String startTimeStr, String endTimeStr, String field) {
|
|
|
+ public List<SensorData> queryDataByDeviceIdAndRoads(String deviceId, Integer roads, String startTimeStr, String endTimeStr, String field, AggregationWindow aggregationWindow) {
|
|
|
Assert.notNull(deviceId, "deviceId cannot be null");
|
|
|
Assert.notNull(roads, "roads cannot be null");
|
|
|
Assert.notNull(startTimeStr, "startTime cannot be null");
|
|
@@ -119,14 +120,14 @@ public class JfcloudSensorDataService extends JfcloudFluxDataService<SensorData>
|
|
|
// 转换为ISO8601格式
|
|
|
String startTimeFormatted = convertToISO8601(startTimeStr);
|
|
|
String endTimeFormatted = convertToISO8601(endTimeStr);
|
|
|
- String aggregationWindow = FluxAggregationUtils.determineAggregationWindow(startTimeFormatted, endTimeFormatted);
|
|
|
+ String aggregationWindowA =aggregationWindow.getCode(); //FluxAggregationUtils.determineAggregationWindow(startTimeFormatted, endTimeFormatted);
|
|
|
String measurement = "sensor_data"; // 数据表名称
|
|
|
Map<String, String> filters = Map.of(
|
|
|
"device_id", deviceId,
|
|
|
"roads", roads.toString()
|
|
|
);
|
|
|
// 构建查询语句
|
|
|
- String query = FluxQueryBuilder.buildRangeQuery(getBucketName(), startTimeFormatted, endTimeFormatted, measurement, field, filters, aggregationWindow);
|
|
|
+ String query = FluxQueryBuilder.buildRangeQuery(getBucketName(), startTimeFormatted, endTimeFormatted, measurement, field, filters, aggregationWindowA);
|
|
|
QueryApi queryApi = jfcloudInfluxDBService.getInfluxDBClient().getQueryApi();
|
|
|
List<FluxTable> results = queryApi.query(query);
|
|
|
return results.stream()
|