From 3adb9c72e468b755f9e92e0bee7ec5f516a9a6ea Mon Sep 17 00:00:00 2001 From: junjun Date: Mon, 22 Sep 2025 16:28:11 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=BF=87=E6=BB=A4=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=8E=BB=E9=99=A4=E8=81=9A=E5=90=88=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetGroupManage.java | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java index 77e64a5e83..37602a3f99 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java @@ -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 dimensionList = fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "d")).toList(); - List 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 dimensionList = p_fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "d")).toList(); + List quotaList = p_fields.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "q")).toList(); Map> map = new LinkedHashMap<>(); DatasetUtils.listEncode(dimensionList); DatasetUtils.listEncode(quotaList);