From 4bcb8adb97b521f662884b0e6338903636f57ac7 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 18 Apr 2024 15:39:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=8D=95=E4=B8=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E7=9A=84=E6=95=B0=E6=8D=AE=E9=9B=86=E3=80=81?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8=E4=BD=BF=E7=94=A8=E5=AF=B9=E5=BA=94=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E8=AF=AD=E6=B3=95=E5=92=8C=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/dataease/engine/trans/CustomWhere2Str.java | 3 +++ .../main/java/io/dataease/engine/trans/Dimension2SQLObj.java | 3 +++ .../src/main/java/io/dataease/engine/trans/ExtWhere2Str.java | 3 +++ .../src/main/java/io/dataease/engine/trans/Field2SQLObj.java | 5 ++++- .../src/main/java/io/dataease/engine/trans/Quota2SQLObj.java | 3 +++ .../main/java/io/dataease/engine/trans/WhereTree2Str.java | 3 +++ 6 files changed, 19 insertions(+), 1 deletion(-) diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/CustomWhere2Str.java b/core/core-backend/src/main/java/io/dataease/engine/trans/CustomWhere2Str.java index 52cf40e741..c333932be8 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/CustomWhere2Str.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/CustomWhere2Str.java @@ -45,6 +45,9 @@ public class CustomWhere2Str { // 给计算字段处加一个占位符,后续SQL方言转换后再替换 originName = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, field.getId()); fieldsDialect.put(originName, calcFieldExp); + if (isCross) { + originName = calcFieldExp; + } } else if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 1) { originName = String.format(SQLConstants.FIELD_NAME, tableObj.getTableAlias(), field.getDataeaseName()); } else { diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/Dimension2SQLObj.java b/core/core-backend/src/main/java/io/dataease/engine/trans/Dimension2SQLObj.java index d6b279ea27..352c8d7065 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/Dimension2SQLObj.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/Dimension2SQLObj.java @@ -39,6 +39,9 @@ public class Dimension2SQLObj { // 给计算字段处加一个占位符,后续SQL方言转换后再替换 originField = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, x.getId()); fieldsDialect.put(originField, calcFieldExp); + if (isCross) { + originField = calcFieldExp; + } } else if (ObjectUtils.isNotEmpty(x.getExtField()) && Objects.equals(x.getExtField(), ExtFieldConstant.EXT_COPY)) { originField = String.format(SQLConstants.FIELD_NAME, tableObj.getTableAlias(), x.getDataeaseName()); } else { diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java b/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java index 923fb99187..0824eca977 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java @@ -53,6 +53,9 @@ public class ExtWhere2Str { // 给计算字段处加一个占位符,后续SQL方言转换后再替换 originName = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, field.getId()); fieldsDialect.put(originName, calcFieldExp); + if (isCross) { + originName = calcFieldExp; + } } else if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 1) { originName = String.format(SQLConstants.FIELD_NAME, tableObj.getTableAlias(), field.getDataeaseName()); } else { diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/Field2SQLObj.java b/core/core-backend/src/main/java/io/dataease/engine/trans/Field2SQLObj.java index 6b8378272e..efa8d1b57e 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/Field2SQLObj.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/Field2SQLObj.java @@ -20,7 +20,7 @@ import java.util.*; */ public class Field2SQLObj { - public static void field2sqlObj(SQLMeta meta, List fields,List originFields, boolean isCross, Map dsMap) { + public static void field2sqlObj(SQLMeta meta, List fields, List originFields, boolean isCross, Map dsMap) { SQLObj tableObj = meta.getTable(); if (ObjectUtils.isEmpty(tableObj)) { return; @@ -37,6 +37,9 @@ public class Field2SQLObj { // 给计算字段处加一个占位符,后续SQL方言转换后再替换 originField = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, x.getId()); fieldsDialect.put(originField, calcFieldExp); + if (isCross) { + originField = calcFieldExp; + } // 此处是数据集预览,获取数据库原始字段枚举值等操作使用,如果遇到聚合函数则将originField设置为null for (String func : FunctionConstant.AGG_FUNC) { if (Utils.matchFunction(func, calcFieldExp)) { diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/Quota2SQLObj.java b/core/core-backend/src/main/java/io/dataease/engine/trans/Quota2SQLObj.java index 2da6da80d8..10a4c18516 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/Quota2SQLObj.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/Quota2SQLObj.java @@ -40,6 +40,9 @@ public class Quota2SQLObj { // 给计算字段处加一个占位符,后续SQL方言转换后再替换 originField = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, y.getId()); fieldsDialect.put(originField, calcFieldExp); + if (isCross) { + originField = calcFieldExp; + } } else if (ObjectUtils.isNotEmpty(y.getExtField()) && Objects.equals(y.getExtField(), ExtFieldConstant.EXT_COPY)) { originField = String.format(SQLConstants.FIELD_NAME, tableObj.getTableAlias(), y.getDataeaseName()); } else { diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/WhereTree2Str.java b/core/core-backend/src/main/java/io/dataease/engine/trans/WhereTree2Str.java index 32aa0a51d6..b9149c02ba 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/WhereTree2Str.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/WhereTree2Str.java @@ -88,6 +88,9 @@ public class WhereTree2Str { // 给计算字段处加一个占位符,后续SQL方言转换后再替换 originName = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, field.getId()); fieldsDialect.put(originName, calcFieldExp); + if (isCross) { + originName = calcFieldExp; + } } else if (ObjectUtils.isNotEmpty(field.getExtField()) && Objects.equals(field.getExtField(), ExtFieldConstant.EXT_COPY)) { originName = String.format(SQLConstants.FIELD_NAME, tableObj.getTableAlias(), field.getDataeaseName()); } else {