From b23a2301b6495ee53429efd30158c885b206276e Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 29 Nov 2024 17:02:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E4=B8=AD=E4=B8=8B=E6=8B=89=E6=A1=86=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=80=89=E4=B8=AD=E5=90=8E=E6=B5=81=E8=BD=AC=E5=88=B0?= =?UTF-8?q?=E4=B8=8B=E4=B8=80=E5=9C=BA=E6=99=AF=E6=98=AF=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E4=B8=8D=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1300572446097408]表格输入中下拉框字段选中后流转到下一场景是回显不出来 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1300572446097408 --- .../CmdbCustomViewDataSourceHandler.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/matrix/handler/CmdbCustomViewDataSourceHandler.java b/src/main/java/neatlogic/module/cmdb/matrix/handler/CmdbCustomViewDataSourceHandler.java index b07c15a8..9eb464a8 100644 --- a/src/main/java/neatlogic/module/cmdb/matrix/handler/CmdbCustomViewDataSourceHandler.java +++ b/src/main/java/neatlogic/module/cmdb/matrix/handler/CmdbCustomViewDataSourceHandler.java @@ -19,6 +19,7 @@ package neatlogic.module.cmdb.matrix.handler; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.cmdb.dto.ci.AttrVo; import neatlogic.framework.cmdb.dto.customview.*; import neatlogic.framework.cmdb.exception.customview.CustomViewNotFoundException; import neatlogic.framework.common.constvalue.Expression; @@ -572,9 +573,11 @@ public class CmdbCustomViewDataSourceHandler extends MatrixDataSourceHandlerBase for (CustomViewConstAttrVo constAttrVo : constAttrList) { uuid2TypeMap.put(constAttrVo.getUuid(), "constattr"); } + Map uuid2CustomViewAttrVoMap = new HashMap<>(); List attrList = customViewMapper.getCustomViewAttrByCustomViewId(customViewAttrVo); for (CustomViewAttrVo attrVo : attrList) { uuid2TypeMap.put(attrVo.getUuid(), "attr"); + uuid2CustomViewAttrVoMap.put(attrVo.getUuid(), attrVo); } for (MatrixFilterVo matrixFilterVo : filterList) { if (matrixFilterVo == null) { @@ -588,26 +591,41 @@ public class CmdbCustomViewDataSourceHandler extends MatrixDataSourceHandlerBase throw new MatrixAttributeNotFoundException(matrixUuid, uuid); } String attrUuid = attributeLabelMap.get(uuid); + String expression = matrixFilterVo.getExpression(); List valueList = matrixFilterVo.getValueList(); if (CollectionUtils.isEmpty(valueList)) { - if (!Objects.equals(matrixFilterVo.getExpression(), SearchExpression.NULL.getExpression()) - && !Objects.equals(matrixFilterVo.getExpression(), SearchExpression.NOTNULL.getExpression())) { + if (!Objects.equals(expression, SearchExpression.NULL.getExpression()) + && !Objects.equals(expression, SearchExpression.NOTNULL.getExpression())) { continue; } } JSONArray valueArray = new JSONArray(); - for (String value : valueList) { - if (StringUtils.isNotBlank(value)) { - valueArray.add(value); + String type = uuid2TypeMap.get(attrUuid); + if (Objects.equals(type, "attr")) { + CustomViewAttrVo customViewAttr = uuid2CustomViewAttrVoMap.get(attrUuid); + AttrVo attrVo = customViewAttr.getAttrVo(); + if (Objects.equals(attrVo.getType(), "number")) { + expression = SearchExpression.BT.getExpression(); + if (valueList.size() == 1) { + valueArray.add(valueList.get(0) + "~" + valueList.get(0)); + } else if (valueList.size() == 2) { + valueArray.add(valueList.get(0) + "~" + valueList.get(1)); + } + } + } + if (CollectionUtils.isEmpty(valueArray)) { + for (String value : valueList) { + if (StringUtils.isNotBlank(value)) { + valueArray.add(value); + } } } - String expression = matrixFilterVo.getExpression(); if (StringUtils.isBlank(expression)) { - expression = Expression.EQUAL.getExpression(); + expression = SearchExpression.EQ.getExpression(); } CustomViewConditionFilterVo customViewConditionFilterVo = new CustomViewConditionFilterVo(); customViewConditionFilterVo.setAttrUuid(attrUuid); - customViewConditionFilterVo.setType(uuid2TypeMap.get(attrUuid)); + customViewConditionFilterVo.setType(type); customViewConditionFilterVo.setExpression(expression); customViewConditionFilterVo.setValueList(valueArray); customViewConditionFilterList.add(customViewConditionFilterVo); -- Gitee