From b46f758399698ad353759296b9012c179185fad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=98=89=E8=B1=AA?= <42510293+ziyujiahao@users.noreply.github.com> Date: Wed, 15 Oct 2025 11:27:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=BD=BF=E7=94=A8=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E6=97=B6=E6=9C=AA=E5=8C=B9=E9=85=8D=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=AD=97=E6=AE=B5=E9=97=AE=E9=A2=98=20(#17187)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/DataVisualizationServer.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 04d048ce29..a06871037f 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -237,7 +237,7 @@ public class DataVisualizationServer implements DataVisualizationApi { return null; } - private void appDatasetMatch(VisualizationExport2AppVO appData, Map datasourceIdMap, Map dsGroupIdMap, Map dsTableIdMap, Map dsTableFieldsIdMap) { + private void appDatasetMatch(VisualizationExport2AppVO appData, Map datasourceIdMap, Map dsGroupIdMap, Map dsTableIdMap, Map dsTableFieldsIdMap,Map dsTableFieldsDatasetNameMap) { List sourceDatasetGroupList = appData.getDatasetGroupsInfo(); List sourceDatasetTableList = appData.getDatasetTablesInfo(); @@ -249,6 +249,10 @@ public class DataVisualizationServer implements DataVisualizationApi { Map> sourceDatasetTableFieldMap = DeCollectionUtils.groupBy(sourceDatasetTableFieldList, AppCoreDatasetTableFieldVO::getDatasetTableId); + Map> sourceDatasetTableFieldMapGroup = + DeCollectionUtils.groupBy(sourceDatasetTableFieldList, AppCoreDatasetTableFieldVO::getDatasetGroupId); + + sourceDatasetGroupList.forEach(sourceDatasetGroup -> { Long systemDatasetGroupId = sourceDatasetGroup.getSystemDatasetId(); Long sourceDatasetGroupId = sourceDatasetGroup.getId(); @@ -280,6 +284,25 @@ public class DataVisualizationServer implements DataVisualizationApi { if (sourceTableField.getOriginName().equals(systemTableField.getOriginName())) { // 获取dsTableIdMap datasourceIdMap dsTableFieldsIdMap.put(sourceTableField.getId(), systemTableField.getId()); + dsTableFieldsDatasetNameMap.put(sourceTableField.getDataeaseName(),systemTableField.getDataeaseName()); + break; + } + } + } + + // 获取 dsTableFieldsIdMapGroup 进行二次匹配 解决计算字段没有tableId 问题 + List sourceDatasetTableFieldListSubGroup = sourceDatasetTableFieldMapGroup.get(sourceTable.getDatasetGroupId()); + + QueryWrapper wrapperFieldGroup = new QueryWrapper<>(); + wrapperFieldGroup.eq("dataset_group_id", systemTable.getDatasetGroupId()); + List systemDatasetTableFieldSubGroup = coreDatasetTableFieldMapper.selectList(wrapperFieldGroup); + + for (AppCoreDatasetTableFieldVO sourceTableField : sourceDatasetTableFieldListSubGroup) { + for (CoreDatasetTableField systemTableField : systemDatasetTableFieldSubGroup) { + if (dsTableFieldsIdMap.get(sourceTableField.getId())==null && sourceTableField.getName().equals(systemTableField.getName())) { + // 获取dsTableIdMap datasourceIdMap + dsTableFieldsIdMap.put(sourceTableField.getId(), systemTableField.getId()); + dsTableFieldsDatasetNameMap.put(sourceTableField.getDataeaseName(),systemTableField.getDataeaseName()); break; } } @@ -316,6 +339,7 @@ public class DataVisualizationServer implements DataVisualizationApi { List newDsGroupInfo = new ArrayList<>(); Map dsTableIdMap = new HashMap<>(); Map dsTableFieldsIdMap = new HashMap<>(); + Map dsTableFieldsDatasetNameMap = new HashMap<>(); List dsTableFieldsList = new ArrayList(); Map datasourceIdMap = new HashMap<>(); Map> dsTableNamesMap = new HashMap<>(); @@ -325,7 +349,7 @@ public class DataVisualizationServer implements DataVisualizationApi { if (appData != null) { isAppSave = true; if ("dataset".equals(request.getDataType())) { - appDatasetMatch(appData, datasourceIdMap, dsGroupIdMap, dsTableIdMap, dsTableFieldsIdMap); + appDatasetMatch(appData, datasourceIdMap, dsGroupIdMap, dsTableIdMap, dsTableFieldsIdMap,dsTableFieldsDatasetNameMap); } else { try { List appCoreDatasourceVO = appData.getDatasourceInfo(); @@ -537,6 +561,9 @@ public class DataVisualizationServer implements DataVisualizationApi { dsGroupIdMap.forEach((key, value) -> { mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString())); }); + dsTableFieldsDatasetNameMap.forEach((key, value) -> { + mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key, value)); + }); canvasViewsStr.put(viewId, mutableViewInfoStr.get()); }); canvasViews = VisualizationUtils.viewTransToObj(canvasViewsStr);