From 08f31371a6b40473fde9fc883368e12480631ed7 Mon Sep 17 00:00:00 2001 From: ulleo Date: Thu, 21 Dec 2023 15:59:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8C=BA=E9=97=B4=E6=9D=A1=E5=BD=A2?= =?UTF-8?q?=E5=9B=BE=E5=9C=A8doris=E6=95=B0=E6=8D=AE=E6=BA=90=E4=B8=8B?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/doris/DorisQueryProvider.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index 1c313a574c..d60b2b339e 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -781,11 +781,38 @@ public class DorisQueryProvider extends QueryProvider { List yFields = new ArrayList<>(); // 要把两个时间字段放进y里面 List yWheres = new ArrayList<>(); + List yOrders = new ArrayList<>(); if (CollectionUtils.isNotEmpty(xAxis)) { for (int i = 0; i < xAxis.size(); i++) { ChartViewFieldDTO x = xAxis.get(i); String originField; + + if (StringUtils.equalsIgnoreCase(x.getGroupType(), "q")) { + if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 2) { + // 解析origin name中有关联的字段生成sql表达式 + originField = calcFieldRegex(x.getOriginName(), tableObj); + } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { + originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); + } else { + originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); + } + String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); + // 处理纵轴字段 + yFields.add(getYFields(x, originField, fieldAlias)); + // 处理纵轴过滤 + yWheres.add(getYWheres(x, originField, fieldAlias)); + // 处理纵轴排序 + if (StringUtils.isNotEmpty(x.getSort()) && Utils.joinSort(x.getSort())) { + yOrders.add(SQLObj.builder() + .orderField(originField) + .orderAlias(fieldAlias) + .orderDirection(x.getSort()) + .build()); + } + continue; + } + if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 2) { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(x.getOriginName(), tableObj); @@ -824,8 +851,6 @@ public class DorisQueryProvider extends QueryProvider { } } - List yOrders = new ArrayList<>(); - // 处理视图中字段过滤 String customWheres = transChartFilterTrees(tableObj, fieldCustomFilter); // 处理仪表板字段过滤