From fdf7d2e968d4cb0cc8b0bf5b044005f72f6e4103 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, 8 Apr 2026 11:09:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BF=9C=E7=A8=8BExce?= =?UTF-8?q?l=E6=95=B0=E6=8D=AE=E6=BA=90=E5=AF=B9=E6=8E=A5=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E5=BA=94=E7=94=A8=E6=A8=A1=E6=9D=BF=E6=97=B6=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E6=9C=AC=E5=9C=B0Excel=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E6=97=B6=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98=20#18102=20(#1820?= =?UTF-8?q?9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/DataVisualizationServer.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 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 fa8c870b88..7125e32e52 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 @@ -380,7 +380,7 @@ public class DataVisualizationServer implements DataVisualizationApi { if (StringUtils.isNotEmpty(datasourceOld.getConfiguration())) { if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) { DEException.throwException(Translator.get("i18n_app_error_no_api")); - } else if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { + } else if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name()) || datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.ExcelRemote.name())) { dsTableNamesMap.put(datasourceOld.getId(), ExcelUtils.getTableNamesMap(datasourceOld.getType(), datasourceOld.getConfiguration())); } else if (datasourceOld.getType().contains(DatasourceConfiguration.DatasourceType.API.name())) { dsTableNamesMap.put(datasourceOld.getId(), (Map) datasourceServer.invokeMethod(datasourceOld.getType(), "getTableNamesMap", String.class, datasourceOld.getConfiguration())); @@ -392,7 +392,7 @@ public class DataVisualizationServer implements DataVisualizationApi { systemDatasource.forEach(datasourceNew -> { // Excel 数据表明映射 if (StringUtils.isNotEmpty(datasourceNew.getConfiguration())) { - if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { + if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name()) || datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.ExcelRemote.name())) { dsTableNamesMap.put(datasourceNew.getId(), ExcelUtils.getTableNamesMap(datasourceNew.getType(), datasourceNew.getConfiguration())); excelDatasourceId.add(datasourceNew.getId()); } else if (datasourceNew.getType().contains(DatasourceConfiguration.DatasourceType.API.name())) { @@ -485,7 +485,17 @@ public class DataVisualizationServer implements DataVisualizationApi { Map systemDsTableNamesMap = dsTableNamesMap.get(value); if (MapUtils.isNotEmpty(appDsTableNamesMap)) { appDsTableNamesMap.forEach((keyName, valueName) -> { - if (MapUtils.isNotEmpty(systemDsTableNamesMap) && StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) { + // 检查是否都只有一个元素 + boolean bothHaveSingleEntry = appDsTableNamesMap.size() == 1 && + systemDsTableNamesMap != null && + systemDsTableNamesMap.size() == 1; + if (bothHaveSingleEntry) { + // 直接使用 systemDsTableNamesMap 的第一个值 + String firstSystemValue = systemDsTableNamesMap.values().iterator().next(); + dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, firstSystemValue)); + excelTableNamesMap.put(valueName, firstSystemValue); + } else if (MapUtils.isNotEmpty(systemDsTableNamesMap) && + StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) { dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, systemDsTableNamesMap.get(keyName))); excelTableNamesMap.put(valueName, systemDsTableNamesMap.get(keyName)); } else { @@ -493,7 +503,6 @@ public class DataVisualizationServer implements DataVisualizationApi { } }); } - }); if (dsGroupNameSave.contains(dsGroup.getName())) { dsGroup.setName(dsGroup.getName() + "-" + UUID.randomUUID().toString());