From 14843d55364303329ec8bba424636b217beff1b2 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 17 Apr 2025 19:25:40 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=B7=A1=E6=A3=80=E5=AD=98=E5=9C=A8=E7=9B=B8=E5=90=8C=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E8=8A=82=E7=82=B9=E6=97=B6=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1401577410101248]应用巡检存在相同目标节点时异常 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1401577410101248 --- .../api/job/CreateInspectAppJobApi.java | 2 +- .../job/node/UpdateNodesByOtherHandler.java | 38 +++++++++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/main/java/neatlogic/module/inspect/api/job/CreateInspectAppJobApi.java b/src/main/java/neatlogic/module/inspect/api/job/CreateInspectAppJobApi.java index 8ee5c2f..cccd03c 100644 --- a/src/main/java/neatlogic/module/inspect/api/job/CreateInspectAppJobApi.java +++ b/src/main/java/neatlogic/module/inspect/api/job/CreateInspectAppJobApi.java @@ -158,7 +158,7 @@ public class CreateInspectAppJobApi extends PrivateApiComponentBase { List ciVoList = ciCrossoverMapper.getCiByIdList(new ArrayList<>(allResourceTypeIdSet)); ciMap = ciVoList.stream().filter(Objects::nonNull).collect(Collectors.toMap(CiVo::getId, e -> e)); List ciCombopList = inspectMapper.searchInspectCiCombopListByCiIdList(new ArrayList<>(allResourceTypeIdSet)); - ciIdToCombopIdMap = ciCombopList.stream().filter(Objects::nonNull).collect(Collectors.toMap(InspectCiCombopVo::getId, InspectCiCombopVo::getCombopId)); + ciIdToCombopIdMap = ciCombopList.stream().filter(Objects::nonNull).filter(e -> e.getCombopId() != null && e.getId() != null).collect(Collectors.toMap(InspectCiCombopVo::getId, InspectCiCombopVo::getCombopId)); List combopIdList = ciCombopList.stream().filter(Objects::nonNull).map(InspectCiCombopVo::getCombopId).filter(Objects::nonNull).collect(Collectors.toList()); List autoexecCombopList = autoexecCombopMapper.getAutoexecCombopByIdList(combopIdList); autoexecCombopMap = autoexecCombopList.stream().filter(Objects::nonNull).collect(Collectors.toMap(AutoexecCombopVo::getId, e -> e)); diff --git a/src/main/java/neatlogic/module/inspect/job/node/UpdateNodesByOtherHandler.java b/src/main/java/neatlogic/module/inspect/job/node/UpdateNodesByOtherHandler.java index cd53a54..29a5985 100644 --- a/src/main/java/neatlogic/module/inspect/job/node/UpdateNodesByOtherHandler.java +++ b/src/main/java/neatlogic/module/inspect/job/node/UpdateNodesByOtherHandler.java @@ -33,7 +33,9 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Component; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Component public class UpdateNodesByOtherHandler implements IUpdateNodes { @@ -61,19 +63,49 @@ public class UpdateNodesByOtherHandler implements IUpdateNodes { IResourceCenterDataSource resourceCenterDataSource = ResourceCenterDataSourceFactory.getResourceCenterDataSource(); List appViewList = resourceCenterDataSource.getAppViewList(); if (CollectionUtils.isNotEmpty(appViewList)) { + Set resourceIdSet = new HashSet<>(); for (ResourceEntityVo resourceEntityVo : appViewList) { searchVo.setViewName(resourceEntityVo.getName()); searchVo.setCurrentPage(1); searchVo.setPageSize(100); List resourceList = resourceCenterDataSource.getAppResourceList(searchVo, true); if (CollectionUtils.isNotEmpty(resourceList)) { - autoexecJobCrossoverService.updateJobPhaseNode(jobVo, resourceList, userName, protocolId); - isHasNode = true; + for (int i = resourceList.size() - 1; i >= 0; i--) { + ResourceVo resourceVo = resourceList.get(i); + if (resourceVo == null) { + resourceList.remove(i); + continue; + } + if (resourceIdSet.contains(resourceVo.getId())) { + resourceList.remove(i); + continue; + } + resourceIdSet.add(resourceVo.getId()); + } + if (CollectionUtils.isNotEmpty(resourceList)) { + autoexecJobCrossoverService.updateJobPhaseNode(jobVo, resourceList, userName, protocolId); + isHasNode = true; + } for (int currentPage = 2; currentPage <= searchVo.getPageCount(); currentPage++) { searchVo.setCurrentPage(currentPage); resourceList = resourceCenterDataSource.getAppResourceList(searchVo, true); if (CollectionUtils.isNotEmpty(resourceList)) { - autoexecJobCrossoverService.updateJobPhaseNode(jobVo, resourceList, userName, protocolId); + for (int i = resourceList.size() - 1; i >= 0; i--) { + ResourceVo resourceVo = resourceList.get(i); + if (resourceVo == null) { + resourceList.remove(i); + continue; + } + if (resourceIdSet.contains(resourceVo.getId())) { + resourceList.remove(i); + continue; + } + resourceIdSet.add(resourceVo.getId()); + } + if (CollectionUtils.isNotEmpty(resourceList)) { + autoexecJobCrossoverService.updateJobPhaseNode(jobVo, resourceList, userName, protocolId); + isHasNode = true; + } } } } -- Gitee