mirror of
https://github.com/dataease/dataease.git
synced 2025-02-24 11:32:57 +08:00
Merge pull request #13365 from dataease/pr@dev-v2@fix_calc_sort
fix(数据集): 修复计算字段排序出错的问题
This commit is contained in:
commit
af7e71cd4f
@ -6,6 +6,7 @@ import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
import io.dataease.extensions.datasource.dto.CalParam;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
@ -14,10 +15,7 @@ import io.dataease.extensions.datasource.model.SQLObj;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
@ -50,10 +48,17 @@ public class Order2SQLObj {
|
||||
Map.Entry<Long, DatasourceSchemaDTO> next = dsMap.entrySet().iterator().next();
|
||||
dsType = next.getValue().getType();
|
||||
}
|
||||
Map<String, String> fieldsDialect = new HashMap<>();
|
||||
|
||||
if (ObjectUtils.isNotEmpty(f.getExtField()) && Objects.equals(f.getExtField(), ExtFieldConstant.EXT_CALC)) {
|
||||
// 解析origin name中有关联的字段生成sql表达式
|
||||
originField = Utils.calcFieldRegex(f.getOriginName(), tableObj, originFields, isCross, dsMap, paramMap, pluginManage);
|
||||
String calcFieldExp = Utils.calcFieldRegex(f.getOriginName(), tableObj, originFields, isCross, dsMap, paramMap, pluginManage);
|
||||
// 给计算字段处加一个占位符,后续SQL方言转换后再替换
|
||||
originField = String.format(SqlPlaceholderConstants.CALC_FIELD_PLACEHOLDER, f.getId());
|
||||
fieldsDialect.put(originField, calcFieldExp);
|
||||
if (isCross) {
|
||||
originField = calcFieldExp;
|
||||
}
|
||||
} else if (ObjectUtils.isNotEmpty(f.getExtField()) && Objects.equals(f.getExtField(), ExtFieldConstant.EXT_COPY)) {
|
||||
if (StringUtils.equalsIgnoreCase(dsType, "es")) {
|
||||
originField = String.format(SQLConstants.FIELD_NAME, tableObj.getTableAlias(), f.getOriginName());
|
||||
|
Loading…
Reference in New Issue
Block a user