From 8502fb2a1648d1453f96b4288d68c16dfcf5bae5 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 12 五月 2025 16:19:49 +0800 Subject: [PATCH] feat(data): 新增mqtt电表数据解析和写入,新增opcua电表和温湿度计数据解析和写入 --- src/main/java/com/zhitan/influxdb/InfluxdbRepository.java | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zhitan/influxdb/InfluxdbRepository.java b/src/main/java/com/zhitan/influxdb/InfluxdbRepository.java index b55ef44..8835285 100644 --- a/src/main/java/com/zhitan/influxdb/InfluxdbRepository.java +++ b/src/main/java/com/zhitan/influxdb/InfluxdbRepository.java @@ -5,6 +5,8 @@ import com.influxdb.client.InfluxDBClientFactory; import com.influxdb.client.WriteApiBlocking; import com.influxdb.client.write.Point; +import com.influxdb.query.FluxRecord; +import com.influxdb.query.FluxTable; import com.zhitan.config.influxdb.InfluxdbConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -73,4 +75,32 @@ WriteApiBlocking writeApi = client.getWriteApiBlocking(); writeApi.writePoints(points); } + + public double getLastPoint(String measurement, String tag, String s) { + if (client == null || !config.isEnable()) { + log.warn("InfluxDB client is not initialized or disabled."); + return 0; + } + + String query = String.format("from(bucket: \"%s\") " + + "|> range(start: -1h) " + + "|> filter(fn: (r) => r._measurement == \"%s\" and r._field == \"value\") " + + "|> filter(fn: (r) => r.tag == \"%s\") " + + "|> last()", config.getBucket(), measurement, s); + + List<FluxTable> tables = client.getQueryApi().query(query, config.getOrg()); + + if (tables != null && !tables.isEmpty()) { + List<FluxRecord> records = tables.get(0).getRecords(); + if (records != null && !records.isEmpty()) { + FluxRecord record = records.get(0); + double value = (double) record.getValue(); + + return value; + } + } + + log.warn("No data found for measurement: {}, tag: {}, field: {}", measurement, tag, s); + return 0; + } } -- Gitblit v1.9.3