From deb4f79c9a5f7d872970f108ae24222850bc55a1 Mon Sep 17 00:00:00 2001 From: tjlygdx Date: Mon, 25 May 2026 21:32:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E3=80=90=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E3=80=91=E4=BF=AE=E5=A4=8D=E5=8F=82=E6=95=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E9=A2=84=E8=A7=88=E6=97=B6=E5=85=A8=E5=B1=80=E7=94=9F?= =?UTF-8?q?=E6=95=88=20=E4=BF=9D=E5=AD=98=E6=8F=90=E7=A4=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetDataManage.java | 18 ++++++++++++++++++ .../data/dataset/form/DatasetUnion.vue | 6 ++++-- 2 files changed, 22 insertions(+), 2 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 bca7856d36..3fe2c6192f 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 @@ -281,6 +281,7 @@ public class DatasetDataManage { datasourceRequest.setQuery(querySQL); datasourceRequest.setDsList(dsMap); datasourceRequest.setIsCross(crossDs); + applyPreparedParams(datasourceRequest, sqlMap); Map data = provider.fetchResultField(datasourceRequest); Map map = new LinkedHashMap<>(); @@ -385,6 +386,7 @@ public class DatasetDataManage { datasourceRequest.setQuery(querySQL); datasourceRequest.setDsList(dsMap); datasourceRequest.setIsCross(crossDs); + applyPreparedParams(datasourceRequest, sqlMap); Provider provider; if (crossDs) { @@ -426,6 +428,18 @@ public class DatasetDataManage { return map; } + @SuppressWarnings("unchecked") + private void applyPreparedParams(DatasourceRequest datasourceRequest, Map sqlMap) { + if (sqlMap == null) { + return; + } + List tableFieldWithValues = (List) sqlMap.get("tableFieldWithValues"); + if (CollectionUtils.isEmpty(tableFieldWithValues)) { + return; + } + datasourceRequest.setTableFieldWithValues(tableFieldWithValues.stream().map(TableFieldWithValue::copy).toList()); + } + private UserFormVO getUserEntity() { if (getRowPermissionsApi() == null) { return null; @@ -654,6 +668,7 @@ public class DatasetDataManage { datasourceRequest.setQuery(querySQL); datasourceRequest.setDsList(dsMap); datasourceRequest.setIsCross(crossDs); + applyPreparedParams(datasourceRequest, sqlMap); Map data = provider.fetchResultField(datasourceRequest); List dataList = (List) data.get("data"); @@ -780,6 +795,7 @@ public class DatasetDataManage { datasourceRequest.setQuery(querySQL); datasourceRequest.setDsList(dsMap); datasourceRequest.setIsCross(crossDs); + applyPreparedParams(datasourceRequest, sqlMap); Map data = provider.fetchResultField(datasourceRequest); List dataList = (List) data.get("data"); @@ -1043,6 +1059,7 @@ public class DatasetDataManage { datasourceRequest.setQuery(querySQL); datasourceRequest.setDsList(dsMap); datasourceRequest.setIsCross(crossDs); + applyPreparedParams(datasourceRequest, sqlMap); Map data = provider.fetchResultField(datasourceRequest); List dataList = (List) data.get("data"); @@ -1244,6 +1261,7 @@ public class DatasetDataManage { datasourceRequest.setQuery(querySQL); datasourceRequest.setDsList(dsMap); datasourceRequest.setIsCross(crossDs); + applyPreparedParams(datasourceRequest, sqlMap); Map data = provider.fetchResultField(datasourceRequest); List rows = (List) data.get("data"); diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue b/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue index e8d6a91aa6..3b04acafc1 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue @@ -230,7 +230,8 @@ const saveSqlNode = (val: SqlNode, cb) => { info: state.visualNode.info, tableName, type: 'sql', - isCross: isCross.value + isCross: isCross.value, + sqlVariableDetails }).then(res => { state.visualNode.confirm = true state.nodeList.push(state.visualNode) @@ -251,7 +252,8 @@ const saveSqlNode = (val: SqlNode, cb) => { info: state.visualNode.info, tableName, type: 'sql', - isCross: isCross.value + isCross: isCross.value, + sqlVariableDetails }).then(() => { state.visualNode.confirm = true cb?.()