From a424becfe8e04e05c97a33087895850b3a7c6449 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 8 Aug 2024 17:56:08 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A1=86=E5=BC=95=E7=94=A8=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=9F=A9=E9=98=B5=E5=92=8C=E8=A7=86=E5=9B=BE=E7=9F=A9?= =?UTF-8?q?=E9=98=B5=E6=97=B6=EF=BC=8C=E5=AD=97=E6=AE=B5=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=80=BC=E5=A4=AA=E5=A4=9A=E4=BC=9A=E5=BC=95=E5=8F=91=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1213024554156032]表单下拉框引用自定义矩阵和视图矩阵时,字段重复值太多会引发循环查询数据库 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1213024554156032 --- .../MatrixColumnDataSearchForSelectApi.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java index 4da03890..462fe547 100644 --- a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java +++ b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java @@ -332,7 +332,7 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase currentPage++; dataVo.setCurrentPage(currentPage); List> dataList = matrixDataSourceHandler.searchTableDataNew(dataVo); - List list = deduplicateData(previousPageList, valueField, dataList); + List list = deduplicateData(previousPageList, valueField, textField, dataList); if (currentPage >= startPage) { valueList.addAll(list); } @@ -347,7 +347,7 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase for (String value : valueList) { MatrixDefaultValueFilterVo matrixDefaultValueFilterVo = new MatrixDefaultValueFilterVo( new MatrixKeywordFilterVo(valueField, SearchExpression.EQ.getExpression(), value), - null + new MatrixKeywordFilterVo(textField, SearchExpression.NOTNULL.getExpression(), null) ); defaultValueFilterList.add(matrixDefaultValueFilterVo); } @@ -477,7 +477,7 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase * @param valueField * @param dataList */ - private List deduplicateData(List previousPageList, String valueField, List> dataList) { + private List deduplicateData(List previousPageList, String valueField, String textField, List> dataList) { List resultList = new ArrayList<>(); for (Map resultObj : dataList) { JSONObject firstObj = resultObj.get(valueField); @@ -485,9 +485,20 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase continue; } String value = firstObj.getString("value"); + if (StringUtils.isBlank(value)) { + continue; + } if (previousPageList.contains(value)) { continue; } + JSONObject secondObj = resultObj.get(textField); + if (MapUtils.isEmpty(secondObj)) { + continue; + } + String text = secondObj.getString("text"); + if (StringUtils.isBlank(text)) { + continue; + } previousPageList.add(value); resultList.add(value); } -- Gitee From 1ad131a516a9e701471f94280b8ac1cb062fa8d0 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 9 Aug 2024 10:50:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A1=86=E5=BC=95=E7=94=A8=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=9F=A9=E9=98=B5=E5=92=8C=E8=A7=86=E5=9B=BE=E7=9F=A9?= =?UTF-8?q?=E9=98=B5=E6=97=B6=EF=BC=8C=E5=AD=97=E6=AE=B5=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=80=BC=E5=A4=AA=E5=A4=9A=E4=BC=9A=E5=BC=95=E5=8F=91=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1213024554156032]表单下拉框引用自定义矩阵和视图矩阵时,字段重复值太多会引发循环查询数据库 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1213024554156032 --- .../matrix/MatrixColumnDataSearchForSelectApi.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java index 462fe547..5f757ba7 100644 --- a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java +++ b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java @@ -343,18 +343,21 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase dataVo.setIsDistinct(false); dataVo.setColumnList(columnList); dataVo.setNotNullColumnList(new ArrayList<>(notNullColumnSet)); - List defaultValueFilterList = new ArrayList<>(); + dataVo.setDefaultValue(null); + dataVo.setPageSize(1); for (String value : valueList) { + List defaultValueFilterList = new ArrayList<>(); MatrixDefaultValueFilterVo matrixDefaultValueFilterVo = new MatrixDefaultValueFilterVo( new MatrixKeywordFilterVo(valueField, SearchExpression.EQ.getExpression(), value), new MatrixKeywordFilterVo(textField, SearchExpression.NOTNULL.getExpression(), null) ); defaultValueFilterList.add(matrixDefaultValueFilterVo); + dataVo.setDefaultValueFilterList(defaultValueFilterList); + List> dataList = matrixDataSourceHandler.searchTableDataNew(dataVo); + if (CollectionUtils.isNotEmpty(dataList)) { + resultList.add(dataList.get(0)); + } } - dataVo.setDefaultValueFilterList(defaultValueFilterList); - dataVo.setDefaultValue(null); - dataVo.setPageSize(1); - resultList = matrixDataSourceHandler.searchTableDataNew(dataVo); } JSONArray dataList = new JSONArray(); if (CollectionUtils.isNotEmpty(resultList)) { -- Gitee