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); // 处理仪表板字段过滤