复制task

This commit is contained in:
even 2025-05-15 16:15:24 +08:00
parent b71023318b
commit a61c7626ad
3 changed files with 49 additions and 12 deletions

View File

@ -3,6 +3,7 @@ package cd.casic.ci.process.process.service.task;
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
import cd.casic.ci.common.pipeline.resp.task.TasksResp;
import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.framework.commons.pojo.CommonResult;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@ -11,8 +12,9 @@ public interface TaskService extends IService<PipTask> {
/**
* 查询taskType是否存在原项目的各种worker
* */
public void taskTypeExist(String taskType);
void taskTypeExist(String taskType);
List<PipTask> getTask(PipTask pipTask);
public TasksResp getById(String taskId);
TasksResp getRespById(String taskId);
void copyTask(String taskId);
}

View File

@ -5,6 +5,7 @@ import cd.casic.ci.common.pipeline.resp.task.TasksResp;
import cd.casic.ci.process.process.dal.pipeline.PipStageDao;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.service.stage.StageService;
import cd.casic.ci.process.process.service.task.TaskService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -18,10 +19,12 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
import org.springframework.core.type.filter.AnnotationTypeFilter;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@ -33,12 +36,6 @@ public class TaskServiceImpl extends ServiceImpl<PipTaskDao, PipTask> implements
private Set<BeanDefinition> candidates;
@Resource
private PipTaskDao taskDao;
@Resource
private PipStageDao stageDao;
public TaskServiceImpl() {
System.out.println("");
}
@PostConstruct
public void init(){
@ -65,7 +62,7 @@ public class TaskServiceImpl extends ServiceImpl<PipTaskDao, PipTask> implements
return taskDao.selectList(wrapper);
}
@Override
public TasksResp getById(String taskId){
public TasksResp getRespById(String taskId){
PipTask pipTask = new PipTask();
pipTask.setTaskId(taskId);
List<PipTask> taskList = getTask(pipTask);
@ -76,4 +73,35 @@ public class TaskServiceImpl extends ServiceImpl<PipTaskDao, PipTask> implements
BeanUtils.copyProperties(taskList.get(0),tasksResp);
return tasksResp;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void copyTask(String taskId) {
PipTask sourceTask = getById(taskId);
if (sourceTask == null) {
return;
}
String stageId = sourceTask.getStageId();
PipTask query = new PipTask();
query.setStageId(stageId);
List<PipTask> sameLevelTaskList = getTask(query);
if (CollectionUtils.isEmpty(sameLevelTaskList)) {
return;
}
List<PipTask> updateList = new ArrayList<>(sameLevelTaskList.size());
for (PipTask pipTask : sameLevelTaskList) {
if (!pipTask.getTaskId().equals(sourceTask.getTaskId())) {
if (pipTask.getTaskSort()>sourceTask.getTaskSort()) {
pipTask.setTaskSort(pipTask.getTaskSort()+1);
updateList.add(pipTask);
}
}
}
sourceTask.setTaskSort(sourceTask.getTaskSort()+1);
sourceTask.setTaskId(null);
save(sourceTask);
if (!CollectionUtils.isEmpty(updateList)) {
updateBatchById(updateList);
}
}
}

View File

@ -6,7 +6,9 @@ import cd.casic.ci.process.process.service.task.TaskService;
import cd.casic.framework.commons.pojo.CommonResult;
import com.alibaba.fastjson.JSON;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@ -25,8 +27,13 @@ public class TasksController {
* @pi.request-type: formdata
* @pi.param: name=taskId;dataType=string;value=taskId;
*/
@RequestMapping(path="/findOneTasksOrTask",method = RequestMethod.POST)
@PostMapping(path="/findOneTasksOrTask")
public CommonResult<TasksResp> findOneTasksOrTask(@NotNull String taskId){
return CommonResult.success(taskService.getById(taskId));
return CommonResult.success(taskService.getRespById(taskId));
}
@PostMapping(path="/copyTask")
public CommonResult<Void> copyTask(@NotEmpty String taskId){
taskService.copyTask(taskId);
return CommonResult.success();
}
}