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 8ee5c2f3c62bba11df67d2b683f92700ddd3cf71..cccd03c8f76ad1763af5409ece6a8f6f921cb69e 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 cd53a546f9da469b51f96d080b131cb494230c3b..29a598599736f2ce8af928576aef78d00a472944 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; + } } } }