From 73a8c5bc8524c537baf1acd191de905768a70d47 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 30 Dec 2025 11:45:39 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E5=85=B3=E9=94=AE=E5=AD=97=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=A4=9A=E4=B8=AAIP=E7=94=A8=E7=A9=BA?= =?UTF-8?q?=E6=A0=BC=E9=9A=94=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1587611552940036]资产清单关键字支持搜索多个IP用空格隔开 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1587611552940036 --- .../mapper/resourcecenter/ResourceMapper.xml | 16 ++++++- .../resource/ResourceBuildSqlServiceImpl.java | 42 +++++++++++++++---- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml index 31207138..89ec42a8 100644 --- a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml +++ b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml @@ -176,8 +176,14 @@ #{item} --> - + + + AND + + a.`name` LIKE CONCAT(#{keywordItem}, '%') OR a.`ip` LIKE CONCAT(#{keywordItem}, '%') + AND fw2.word IN @@ -270,8 +276,14 @@ #{item} --> - + + + AND + + a.`name` LIKE CONCAT(#{keywordItem}, '%') OR a.`ip` LIKE CONCAT(#{keywordItem}, '%') + diff --git a/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java index 848f2b2a..ae3ebaa8 100644 --- a/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java @@ -2824,14 +2824,40 @@ public class ResourceBuildSqlServiceImpl implements ResourceBuildSqlService, IRe AND (a.`name` LIKE CONCAT(#{keyword}, '%') OR a.`ip` LIKE CONCAT(#{keyword}, '%')) */ - if (StringUtils.isNotBlank(queryCriteriaVo.getKeyword())) { - String keyword = queryCriteriaVo.getKeyword() + "%"; - whereExpressionList.add($sql.exp( - "(", - $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword)), - "OR", - $sql.exp(fieldName2ColumnMap.get("ip").toString(), "like", $sql.value(keyword)), - ")")); +// if (StringUtils.isNotBlank(queryCriteriaVo.getKeyword())) { +// String keyword = queryCriteriaVo.getKeyword() + "%"; +// whereExpressionList.add($sql.exp( +// "(", +// $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword)), +// "OR", +// $sql.exp(fieldName2ColumnMap.get("ip").toString(), "like", $sql.value(keyword)), +// ")")); +// } + /* + + AND + + a.`name` LIKE CONCAT(#{keywordItem}, '%') OR a.`ip` LIKE CONCAT(#{keywordItem}, '%') + + + */ + if (CollectionUtils.isNotEmpty(queryCriteriaVo.getKeywordList())) { + ExpressionVo orExp = null; + for (String keyword : queryCriteriaVo.getKeywordList()) { + if (orExp == null) { + orExp = $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword + "%")); + } else { + orExp = $sql.exp( + orExp, + "OR", + $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword + "%"))); + } + orExp = $sql.exp( + orExp, + "OR", + $sql.exp(fieldName2ColumnMap.get("ip").toString(), "like", $sql.value(keyword + "%"))); + } + whereExpressionList.add($sql.exp("(", orExp, ")")); } /* -- Gitee