diff --git a/src/main/java/neatlogic/module/autoexec/api/job/exec/DownloadAutoexecJobPhaseNodesApi.java b/src/main/java/neatlogic/module/autoexec/api/job/exec/DownloadAutoexecJobPhaseNodesApi.java index 1e83ad060f12790bc5d3d83443eb2a6882fd9bf0..a9abe24409c728083d8ec4557f1c044998f15ecd 100644 --- a/src/main/java/neatlogic/module/autoexec/api/job/exec/DownloadAutoexecJobPhaseNodesApi.java +++ b/src/main/java/neatlogic/module/autoexec/api/job/exec/DownloadAutoexecJobPhaseNodesApi.java @@ -35,6 +35,11 @@ import neatlogic.framework.autoexec.dto.script.AutoexecScriptVo; import neatlogic.framework.autoexec.exception.AutoexecJobGroupNotFoundException; import neatlogic.framework.autoexec.exception.AutoexecJobNotFoundException; import neatlogic.framework.autoexec.exception.AutoexecJobPhaseNotFoundException; +import neatlogic.framework.autoexec.exception.AutoexecJobSourceInvalidException; +import neatlogic.framework.autoexec.job.source.type.AutoexecJobSourceTypeHandlerFactory; +import neatlogic.framework.autoexec.job.source.type.IAutoexecJobSourceTypeHandler; +import neatlogic.framework.autoexec.source.AutoexecJobSourceFactory; +import neatlogic.framework.autoexec.source.IAutoexecJobSource; import neatlogic.framework.cmdb.crossover.IResourceAccountCrossoverMapper; import neatlogic.framework.cmdb.crossover.IResourceCenterAccountCrossoverService; import neatlogic.framework.cmdb.crossover.IResourceCrossoverMapper; @@ -267,6 +272,16 @@ public class DownloadAutoexecJobPhaseNodesApi extends PrivateBinaryStreamApiComp } } if (CollectionUtils.isNotEmpty(autoexecJobPhaseNodeVoList)) { + //补充蓝绿sort等其它数据 + IAutoexecJobSource jobSource = AutoexecJobSourceFactory.getEnumInstance(jobVo.getSource()); + if (jobSource == null) { + throw new AutoexecJobSourceInvalidException(jobVo.getSource()); + } + IAutoexecJobSourceTypeHandler autoexecJobSourceActionHandler = AutoexecJobSourceTypeHandlerFactory.getAction(jobSource.getType()); + if (autoexecJobSourceActionHandler != null) { + autoexecJobSourceActionHandler.addExtraJobPhaseNodeBlueGreenInfoByList(jobVo.getId(), autoexecJobPhaseNodeVoList); + } + IResourceCrossoverMapper resourceCrossoverMapper = CrossoverServiceFactory.getApi(IResourceCrossoverMapper.class); List resourceIdList = autoexecJobPhaseNodeVoList.stream().map(AutoexecJobPhaseNodeVo::getResourceId).filter(Objects::nonNull).collect(Collectors.toList()); List resourceIncludeOsIdList = new ArrayList<>(resourceIdList); @@ -374,6 +389,12 @@ public class DownloadAutoexecJobPhaseNodesApi extends PrivateBinaryStreamApiComp nodeJson.put("nodeName", nodeVo.getNodeName()); nodeJson.put("nodeType", nodeVo.getNodeType()); nodeJson.put("resourceId", nodeVo.getResourceId()); + //补充额外信息 + JSONObject extraInfo = nodeVo.getExtraInfo(); + if (MapUtils.isNotEmpty(extraInfo) && StringUtils.isNotBlank(extraInfo.getString("blueGreenSort"))) { + nodeJson.put("seqNo", extraInfo.getInteger("blueGreenSort")); + nodeJson.put("seqNoId", extraInfo.getLong("blueGreenId")); + } JSONObject servicePorts = resourceServicePortsMap.get(nodeVo.getResourceId()); Long osResourceId = resourceOSResourceMap.get(nodeVo.getResourceId()); if (osResourceId != null) { diff --git a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java index a48e06d7ed6fa5adedb9a4a8603549ef381d973d..f76e4aa9a7406fd0c5072767d0adffaceb2ca556 100644 --- a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java +++ b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java @@ -887,6 +887,16 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC //System.out.println((System.currentTimeMillis() - cvv) + " ##cvv:-------------------------------------------------------------------------------"); logger.debug("##updateJobPhaseNodeIsDeleteByJobPhaseIdAndUpdateTag:-------------------------------------------------------------------------------end"); isNeedLncd = isNeedLncd || updateCount > 0; + + //其它数据源处理数据 + IAutoexecJobSource jobSource = AutoexecJobSourceFactory.getEnumInstance(jobVo.getSource()); + if (jobSource == null) { + throw new AutoexecJobSourceInvalidException(jobVo.getSource()); + } + IAutoexecJobSourceTypeHandler autoexecJobSourceActionHandler = AutoexecJobSourceTypeHandlerFactory.getAction(jobSource.getType()); + if (autoexecJobSourceActionHandler != null) { + autoexecJobSourceActionHandler.handleDeleteJobPhaseNodeEvent(jobPhaseVo.getId(), nowTime.getTime()); + } } //阶段节点被真删除||伪删除(is_delete=1),则更新上一次修改日期(plcd),需重新下载 if (isNeedLncd) { @@ -982,7 +992,7 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC List nodeList = new ArrayList<>(); //List nodeRunnerList = new ArrayList<>(); //List resourceIdList = new ArrayList<>(); - boolean isNeedLncd;//用于判断是否需要更新lncd(用于判断是否需要重新下载节点) + //boolean isNeedLncd;//用于判断是否需要更新lncd(用于判断是否需要重新下载节点) //新增节点需重新下载 List resourceIdList = resourceVoList.stream().map(ResourceVo::getId).collect(Collectors.toList()); // List originNodeList = autoexecJobMapper.getJobPhaseNodeListByJobPhaseIdAndResourceIdList(jobPhaseVo.getId(), resourceIdList); @@ -1037,6 +1047,17 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC autoexecJobMapper.updateJobPhaseNodeBatch(jobPhaseVo.getId(), resourceIdList, JobNodeStatus.PENDING.getValue(), jobPhaseVo.getLcd().getTime()); autoexecJobMapper.batchInsertIgnoreJobPhaseNode(nodeList); } + + + //其它数据源处理数据 + IAutoexecJobSource jobSource = AutoexecJobSourceFactory.getEnumInstance(jobVo.getSource()); + if (jobSource == null) { + throw new AutoexecJobSourceInvalidException(jobVo.getSource()); + } + IAutoexecJobSourceTypeHandler autoexecJobSourceActionHandler = AutoexecJobSourceTypeHandlerFactory.getAction(jobSource.getType()); + if (autoexecJobSourceActionHandler != null) { + autoexecJobSourceActionHandler.handleAddJobPhaseNodeEvent(jobVo, nodeList, userName, protocolId, jobPhaseVo.getLcd().getTime()); + } } @Override