refactor: 过滤组件去除聚合字段

This commit is contained in:
junjun
2025-09-22 16:28:11 +08:00
parent b165bb40aa
commit 3adb9c72e4

View File

@@ -9,7 +9,8 @@ import io.dataease.api.dataset.union.UnionDTO;
import io.dataease.api.dataset.vo.DataSetBarVO;
import io.dataease.api.permissions.relation.api.RelationApi;
import io.dataease.commons.constants.OptConstants;
import io.dataease.dao.auto.entity.*;
import io.dataease.dao.auto.entity.CoreDatasetGroup;
import io.dataease.dao.auto.entity.CoreDatasetTable;
import io.dataease.dataset.dao.auto.mapper.CoreDatasetGroupRepository;
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableRepository;
import io.dataease.dataset.dao.ext.po.DataSetNodePO;
@@ -19,10 +20,14 @@ import io.dataease.dataset.utils.FieldUtils;
import io.dataease.dataset.utils.TableUtils;
import io.dataease.datasource.dao.auto.repository.CoreDatasourceRepository;
import io.dataease.engine.constant.ExtFieldConstant;
import io.dataease.engine.func.FunctionConstant;
import io.dataease.engine.utils.Utils;
import io.dataease.exception.DEException;
import io.dataease.extensions.datasource.api.PluginManageApi;
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
import io.dataease.extensions.datasource.dto.DatasourceDTO;
import io.dataease.extensions.datasource.model.SQLObj;
import io.dataease.extensions.view.dto.SqlVariableDetails;
import io.dataease.i18n.Translator;
import io.dataease.license.config.XpackInteract;
@@ -73,6 +78,8 @@ public class DatasetGroupManage {
private RelationApi relationManage;
@Autowired
private CoreDatasourceRepository coreDatasourceRepository;
@Autowired(required = false)
private PluginManageApi pluginManage;
private final JPAQueryFactory queryFactory;
@@ -609,12 +616,27 @@ public class DatasetGroupManage {
if (CollectionUtils.isNotEmpty(ids)) {
var dsList = coreDatasetGroupRepository.findAllById(ids);
if (CollectionUtils.isNotEmpty(dsList)) {
SQLObj tableObj = new SQLObj();
tableObj.setTableAlias("");
dsList.forEach(ds -> {
DatasetTableDTO dto = new DatasetTableDTO();
BeanUtils.copyBean(dto, ds);
var fields = datasetTableFieldManage.listFieldsWithPermissions(ds.getId());
List<DatasetTableFieldDTO> dimensionList = fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "d")).toList();
List<DatasetTableFieldDTO> quotaList = fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "q")).toList();
var p_fields = fields.stream().filter(ele -> {
boolean flag = true;
if (Objects.equals(ele.getExtField(), ExtFieldConstant.EXT_CALC)) {
String originField = Utils.calcFieldRegex(ele, tableObj, fields, true, null, Utils.mergeParam(Utils.getParams(fields), null), pluginManage);
for (String func : FunctionConstant.AGG_FUNC) {
if (Utils.matchFunction(func, originField)) {
flag = false;
break;
}
}
}
return flag;
}).toList();
List<DatasetTableFieldDTO> dimensionList = p_fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "d")).toList();
List<DatasetTableFieldDTO> quotaList = p_fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "q")).toList();
Map<String, List<DatasetTableFieldDTO>> map = new LinkedHashMap<>();
DatasetUtils.listEncode(dimensionList);
DatasetUtils.listEncode(quotaList);