From b7ae52e1e2bd1e8ba11e0ea9007bba7ee166929b Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期一, 19 五月 2025 10:47:30 +0800
Subject: [PATCH] 查询最大值(带时间)

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java
index b6babc7..1e80c4a 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java
@@ -335,6 +335,30 @@
     }
 
     @Override
+    public Map<String, Object> queryPointMaxTimeValue(InfluxPointValuePOJO point, Date startTime, Date endTime) {
+        Map<String, Object> result = new HashMap<>(2);
+        List<Map<String, Object>> valueList = this.queryPointValues(point, startTime, endTime);
+        if (CollectionUtils.isEmpty(valueList)) {
+            return null;
+        }
+
+        double valueL = new BigDecimal(valueList.get(0).get(VALUE).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+        Date timeM =DateUtils.parse(valueList.get(0).get(TIME).toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+        double valueM = valueL;
+        for (Map<String, Object> item : valueList) {
+            double valueI = new BigDecimal(item.get(VALUE).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+            if (valueI >= valueL ) {
+                valueM = valueI;
+                timeM = DateUtils.parse(item.get(TIME).toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+            }
+            valueL = valueI;
+        }
+        result.put(TIME, timeM);
+        result.put(VALUE, valueM);
+        return result;
+    }
+
+    @Override
     public Object queryPointMaxValueRange(InfluxPointValuePOJO point, Date startTime, Date endTime) {
         if (influxQLQueryApi == null) {
             influxQLQueryApi = influxDBInstance.getClient().getInfluxQLQueryApi();

--
Gitblit v1.9.3