From eb7fd4bd095e17de9472985aaa54dcc65318ff7d Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 20 Feb 2024 19:08:37 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-ITSM-?= =?UTF-8?q?=E8=A1=A8=E5=8D=95-=E4=B8=8B=E6=8B=89=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=BB=84=E4=BB=B6-=E6=8B=93=E5=B1=95=E7=9F=A9=E9=98=B5?= =?UTF-8?q?=E7=9A=84=E5=8F=96=E5=80=BC=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1095690980130816]后端-ITSM-表单-下拉列表组件-拓展矩阵的取值范围 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1095690980130816 --- .../MatrixColumnDataSearchForSelectApi.java | 48 +++++++++++++++---- 1 file changed, 39 insertions(+), 9 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 9f90bc83..7bef6c7e 100644 --- a/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java +++ b/src/main/java/neatlogic/module/tenant/api/matrix/MatrixColumnDataSearchForSelectApi.java @@ -16,9 +16,10 @@ package neatlogic.module.tenant.api.matrix; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BasePageVo; -import neatlogic.framework.common.dto.ValueTextVo; import neatlogic.framework.matrix.constvalue.SearchExpression; import neatlogic.framework.matrix.core.IMatrixDataSourceHandler; import neatlogic.framework.matrix.core.MatrixDataSourceHandlerFactory; @@ -31,8 +32,6 @@ import neatlogic.framework.matrix.exception.MatrixNotFoundException; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -76,6 +75,8 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase @Param(name = "keywordColumn", desc = "关键字属性uuid", type = ApiParamType.STRING), @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 = "pageSize", desc = "显示条目数", type = ApiParamType.INTEGER), @Param(name = "defaultValue", desc = "精确匹配回显数据参数", type = ApiParamType.JSONARRAY), @Param(name = "filterList", desc = "过滤条件集合", type = ApiParamType.JSONARRAY) @@ -169,6 +170,18 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase List columnList = new ArrayList<>(); columnList.add(valueField); columnList.add(textField); + JSONArray hiddenFieldList = jsonObj.getJSONArray("hiddenFieldList"); + if (CollectionUtils.isNotEmpty(hiddenFieldList)) { + for (int i = 0; i < hiddenFieldList.size(); i++) { + String hiddenField = hiddenFieldList.getString(i); + if (StringUtils.isNotBlank(hiddenField)) { + if (!attributeList.contains(hiddenField)) { + throw new MatrixAttributeNotFoundException(matrixVo.getName(), hiddenField); + } + columnList.add(hiddenField); + } + } + } dataVo.setColumnList(columnList); dataVo.setNotNullColumnList(new ArrayList<>(notNullColumnSet)); JSONArray defaultValue = dataVo.getDefaultValue(); @@ -197,22 +210,39 @@ public class MatrixColumnDataSearchForSelectApi extends PrivateApiComponentBase dataVo.setDefaultValueFilterList(defaultValueFilterList); dataVo.setDefaultValue(null); } - List dataList = new ArrayList<>(); + JSONArray dataList = new JSONArray(); List> resultList = matrixDataSourceHandler.searchTableDataNew(dataVo); deduplicateData(valueField, textField, resultList); if (CollectionUtils.isNotEmpty(resultList)) { for (Map result : resultList) { - String valueStr = null; + JSONObject element = new JSONObject(); JSONObject valueObj = result.get(valueField); if (MapUtils.isNotEmpty(valueObj)) { - valueStr = valueObj.getString("value"); + String valueStr = valueObj.getString("value"); + element.put("value", valueStr); } - String textStr = null; JSONObject textObj = result.get(textField); if (MapUtils.isNotEmpty(textObj)) { - textStr = textObj.getString("text"); + String textStr = textObj.getString("text"); + element.put("text", textStr); + } + if (CollectionUtils.isNotEmpty(hiddenFieldList)) { + for (int i = 0; i < hiddenFieldList.size(); i++) { + String hiddenField = hiddenFieldList.getString(i); + if (StringUtils.isBlank(hiddenField)) { + continue; + } + if (Objects.equals(hiddenField, valueField)) { + continue; + } + JSONObject hiddenFieldObj = result.get(hiddenField); + if (MapUtils.isNotEmpty(hiddenFieldObj)) { + String hiddenFieldValue = hiddenFieldObj.getString("value"); + element.put(hiddenField, hiddenFieldValue); + } + } } - dataList.add(new ValueTextVo(valueStr, textStr)); + dataList.add(element); } } JSONObject returnObj = new JSONObject(); -- Gitee