diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/PipelineService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/PipelineService.java index ba9389e5..30c2e38d 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/PipelineService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/PipelineService.java @@ -38,4 +38,5 @@ public interface PipelineService extends IService { TreeRunContextResp getPipelineRunState(String pipelineId); Long getGroupCount(String groupId); + Boolean targetVersionInUse(List targetVersionId); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java index 39db4e77..8e2cfde4 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java @@ -540,6 +540,16 @@ public class PipelineServiceImpl extends ServiceImpl i return pipelineDao.selectCount(wrapper); } + @Override + public Boolean targetVersionInUse(List targetVersionId) { + if (CollectionUtils.isEmpty(targetVersionId)) { + return false; + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(PipPipeline::getTargetVersionId,targetVersionId); + return pipelineDao.exists(wrapper); + } + private String between(LocalDateTime startTime,LocalDateTime endTime){ if (startTime==null||endTime==null) { return ""; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java index 90788568..7b070111 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java @@ -11,6 +11,7 @@ import cd.casic.ci.process.process.dao.pipeline.TargetVersionDao; import cd.casic.ci.process.process.dataObject.base.BaseIdReq; import cd.casic.ci.process.process.dataObject.target.TargetManager; import cd.casic.ci.process.process.dataObject.target.TargetVersion; +import cd.casic.ci.process.process.service.pipeline.PipelineService; import cd.casic.ci.process.process.service.target.TargetManagerService; import cd.casic.ci.process.properties.TargetFileUploadProperties; import cd.casic.ci.process.util.SftpUploadUtil; @@ -63,8 +64,8 @@ public class TargetManagerServiceImpl extends ServiceImpl versionList = targetVersionService.selectListByManagerId(targetManager.getId()); List versionIdList = versionList.stream().map(TargetVersionResp::getId).toList(); + if (pipelineService.targetVersionInUse(versionIdList)) { + throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"当前目标正在被流水线使用无法删除"); + } targetVersionDao.deleteByIds(versionIdList); }