mirror of
https://github.com/dataease/dataease.git
synced 2026-05-15 13:32:18 +08:00
refactor: 计算字段变更后的自动更新
This commit is contained in:
@@ -38,7 +38,7 @@ public class Utils {
|
||||
Map.Entry<Long, DatasourceSchemaDTO> next = dsMap.entrySet().iterator().next();
|
||||
datasourceType = getDs(pluginManage, next.getValue().getType());
|
||||
}
|
||||
return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap);
|
||||
return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap, true);
|
||||
} catch (Exception e) {
|
||||
DEException.throwException(Translator.get("i18n_field_circular_ref"));
|
||||
}
|
||||
@@ -53,20 +53,20 @@ public class Utils {
|
||||
Map.Entry<Long, String> next = dsTypeMap.entrySet().iterator().next();
|
||||
datasourceType = getDs(pluginManage, next.getValue());
|
||||
}
|
||||
return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, null);
|
||||
return buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, null, true);
|
||||
} catch (Exception e) {
|
||||
DEException.throwException(Translator.get("i18n_field_circular_ref"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String buildCalcField(DatasetTableFieldDTO chartField, SQLObj tableObj, List<DatasetTableFieldDTO> originFields, int i, boolean isCross, DsTypeDTO datasourceType, Map<String, String> paramMap) throws Exception {
|
||||
public static String buildCalcField(DatasetTableFieldDTO chartField, SQLObj tableObj, List<DatasetTableFieldDTO> originFields, int i, boolean isCross, DsTypeDTO datasourceType, Map<String, String> paramMap, boolean isFirst) throws Exception {
|
||||
try {
|
||||
i++;
|
||||
if (i > 100) {
|
||||
DEException.throwException(Translator.get("i18n_field_circular_error"));
|
||||
}
|
||||
String originField = getCalcField(chartField, originFields);
|
||||
String originField = getCalcField(chartField, originFields, isFirst);
|
||||
originField = originField.replaceAll("[\\t\\n\\r]]", "");
|
||||
// 正则提取[xxx]
|
||||
String regex = "\\[(.*?)]";
|
||||
@@ -100,7 +100,7 @@ public class Utils {
|
||||
} else {
|
||||
originField = originField.replaceAll("\\[" + ele.getId() + "]", "(" + ele.getOriginName() + ")");
|
||||
chartField.setOriginName(originField);
|
||||
originField = buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap);
|
||||
originField = buildCalcField(chartField, tableObj, originFields, i, isCross, datasourceType, paramMap, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -111,13 +111,17 @@ public class Utils {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getCalcField(DatasetTableFieldDTO ele, List<DatasetTableFieldDTO> originFields) {
|
||||
for (DatasetTableFieldDTO field : originFields) {
|
||||
if (Objects.equals(ele.getId(), field.getId())) {
|
||||
return field.getOriginName();
|
||||
public static String getCalcField(DatasetTableFieldDTO ele, List<DatasetTableFieldDTO> originFields, boolean isFirst) {
|
||||
if (isFirst) {
|
||||
for (DatasetTableFieldDTO field : originFields) {
|
||||
if (Objects.equals(ele.getId(), field.getId())) {
|
||||
return field.getOriginName();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
} else {
|
||||
return ele.getOriginName();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static String getLogic(String logic) {
|
||||
|
||||
Reference in New Issue
Block a user