diff --git a/core/core-backend/src/main/java/io/dataease/engine/utils/Utils.java b/core/core-backend/src/main/java/io/dataease/engine/utils/Utils.java index e8f62db037..6faac760e0 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/utils/Utils.java +++ b/core/core-backend/src/main/java/io/dataease/engine/utils/Utils.java @@ -38,7 +38,7 @@ public class Utils { Map.Entry next = dsMap.entrySet().iterator().next(); datasourceType = getDs(pluginManage, next.getValue().getType()); } - return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap, true); + return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap, true, chartField.getOriginName()); } catch (Exception e) { DEException.throwException(Translator.get("i18n_field_circular_ref")); } @@ -53,20 +53,20 @@ public class Utils { Map.Entry next = dsTypeMap.entrySet().iterator().next(); datasourceType = getDs(pluginManage, next.getValue()); } - return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, null, true); + return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, null, true, chartField.getOriginName()); } catch (Exception e) { DEException.throwException(Translator.get("i18n_field_circular_ref")); } return null; } - public static String buildCalcField(DatasetTableFieldDTO chartField, SQLObj tableObj, List originFields, int i, boolean isCross, DsTypeDTO datasourceType, Map paramMap, boolean isFirst) throws Exception { + public static String buildCalcField(DatasetTableFieldDTO chartField, SQLObj tableObj, List originFields, int i, boolean isCross, DsTypeDTO datasourceType, Map paramMap, boolean isFirst, String fieldExpression) throws Exception { try { i++; if (i > 100) { DEException.throwException(Translator.get("i18n_field_circular_error")); } - String originField = getCalcField(chartField, originFields, isFirst); + String originField = getCalcField(chartField, originFields, isFirst, fieldExpression); originField = originField.replaceAll("[\\t\\n\\r]]", ""); // 正则提取[xxx] String regex = "\\[(.*?)]"; @@ -99,8 +99,7 @@ public class Utils { } } else { originField = originField.replaceAll("\\[" + ele.getId() + "]", "(" + ele.getOriginName() + ")"); - chartField.setOriginName(originField); - originField = buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap, false); + originField = buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap, false, originField); } } } @@ -111,7 +110,7 @@ public class Utils { return null; } - public static String getCalcField(DatasetTableFieldDTO ele, List originFields, boolean isFirst) { + public static String getCalcField(DatasetTableFieldDTO ele, List originFields, boolean isFirst, String fieldExpression) { if (isFirst) { for (DatasetTableFieldDTO field : originFields) { if (Objects.equals(ele.getId(), field.getId())) { @@ -120,7 +119,7 @@ public class Utils { } return ""; } else { - return ele.getOriginName(); + return fieldExpression; } }