From 3d3f3a3ecc5eb894b34720fcd1ad17eed2e499c6 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Mon, 25 Aug 2025 17:40:42 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20cmdb-SearchCiEntityApi?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1495589043273728]cmdb-SearchCiEntityApi接口查询报错 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1495589043273728 --- .../service/cientity/CiEntityServiceImpl.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java index 0eef56ce..2dc83cf5 100644 --- a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java @@ -496,8 +496,14 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS } } runner.execute(idList, 10, (threadIndex, dataIndex, item) -> { - long startTime = System.currentTimeMillis(); - ciEntityQueue.add(getCiEntityByIdLite(ciEntityVo.getCiId(), item, false, ciEntityVo.isLimitRelEntity(), ciEntityVo.isLimitAttrEntity(), ciEntityVo.getGlobalAttrIdList(), ciEntityVo.getAttrIdList(), ciEntityVo.getRelIdList(), null, null)); + long startTime = 0L; + if (logger.isInfoEnabled()) { + startTime = System.currentTimeMillis(); + } + CiEntityVo ciEntityByIdLite = getCiEntityByIdLite(ciEntityVo.getCiId(), item, false, ciEntityVo.isLimitRelEntity(), ciEntityVo.isLimitAttrEntity(), ciEntityVo.getGlobalAttrIdList(), ciEntityVo.getAttrIdList(), ciEntityVo.getRelIdList(), null, null); + if (ciEntityByIdLite != null) { + ciEntityQueue.add(ciEntityByIdLite); + } if (logger.isInfoEnabled()) { logger.info("查询单个配置项,耗时{}ms", System.currentTimeMillis() - startTime); } @@ -506,7 +512,16 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS if (logger.isInfoEnabled()) { logger.info("查询配置项总耗时,数据量{},耗时{}ms", ciEntityQueue.size(), System.currentTimeMillis() - time); } - return new ArrayList<>(ciEntityQueue); + List resultList = new ArrayList<>(); + for (Long id : idList) { + for (CiEntityVo ciEntity : ciEntityQueue) { + if (Objects.equals(ciEntity.getId(), id)) { + resultList.add(ciEntity); + break; + } + } + } + return resultList; } @Override -- Gitee