目标删除增加逻辑判断

This commit is contained in:
even 2025-07-17 14:22:42 +08:00
parent 2e7a183b8a
commit c5649a7acd
3 changed files with 17 additions and 2 deletions

View File

@ -38,4 +38,5 @@ public interface PipelineService extends IService<PipPipeline> {
TreeRunContextResp getPipelineRunState(String pipelineId); TreeRunContextResp getPipelineRunState(String pipelineId);
Long getGroupCount(String groupId); Long getGroupCount(String groupId);
Boolean targetVersionInUse(List<String> targetVersionId);
} }

View File

@ -540,6 +540,16 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
return pipelineDao.selectCount(wrapper); return pipelineDao.selectCount(wrapper);
} }
@Override
public Boolean targetVersionInUse(List<String> targetVersionId) {
if (CollectionUtils.isEmpty(targetVersionId)) {
return false;
}
LambdaQueryWrapper<PipPipeline> wrapper = new LambdaQueryWrapper<>();
wrapper.in(PipPipeline::getTargetVersionId,targetVersionId);
return pipelineDao.exists(wrapper);
}
private String between(LocalDateTime startTime,LocalDateTime endTime){ private String between(LocalDateTime startTime,LocalDateTime endTime){
if (startTime==null||endTime==null) { if (startTime==null||endTime==null) {
return ""; return "";

View File

@ -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.base.BaseIdReq;
import cd.casic.ci.process.process.dataObject.target.TargetManager; import cd.casic.ci.process.process.dataObject.target.TargetManager;
import cd.casic.ci.process.process.dataObject.target.TargetVersion; 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.process.service.target.TargetManagerService;
import cd.casic.ci.process.properties.TargetFileUploadProperties; import cd.casic.ci.process.properties.TargetFileUploadProperties;
import cd.casic.ci.process.util.SftpUploadUtil; import cd.casic.ci.process.util.SftpUploadUtil;
@ -63,8 +64,8 @@ public class TargetManagerServiceImpl extends ServiceImpl<TargetManagerDao, Targ
private AdminUserServiceImpl adminUserService; private AdminUserServiceImpl adminUserService;
@Resource @Resource
private TargetFileUploadProperties fileUploadProperties; private TargetFileUploadProperties fileUploadProperties;
@Resource
private PipelineService pipelineService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void createTarget(TargetManagerCreateReq req) { public void createTarget(TargetManagerCreateReq req) {
@ -121,6 +122,9 @@ public class TargetManagerServiceImpl extends ServiceImpl<TargetManagerDao, Targ
//删除对应的version版本 //删除对应的version版本
List<TargetVersionResp> versionList = targetVersionService.selectListByManagerId(targetManager.getId()); List<TargetVersionResp> versionList = targetVersionService.selectListByManagerId(targetManager.getId());
List<String> versionIdList = versionList.stream().map(TargetVersionResp::getId).toList(); List<String> versionIdList = versionList.stream().map(TargetVersionResp::getId).toList();
if (pipelineService.targetVersionInUse(versionIdList)) {
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"当前目标正在被流水线使用无法删除");
}
targetVersionDao.deleteByIds(versionIdList); targetVersionDao.deleteByIds(versionIdList);
} }