From e4d1de8dd06e50d26af8db0573d7438590462ade Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Mon, 13 Nov 2023 10:14:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=AC=E5=85=B1=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=92=8C=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../influx/constant/InfluxDbSqlConstant.java | 24 +++++++++++++++++++ .../njcn/influx/query/InfluxQueryWrapper.java | 20 ++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java index 8a18ffb..b01824e 100644 --- a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java +++ b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java @@ -131,5 +131,29 @@ public interface InfluxDbSqlConstant { */ String TIME = "time" + StrPool.C_SPACE; + /** + * 谐波电压含有率前缀 + */ + String V = "v_"; + + /** + * 谐波电流幅值前缀 + */ + String I = "i_"; + + /** + * 有功功率前缀 + */ + String P = "p_"; + + /** + * 无功功率前缀 + */ + String Q = "q_"; + + /** + * 视在功率前缀 + */ + String S = "s_"; } diff --git a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java index 11820e9..842e9a7 100644 --- a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java +++ b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java @@ -924,6 +924,26 @@ public class InfluxQueryWrapper { return this; } + /*** + * 批量返回field key较大的百分之N的值。 + * @author xuyang + * @param prefix 表字段名 + * @param suffix 映射名称 + * @return InfluxQueryWrapper + * 输出 percentile(prefix+diffContent+suffix) as prefix+diffContent+suffix + */ + public InfluxQueryWrapper percentileSamePrefixAndSuffix(String prefix, String suffix, List diffContent, int percent) { + if (CollectionUtil.isEmpty(diffContent)) { + throw new RuntimeException("查询数值集合为空,请校验!"); + } + for (Object obj : diffContent) { + String fieldName = prefix + obj + suffix; + this.percentile(fieldName, percent); + } + return this; + } + + /**************************自定义查询条件,比如between、>、<、=、>=、<=等等**************************/ /***