diff --git a/src/main/java/neatlogic/module/autoexec/api/combop/AutoexecCombopBasicInfoSaveApi.java b/src/main/java/neatlogic/module/autoexec/api/combop/AutoexecCombopBasicInfoSaveApi.java index 95416344f7f0a4634020afa6f17701f2588c2d7e..acd39c3b7d64eefe75bc84d250bda87e722673e9 100644 --- a/src/main/java/neatlogic/module/autoexec/api/combop/AutoexecCombopBasicInfoSaveApi.java +++ b/src/main/java/neatlogic/module/autoexec/api/combop/AutoexecCombopBasicInfoSaveApi.java @@ -98,6 +98,7 @@ public class AutoexecCombopBasicInfoSaveApi extends PrivateApiComponentBase { @Param(name = "name", type = ApiParamType.REGEX, rule = RegexUtils.NAME, isRequired = true, minLength = 1, maxLength = 70, desc = "common.name"), @Param(name = "description", type = ApiParamType.STRING, desc = "common.description"), @Param(name = "typeId", type = ApiParamType.LONG, isRequired = true, desc = "common.typeid"), + @Param(name = "opType", type = ApiParamType.STRING, isRequired = true, desc = "common.actiontype"), @Param(name = "typeName", type = ApiParamType.STRING, isRequired = true, desc = "common.typename"), @Param(name = "viewAuthorityList", type = ApiParamType.JSONARRAY, isRequired = true, minSize = 1, desc = "common.viewauthoritylist"), @Param(name = "editAuthorityList", type = ApiParamType.JSONARRAY, isRequired = true, minSize = 1, desc = "common.editauthoritylist"), diff --git a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java index 9bd5e1b272467811b37e901a25796d7764e02bfc..6d85ed6ad50f2f59c48fb3260a16a3e5997bf89a 100644 --- a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java +++ b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java @@ -1044,7 +1044,8 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC ipPortNameList.add(new ResourceVo(o.getIp(), o.getPort(), o.getName())); }); IResourceCrossoverMapper resourceCrossoverMapper = CrossoverServiceFactory.getApi(IResourceCrossoverMapper.class); - List resourceVoList = resourceCrossoverMapper.getResourceListByResourceVoList(ipPortNameList); + ResourceSearchVo searchVo = getResourceSearchVoWithCmdbGroupType(jobVo); + List resourceVoList = resourceCrossoverMapper.getResourceListByResourceVoList(ipPortNameList, searchVo); if (CollectionUtils.isNotEmpty(resourceVoList)) { updateJobPhaseNode(jobVo, resourceVoList, userName, protocolId, false); //重置节点状态 @@ -1073,7 +1074,8 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC ipPortNameList.add(new ResourceVo(o.getIp(), o.getPort(), o.getName())); }); IResourceCrossoverMapper resourceCrossoverMapper = CrossoverServiceFactory.getApi(IResourceCrossoverMapper.class); - List resourceVoList = resourceCrossoverMapper.getResourceListByResourceVoList(ipPortNameList); + ResourceSearchVo searchVo = getResourceSearchVoWithCmdbGroupType(jobVo); + List resourceVoList = resourceCrossoverMapper.getResourceListByResourceVoList(ipPortNameList, searchVo); if (CollectionUtils.isNotEmpty(resourceVoList)) { updateJobPhaseNode(jobVo, resourceVoList, userName, protocolId); return true; @@ -1095,7 +1097,9 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC List nodeVoList = executeNodeConfigVo.getSelectNodeList(); if (CollectionUtils.isNotEmpty(nodeVoList)) { IResourceCrossoverMapper resourceCrossoverMapper = CrossoverServiceFactory.getApi(IResourceCrossoverMapper.class); - List resourceVoList = resourceCrossoverMapper.getResourceByIdList(nodeVoList.stream().map(AutoexecNodeVo::getId).collect(toList())); + ResourceSearchVo searchVo = getResourceSearchVoWithCmdbGroupType(jobVo); + searchVo.setIdList(nodeVoList.stream().map(AutoexecNodeVo::getId).collect(toList())); + List resourceVoList = resourceCrossoverMapper.getAuthResourceList(searchVo); if (CollectionUtils.isNotEmpty(resourceVoList)) { updateJobPhaseNode(jobVo, resourceVoList, userName, protocolId); return true; @@ -1104,6 +1108,34 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC return false; } + /** + * 获取resourceSearch,补充opType操作类型 + * + * @param jobVo 作业 + */ + private ResourceSearchVo getResourceSearchVoWithCmdbGroupType(AutoexecJobVo jobVo) { + return getResourceSearchVoWithCmdbGroupType(jobVo, null); + } + + /** + * 获取resourceSearch,补充opType操作类型 + * + * @param jobVo 作业 + */ + private ResourceSearchVo getResourceSearchVoWithCmdbGroupType(AutoexecJobVo jobVo, JSONObject filterJson) { + if (MapUtils.isEmpty(filterJson)) { + filterJson = new JSONObject(); + } + if (Objects.equals(jobVo.getOperationType(), CombopOperationType.COMBOP.getValue())) { + AutoexecCombopVo combopVo = autoexecCombopMapper.getAutoexecCombopById(jobVo.getOperationId()); + if (combopVo != null) { + filterJson.put("cmdbGroupType", combopVo.getOpType()); + } + } + IResourceCenterResourceCrossoverService resourceCrossoverService = CrossoverServiceFactory.getApi(IResourceCenterResourceCrossoverService.class); + return resourceCrossoverService.assembleResourceSearchVo(filterJson); + } + /** * filter * 根据过滤器 更新节点 @@ -1117,10 +1149,8 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC JSONObject filterJson = executeNodeConfigVo.getFilter(); boolean isHasNode = false; if (MapUtils.isNotEmpty(filterJson)) { - JSONObject resourceJson; - IResourceCenterResourceCrossoverService resourceCrossoverService = CrossoverServiceFactory.getApi(IResourceCenterResourceCrossoverService.class); filterJson.put("pageSize", 100); - ResourceSearchVo searchVo = resourceCrossoverService.assembleResourceSearchVo(filterJson); + ResourceSearchVo searchVo = getResourceSearchVoWithCmdbGroupType(jobVo, filterJson); IResourceCrossoverMapper resourceCrossoverMapper = CrossoverServiceFactory.getApi(IResourceCrossoverMapper.class); int count = resourceCrossoverMapper.getResourceCount(searchVo); if (count > 0) {