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