This commit is contained in:
HopeLi 2025-05-15 15:06:16 +08:00
parent bf6541ea55
commit c9c834a617
8 changed files with 178 additions and 25 deletions

View File

@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.req.resource;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
@Data @Data
public class ResourceQueryReq { public class ResourceQueryReq {
/** /**
@ -108,4 +110,18 @@ public class ResourceQueryReq {
* 流水线id * 流水线id
*/ */
private String pipelineId; private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
} }

View File

@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.req.resource;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
@Data @Data
public class ResourceReq { public class ResourceReq {
/** /**
@ -108,4 +110,18 @@ public class ResourceReq {
* 流水线id * 流水线id
*/ */
private String pipelineId; private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
} }

View File

@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.resp.resource;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
@Data @Data
public class ResourceResp { public class ResourceResp {
/** /**
@ -108,4 +110,18 @@ public class ResourceResp {
* 流水线id * 流水线id
*/ */
private String pipelineId; private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
} }

View File

@ -2,6 +2,8 @@ package cd.casic.ci.process.process.dataObject.resource;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
@Data @Data
public class PipResource { public class PipResource {
/** /**
@ -108,4 +110,18 @@ public class PipResource {
* 流水线id * 流水线id
*/ */
private String pipelineId; private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
} }

View File

@ -20,4 +20,6 @@ public interface PipelineService extends IService<PipPipeline> {
String createPipeline(@Valid PipelineCreateReq pipelineReq); String createPipeline(@Valid PipelineCreateReq pipelineReq);
List<PipelineFindResp> findPipelineList(@Valid PipelineQueryReq pipelineQueryReq); List<PipelineFindResp> findPipelineList(@Valid PipelineQueryReq pipelineQueryReq);
void deletePipeline(String pipelineId);
} }

View File

@ -3,16 +3,22 @@ package cd.casic.ci.process.process.service.pipeline.impl;
import cd.casic.ci.common.pipeline.req.pipeline.PipelineCreateReq; import cd.casic.ci.common.pipeline.req.pipeline.PipelineCreateReq;
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq; import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp; import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
import cd.casic.ci.process.process.converter.PipelineConverter;
import cd.casic.ci.process.process.dal.pipeline.PipResourceDao;
import cd.casic.ci.process.process.dal.pipeline.PipStageDao;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dal.pipeline.PipelineDao; import cd.casic.ci.process.process.dal.pipeline.PipelineDao;
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
import cd.casic.ci.process.process.dataObject.resource.PipResource; import cd.casic.ci.process.process.dataObject.resource.PipResource;
import cd.casic.ci.process.process.dataObject.stage.PipStage; import cd.casic.ci.process.process.dataObject.stage.PipStage;
import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.converter.PipelineConverter;
import cd.casic.ci.process.process.service.pipeline.PipelineService; import cd.casic.ci.process.process.service.pipeline.PipelineService;
import cd.casic.ci.process.process.service.resource.impl.ResourceServiceImpl; import cd.casic.ci.process.process.service.resource.impl.ResourceServiceImpl;
import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl; import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl;
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl; import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.commons.util.util.WebFrameworkUtils; import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -21,6 +27,7 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -50,6 +57,15 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
@Resource @Resource
private PipelineDao pipelineDao; private PipelineDao pipelineDao;
@Resource
private PipStageDao pipStageDao;
@Resource
private PipTaskDao pipTaskDao;
@Resource
private PipResourceDao pipResourceDao;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String createPipeline(PipelineCreateReq pipelineReq) { public String createPipeline(PipelineCreateReq pipelineReq) {
@ -85,6 +101,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
stageService.save(stageReq1); stageService.save(stageReq1);
PipStage childStage1 = new PipStage(); PipStage childStage1 = new PipStage();
childStage1.setPipelineId(pipeline.getId());
childStage1.setStageName("源码"); childStage1.setStageName("源码");
childStage1.setCreateTime(LocalDateTime.now()); childStage1.setCreateTime(LocalDateTime.now());
childStage1.setStageSort(1); childStage1.setStageSort(1);
@ -105,6 +122,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
//新增并行阶段 //新增并行阶段
PipStage childStage21 = new PipStage(); PipStage childStage21 = new PipStage();
childStage21.setStageName("并行阶段-2-1"); childStage21.setStageName("并行阶段-2-1");
childStage21.setPipelineId(pipeline.getId());
childStage21.setCreateTime(LocalDateTime.now()); childStage21.setCreateTime(LocalDateTime.now());
childStage21.setStageSort(1); childStage21.setStageSort(1);
childStage21.setCode(false); childStage21.setCode(false);
@ -113,8 +131,9 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
//新增串行阶段 //新增串行阶段
PipTask childTask21 = new PipTask(); PipTask childTask21 = new PipTask();
childTask21.setCreateTime(LocalDateTime.now()); childTask21.setPipelineId(pipeline.getId());
childTask21.setTaskName("串行任务-2-1"); childTask21.setTaskName("串行任务-2-1");
childTask21.setCreateTime(LocalDateTime.now());
childTask21.setTaskType("test"); childTask21.setTaskType("test");
childTask21.setTaskSort(1); childTask21.setTaskSort(1);
childTask21.setStageId(childStage21.getStageId()); childTask21.setStageId(childStage21.getStageId());
@ -123,6 +142,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
//------------------------------------------------------------------ //------------------------------------------------------------------
PipStage childStage22 = new PipStage(); PipStage childStage22 = new PipStage();
childStage22.setStageName("并行阶段-2-2"); childStage22.setStageName("并行阶段-2-2");
childStage22.setPipelineId(pipeline.getId());
childStage22.setCreateTime(LocalDateTime.now()); childStage22.setCreateTime(LocalDateTime.now());
childStage22.setStageSort(2); childStage22.setStageSort(2);
childStage22.setCode(false); childStage22.setCode(false);
@ -132,6 +152,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
PipTask childTask22 = new PipTask(); PipTask childTask22 = new PipTask();
childTask22.setCreateTime(LocalDateTime.now()); childTask22.setCreateTime(LocalDateTime.now());
childTask22.setTaskName("串行任务-2-2"); childTask22.setTaskName("串行任务-2-2");
childTask22.setPipelineId(pipeline.getId());
childTask22.setTaskType("test"); childTask22.setTaskType("test");
childTask22.setTaskSort(2); childTask22.setTaskSort(2);
childTask22.setStageId(childStage22.getStageId()); childTask22.setStageId(childStage22.getStageId());
@ -147,20 +168,22 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
stageReq3.setCode(true); stageReq3.setCode(true);
stageService.save(stageReq3); stageService.save(stageReq3);
PipStage childStage3 = new PipStage(); PipStage childStage31 = new PipStage();
childStage3.setStageName(""); childStage31.setStageName("并行任务-3-1");
childStage3.setCreateTime(LocalDateTime.now()); childStage31.setPipelineId(pipeline.getId());
childStage3.setStageSort(1); childStage31.setCreateTime(LocalDateTime.now());
childStage3.setCode(false); childStage31.setStageSort(1);
childStage3.setParentId(stageReq3.getStageId()); childStage31.setCode(false);
stageService.save(childStage3); childStage31.setParentId(stageReq3.getStageId());
stageService.save(childStage31);
PipTask childTask31 = new PipTask(); PipTask childTask31 = new PipTask();
childTask31.setCreateTime(LocalDateTime.now()); childTask31.setCreateTime(LocalDateTime.now());
childTask31.setTaskName("串行任务-3-1"); childTask31.setTaskName("串行任务-3-1");
childTask31.setPipelineId(pipeline.getId());
childTask31.setTaskType("test"); childTask31.setTaskType("test");
childTask31.setTaskSort(1); childTask31.setTaskSort(1);
childTask31.setStageId(childStage3.getStageId()); childTask31.setStageId(childStage31.getStageId());
taskService.save(childTask31); taskService.save(childTask31);
//创建第四个阶段 //创建第四个阶段
@ -173,20 +196,22 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
stageReq4.setCode(true); stageReq4.setCode(true);
stageService.save(stageReq4); stageService.save(stageReq4);
PipStage childStage4 = new PipStage(); PipStage childStage41 = new PipStage();
childStage4.setStageName(""); childStage41.setStageName("并行任务-4-1");
childStage4.setCreateTime(LocalDateTime.now()); childStage41.setPipelineId(pipeline.getId());
childStage4.setStageSort(1); childStage41.setCreateTime(LocalDateTime.now());
childStage4.setCode(false); childStage41.setStageSort(1);
childStage4.setParentId(stageReq4.getStageId()); childStage41.setCode(false);
stageService.save(childStage4); childStage41.setParentId(stageReq4.getStageId());
stageService.save(childStage41);
PipTask childTask41 = new PipTask(); PipTask childTask41 = new PipTask();
childTask41.setCreateTime(LocalDateTime.now()); childTask41.setCreateTime(LocalDateTime.now());
childTask41.setTaskName("串行任务-4-1"); childTask41.setTaskName("串行任务-4-1");
childTask41.setPipelineId(pipeline.getId());
childTask41.setTaskType("test"); childTask41.setTaskType("test");
childTask41.setTaskSort(1); childTask41.setTaskSort(1);
childTask41.setStageId(childStage4.getStageId()); childTask41.setStageId(childStage41.getStageId());
taskService.save(childTask41); taskService.save(childTask41);
//TODO 创建对应的鉴权关系 //TODO 创建对应的鉴权关系
@ -230,6 +255,72 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
if (ObjectUtils.isEmpty(pipPipelines)){ if (ObjectUtils.isEmpty(pipPipelines)){
return new ArrayList<>(0); return new ArrayList<>(0);
} }
return PipelineConverter.INSTANCE.toRespList(pipPipelines);
List<PipelineFindResp> respList = PipelineConverter.INSTANCE.toRespList(pipPipelines);
//对流水线进行流水线信息赋值
respList.forEach(this::setStageAndTask);
return respList;
}
private void setStageAndTask(PipelineFindResp o) {
List<StageResp> stageRespList = new ArrayList<>(0);
// stageService.findAllStages(o.getId())
//设置所有阶段属性
PipStage pipStage = new PipStage();
pipStage.setPipelineId(o.getId());
pipStage.setParentId("-1");
List<PipStage> pipStageList = stageService.getPipStageList(pipStage);
if (!CollectionUtils.isEmpty(pipStageList)){
//设置最外层阶段属性
pipStageList.forEach(item -> {
StageResp stageResp = new StageResp();
stageResp.setStageId(item.getStageId());
stageResp.setStageName(item.getStageName());
stageResp.setPipelineId(item.getPipelineId());
// stageResp.setCreateTime();
});
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deletePipeline(String pipelineId) {
if (ObjectUtils.isEmpty(pipelineId)){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"请求参数不能为空");
}
PipPipeline pipeline = pipelineDao.selectById(pipelineId);
if (ObjectUtils.isEmpty(pipeline)){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"流水线不存在");
}
pipelineDao.deleteById(pipelineId);
//根据流水线id查询节点和配置信息
PipStage pipStage = new PipStage();
pipStage.setPipelineId(pipelineId);
List<PipStage> pipStageList = stageService.getPipStageList(pipStage);
if (!CollectionUtils.isEmpty(pipStageList)){
List<String> list = pipStageList.stream().map(PipStage::getStageId).toList();
pipStageDao.deleteByIds(list);
}
PipTask pipTask = new PipTask();
pipTask.setPipelineId(pipelineId);
List<PipTask> task = taskService.getTask(pipTask);
if (!CollectionUtils.isEmpty(task)){
List<String> list = task.stream().map(PipTask::getTaskId).toList();
pipTaskDao.deleteByIds(list);
}
//删除resource表数据
QueryWrapper<PipResource> wrapper = new QueryWrapper<>();
wrapper.eq("pipeline_id",pipelineId);
List<PipResource> pipResources = pipResourceDao.selectList(wrapper);
if (!CollectionUtils.isEmpty(pipResources)){
List<String> list = pipResources.stream().map(PipResource::getId).toList();
pipResourceDao.deleteByIds(list);
}
} }
} }

View File

@ -5,7 +5,6 @@ import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
import cd.casic.ci.common.pipeline.req.stage.StageReq; import cd.casic.ci.common.pipeline.req.stage.StageReq;
import cd.casic.ci.common.pipeline.req.task.TaskCreateReq; import cd.casic.ci.common.pipeline.req.task.TaskCreateReq;
import cd.casic.ci.common.pipeline.resp.stage.StageResp; import cd.casic.ci.common.pipeline.resp.stage.StageResp;
import cd.casic.ci.process.process.dal.pipeline.PipStageDao; import cd.casic.ci.process.process.dal.pipeline.PipStageDao;
import cd.casic.ci.process.process.dataObject.stage.PipStage; import cd.casic.ci.process.process.dataObject.stage.PipStage;
import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.dataObject.task.PipTask;
@ -31,9 +30,6 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import static cd.casic.ci.process.constant.PipelineFinalConstant.TASK_TYPE_CODE;
@Service @Service
public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> implements StageService { public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> implements StageService {
@ -258,7 +254,7 @@ public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> impleme
} }
private List<PipStage> getPipStageList(PipStage pipStage){ public List<PipStage> getPipStageList(PipStage pipStage){
LambdaQueryWrapper<PipStage> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PipStage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotEmpty(pipStage.getStageId()),PipStage::getStageId,pipStage.getStageId()); wrapper.eq(StringUtils.isNotEmpty(pipStage.getStageId()),PipStage::getStageId,pipStage.getStageId());
wrapper.eq(StringUtils.isNotEmpty(pipStage.getPipelineId()),PipStage::getPipelineId,pipStage.getPipelineId()); wrapper.eq(StringUtils.isNotEmpty(pipStage.getPipelineId()),PipStage::getPipelineId,pipStage.getPipelineId());

View File

@ -57,7 +57,7 @@ public class PipelineController {
@PostMapping(path="/deletePipeline") @PostMapping(path="/deletePipeline")
public CommonResult<Void> deletePipeline(@NotNull String pipelineId){ public CommonResult<Void> deletePipeline(@NotNull String pipelineId){
// pipelineService.deletePipeline(pipelineId); pipelineService.deletePipeline(pipelineId);
return CommonResult.success(); return CommonResult.success();
} }