From e95da88efa2235e4bea192ad03d4f9633d3355a3 Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 23 Jan 2026 12:50:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=85=B3=E8=81=94?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E5=AD=97=E6=AE=B5=E4=B8=8D=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetDataManage.java | 6 ++-- .../dataset/manage/DatasetSQLManage.java | 36 ++++++++++++++++--- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index 13d348656a..97a80a0952 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -215,15 +215,15 @@ public class DatasetDataManage { DatasetUtils.dsDecode(datasetGroupInfoDTO); } - Map sqlMap = datasetSQLManage.getUnionSQLForEdit(datasetGroupInfoDTO, null); - String sql = (String) sqlMap.get("sql"); - // 获取allFields List fields = datasetGroupInfoDTO.getAllFields(); if (ObjectUtils.isEmpty(fields)) { DEException.throwException(Translator.get("i18n_no_fields")); } + Map sqlMap = datasetSQLManage.getUnionSQLForEdit(datasetGroupInfoDTO, null); + String sql = (String) sqlMap.get("sql"); + Map desensitizationList = new HashMap<>(); if (checkPermission) { fields = permissionManage.filterColumnPermissions(fields, desensitizationList, datasetGroupInfoDTO.getId(), null); diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java index 74e08a9aaa..768f82f032 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java @@ -129,6 +129,8 @@ public class DatasetSQLManage { public Map getUnionSQLForEdit(DatasetGroupInfoDTO dataTableInfoDTO, ChartExtRequest chartExtRequest, CoreDatasource coreDatasource, boolean isFromDataSet) throws Exception { Map dsMap = new LinkedHashMap<>(); + // 获取所有字段,将dataeaseName赋值给currentField中的dataeaseName + List allFields = dataTableInfoDTO.getAllFields(); List union = dataTableInfoDTO.getUnion(); // 所有选中的字段,即select后的查询字段 Map checkedInfo = new LinkedHashMap<>(); @@ -162,7 +164,19 @@ public class DatasetSQLManage { String[] array = fields.stream() .map(f -> { - String alias = TableUtils.fieldNameShort(table.getTableAlias() + "_" + f.getOriginName()); + // 赋值dataeaseName + for (DatasetTableFieldDTO a_f: allFields) { + if (Objects.equals(a_f.getId(),f.getId())) { + f.setDataeaseName(a_f.getDataeaseName()); + } + } + + String alias; + if (StringUtils.isEmpty(f.getDataeaseName())) { + alias = TableUtils.fieldNameShort(f.getDatasetTableId() + "_" + f.getOriginName()); + } else { + alias = f.getDataeaseName(); + } f.setFieldShortName(alias); f.setDataeaseName(f.getFieldShortName()); @@ -191,7 +205,7 @@ public class DatasetSQLManage { checkedFields.addAll(fields); // 获取child的fields和union if (!CollectionUtils.isEmpty(unionDTO.getChildrenDs())) { - getUnionForEdit(datasetTable, table, unionDTO.getChildrenDs(), checkedInfo, unionList, checkedFields, dsMap, chartExtRequest, isCross); + getUnionForEdit(datasetTable, table, unionDTO.getChildrenDs(), checkedInfo, unionList, checkedFields, dsMap, chartExtRequest, isCross, allFields); } } // build sql @@ -311,7 +325,7 @@ public class DatasetSQLManage { List childrenDs, Map checkedInfo, List unionList, List checkedFields, Map dsMap, ChartExtRequest chartExtRequest, - boolean isCross) throws Exception { + boolean isCross, List allFields) throws Exception { for (int i = 0; i < childrenDs.size(); i++) { int index = unionList.size() + 1; @@ -332,7 +346,19 @@ public class DatasetSQLManage { String[] array = fields.stream() .map(f -> { - String alias = TableUtils.fieldNameShort(table.getTableAlias() + "_" + f.getOriginName()); + // 赋值dataeaseName + for (DatasetTableFieldDTO a_f: allFields) { + if (Objects.equals(a_f.getId(),f.getId())) { + f.setDataeaseName(a_f.getDataeaseName()); + } + } + + String alias; + if (StringUtils.isEmpty(f.getDataeaseName())) { + alias = TableUtils.fieldNameShort(f.getDatasetTableId() + "_" + f.getOriginName()); + } else { + alias = f.getDataeaseName(); + } f.setFieldShortName(alias); f.setDataeaseName(f.getFieldShortName()); @@ -363,7 +389,7 @@ public class DatasetSQLManage { unionToParent.setCurrentSQLObj(table); unionList.add(unionToParent); if (!CollectionUtils.isEmpty(unionDTO.getChildrenDs())) { - getUnionForEdit(datasetTable, table, unionDTO.getChildrenDs(), checkedInfo, unionList, checkedFields, dsMap, chartExtRequest, isCross); + getUnionForEdit(datasetTable, table, unionDTO.getChildrenDs(), checkedInfo, unionList, checkedFields, dsMap, chartExtRequest, isCross, allFields); } } }