From f205155ae1ed4bef346d8c31be5f248a5690dd13 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Mon, 18 Mar 2024 13:16:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=E7=B1=BB=E5=9E=8B=E7=9F=A9=E9=98=B5=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E9=80=89=E9=A1=B9=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1115052541706240]配置项类型矩阵下拉框选项显示不全 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1115052541706240 --- .../MatrixColumnDataSearchForSelectApi.java | 56 +++++++++++++++++-- 1 file changed, 52 insertions(+), 4 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 7bef6c7e..4445ca76 100644 --- a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java +++ b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java @@ -76,7 +76,7 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase @Param(name = "valueField", desc = "value属性uuid", type = ApiParamType.STRING, isRequired = true), @Param(name = "textField", desc = "text属性uuid", type = ApiParamType.STRING, isRequired = true), @Param(name = "hiddenFieldList", desc = "隐藏属性uuid列表", type = ApiParamType.JSONARRAY), - @Param(name = "pageSize", desc = "显示条目数", type = ApiParamType.INTEGER), + @Param(name = "currentPage", desc = "当前页", type = ApiParamType.INTEGER), @Param(name = "pageSize", desc = "显示条目数", type = ApiParamType.INTEGER), @Param(name = "defaultValue", desc = "精确匹配回显数据参数", type = ApiParamType.JSONARRAY), @Param(name = "filterList", desc = "过滤条件集合", type = ApiParamType.JSONARRAY) @@ -165,6 +165,7 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase if (!attributeList.contains(textField)) { throw new MatrixAttributeNotFoundException(matrixVo.getName(), textField); } + List> resultList = new ArrayList<>(); dataVo.setKeywordColumn(textField); notNullColumnSet.add(textField); List columnList = new ArrayList<>(); @@ -209,10 +210,33 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase } dataVo.setDefaultValueFilterList(defaultValueFilterList); dataVo.setDefaultValue(null); + + resultList = matrixDataSourceHandler.searchTableDataNew(dataVo); + deduplicateData(null, valueField, textField, resultList); + } else { + List> previousPageList = new ArrayList<>(); + int startPage = dataVo.getCurrentPage(); + int pageSize = dataVo.getPageSize(); + int currentPage = 0; + while (resultList.size() < pageSize) { + currentPage++; + dataVo.setCurrentPage(currentPage); + if (currentPage < startPage) { + List> list = matrixDataSourceHandler.searchTableDataNew(dataVo); + deduplicateData(previousPageList, valueField, textField, list); + previousPageList.addAll(list); + } else { + List> list = matrixDataSourceHandler.searchTableDataNew(dataVo); + deduplicateData(previousPageList, valueField, textField, list); + previousPageList.addAll(list); + resultList.addAll(list); + } + if (currentPage >= dataVo.getPageCount()) { + break; + } + } } JSONArray dataList = new JSONArray(); - List> resultList = matrixDataSourceHandler.searchTableDataNew(dataVo); - deduplicateData(valueField, textField, resultList); if (CollectionUtils.isNotEmpty(resultList)) { for (Map result : resultList) { JSONObject element = new JSONObject(); @@ -254,9 +278,33 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase return returnObj; } - private void deduplicateData(String valueField, String textField, List> resultList) { + private void deduplicateData(List> oldResultList, String valueField, String textField, List> resultList) { List duplicateValue = new ArrayList<>(); List duplicateText = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(oldResultList)) { + for (Map resultObj : oldResultList) { + JSONObject firstObj = resultObj.get(valueField); + if (MapUtils.isEmpty(firstObj)) { + continue; + } + JSONObject secondObj = resultObj.get(textField); + if (MapUtils.isEmpty(secondObj)) { + continue; + } + String value = firstObj.getString("value"); + if (duplicateValue.contains(value)) { + continue; + } else { + duplicateValue.add(value); + } + String text = secondObj.getString("text"); + if (duplicateText.contains(text)) { + continue; + } else { + duplicateText.add(text); + } + } + } Iterator> iterator = resultList.iterator(); while (iterator.hasNext()) { Map resultObj = iterator.next(); -- Gitee From 40d05bcf6d6ff2df258a6d3d9420128cdf24ecfe Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Mon, 18 Mar 2024 13:19:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=E7=B1=BB=E5=9E=8B=E7=9F=A9=E9=98=B5=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E9=80=89=E9=A1=B9=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1115052541706240]配置项类型矩阵下拉框选项显示不全 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1115052541706240 --- .../api/matrix/MatrixColumnDataSearchForSelectApi.java | 6 +++--- 1 file changed, 3 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 4445ca76..efc8e3a4 100644 --- a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java +++ b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java @@ -278,11 +278,11 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase return returnObj; } - private void deduplicateData(List> oldResultList, String valueField, String textField, List> resultList) { + private void deduplicateData(List> previousPageList, String valueField, String textField, List> resultList) { List duplicateValue = new ArrayList<>(); List duplicateText = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(oldResultList)) { - for (Map resultObj : oldResultList) { + if (CollectionUtils.isNotEmpty(previousPageList)) { + for (Map resultObj : previousPageList) { JSONObject firstObj = resultObj.get(valueField); if (MapUtils.isEmpty(firstObj)) { continue; -- Gitee From 9e1fbccabdc717ff5064cd79874ad7a09c1ed660 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Mon, 18 Mar 2024 14:10:05 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=E7=B1=BB=E5=9E=8B=E7=9F=A9=E9=98=B5=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E9=80=89=E9=A1=B9=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1115052541706240]配置项类型矩阵下拉框选项显示不全 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1115052541706240 --- .../tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 efc8e3a4..e896fdc5 100644 --- a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java +++ b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java @@ -218,7 +218,7 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase int startPage = dataVo.getCurrentPage(); int pageSize = dataVo.getPageSize(); int currentPage = 0; - while (resultList.size() < pageSize) { + while (resultList.size() < pageSize && currentPage < 100) { currentPage++; dataVo.setCurrentPage(currentPage); if (currentPage < startPage) { -- Gitee