mirror of
https://github.com/dataease/dataease.git
synced 2026-06-17 21:08:31 +08:00
refactor: 过滤组件去除聚合字段
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user