From a6fba7db34ed38cef74aa91330fd36097003b8d0 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Wed, 3 Jun 2026 10:12:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(influx):=20=E6=B7=BB=E5=8A=A0=E7=9B=B8?= =?UTF-8?q?=E9=82=BB=E6=97=B6=E9=97=B4=E7=82=B9=E5=B7=AE=E5=80=BC=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在InfluxDbSqlConstant中新增DIFFERENCE常量定义 - 在InfluxQueryWrapper中添加difference方法实现差值计算功能 - 实现相邻时间点数据差值查询的SQL片段构建逻辑 - 支持通过字段名进行差值计算并返回查询包装器实例 --- .../influx/constant/InfluxDbSqlConstant.java | 1 + .../njcn/influx/query/InfluxQueryWrapper.java | 24 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java index 93580df..e49ae33 100644 --- a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java +++ b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java @@ -110,6 +110,7 @@ public interface InfluxDbSqlConstant { String REGULAR_PREFIX="~/^"; String REGULAR_SUFFIX="$/"; String REGULAR_MIDDLE="|"; + String DIFFERENCE = "DIFFERENCE"; /** * “ tz('Asia/Shanghai')” diff --git a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java index d0211ec..409a567 100644 --- a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java +++ b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java @@ -13,7 +13,10 @@ import org.influxdb.annotation.Column; import org.influxdb.annotation.Measurement; import java.lang.reflect.Field; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; /** * @author hongawen @@ -595,6 +598,25 @@ public class InfluxQueryWrapper { return this; } + /*** + * 计算相邻时间点之间的差值 + * @author xy + * @param columnName 表字段名 + * @return InfluxQueryWrapper + * DIFFERENCE("columnName") + */ + public InfluxQueryWrapper difference(String columnName) { + String selectFragment = InfluxDbSqlConstant.DIFFERENCE + + InfluxDbSqlConstant.LBK + + InfluxDbSqlConstant.DQM + + columnName + + InfluxDbSqlConstant.DQM + + InfluxDbSqlConstant.RBK + + InfluxDbSqlConstant.AS_VALUE; + selectColumns.add(selectFragment); + return this; + } + /*** * 注:该函数还需调研,暂时不要用 * 统计指定字段邻近值的变化率