From 81b7533da5300e6be15edfcac35e6725ee5228cb Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Thu, 15 May 2025 09:30:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=8A=82=E7=82=B9=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pipeline/req/stage/StageCreateReq.java | 10 +- .../pipeline/req/task/TaskCreateReq.java | 1 + .../process/dataObject/stage/PipStage.java | 22 +--- .../process/service/stage/StageService.java | 5 +- .../service/stage/impl/StageServiceImpl.java | 113 +++++------------- .../server/controller/StageController.java | 5 +- 6 files changed, 47 insertions(+), 109 deletions(-) diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/stage/StageCreateReq.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/stage/StageCreateReq.java index 93ecddb..dbab0d7 100644 --- a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/stage/StageCreateReq.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/stage/StageCreateReq.java @@ -5,13 +5,9 @@ import lombok.Data; @Data public class StageCreateReq { - //@ApiProperty(name = "stageId",desc="id") + // 阶段stageId private String stageId; - //@ApiProperty(name="pipelineId",desc="流水线id") - private String pipelineId; - //@ApiProperty(name="stageSort",desc="阶段顺序") - private int stageSort; - //@ApiProperty(name = "parentId",desc="主阶段") - private String parentId; + // 如果需要新增阶段则传这个 + private Integer stageSort; private TaskCreateReq task; } diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskCreateReq.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskCreateReq.java index 84481dc..99fa108 100644 --- a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskCreateReq.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskCreateReq.java @@ -4,6 +4,7 @@ import lombok.Data; import org.json.JSONObject; @Data public class TaskCreateReq { + // 第二级stageId,如果没有值则新建第二级stage private String stageId; private String taskName; private String pipelineId; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/stage/PipStage.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/stage/PipStage.java index b20d369..f065bc7 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/stage/PipStage.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/stage/PipStage.java @@ -1,6 +1,9 @@ package cd.casic.ci.process.process.dataObject.stage; import cd.casic.ci.process.process.dataObject.task.PipTask; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import java.time.LocalDateTime; @@ -8,6 +11,7 @@ import java.util.List; @Data public class PipStage { //@ApiProperty(name = "stageId",desc="id") + @TableId(type = IdType.ASSIGN_ID) private String stageId; //@ApiProperty(name = "stageName",desc="名称") @@ -29,26 +33,12 @@ public class PipStage { private boolean code = false; //@ApiProperty(name = "taskValues",desc="阶段任务") + @TableField(exist = false) private List taskValues; //@ApiProperty(name = "stageList",desc="阶段") + @TableField(exist = false) private List stageList; - - //@ApiProperty(name = "taskType",desc="任务类型") - private String taskType; - - //@ApiProperty(name = "taskId",desc="任务id") - private String taskId; - - //@ApiProperty(name = "values",desc="更新内容") - private Object values; - - //@ApiProperty(name = "taskSort",desc="任务顺序") - private int taskSort; - - //@ApiProperty(name = "parallelName",desc="并行阶段名称") - private String parallelName; - // 执行实例id private String instanceId; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/StageService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/StageService.java index fb3a641..8314cfb 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/StageService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/StageService.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.process.service.stage; +import cd.casic.ci.common.pipeline.req.stage.StageCreateReq; import cd.casic.ci.common.pipeline.req.stage.StageReq; import cd.casic.ci.common.pipeline.resp.stage.StageResp; import cd.casic.ci.process.process.dataObject.stage.PipStage; @@ -15,7 +16,7 @@ public interface StageService extends IService { * @param stage 阶段信息 * @return 阶段id */ - String createStagesOrTask(StageReq stage); + String createStagesOrTask(StageCreateReq stage); /** @@ -128,6 +129,6 @@ public interface StageService extends IService { List findAllStagesList(List idList); - void createStagesOrTaskList(@Valid @NotNull List stageList); + void createStagesOrTaskList(@Valid @NotNull List stageList); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/impl/StageServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/impl/StageServiceImpl.java index 0b5aad4..533c1f9 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/impl/StageServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/stage/impl/StageServiceImpl.java @@ -1,7 +1,9 @@ package cd.casic.ci.process.process.service.stage.impl; +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.task.TaskCreateReq; import cd.casic.ci.common.pipeline.resp.stage.StageResp; import cd.casic.ci.process.process.dal.pipeline.PipStageDao; @@ -18,6 +20,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.json.JSONObject; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -38,86 +41,34 @@ public class StageServiceImpl extends ServiceImpl impleme private PipStageDao stageDao; @Override - public String createStagesOrTask(StageReq stageReq) { - PipStage stage = new PipStage(); - BeanUtils.copyProperties(stageReq,stage); - String stagesId = stage.getStageId(); - String pipelineId = stage.getPipelineId(); + public String createStagesOrTask(StageCreateReq stageReq) { + String firstStageId = stageReq.getStageId(); + Integer stageSort = stageReq.getStageSort(); + TaskCreateReq task = stageReq.getTask(); + String taskName = task.getTaskName(); + String secondStageId = task.getStageId(); + JSONObject taskProperties = task.getTaskProperties(); + String taskType = task.getTaskType(); + String taskSort = task.getTaskSort(); + String pipelineId = task.getPipelineId(); + PipStage firstStage = null; + // 判断是否需要新建阶段,如果没有传第一级tageId而传了sort就是需要创建阶段 + if (StringUtils.isEmpty(firstStageId)) { + // 新建stage + firstStage = new PipStage(); + firstStage.setStageName("阶段-"+stageSort); + if (stageSort == null) { + throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"参数有误"); + } + firstStage.setStageSort(stageSort); + firstStage.setCreateTime(LocalDateTime.now()); + firstStage.setParentId("-1"); + firstStage.setPipelineId(pipelineId); +// firstStage + } else { - String taskType = stage.getTaskType(); - int stageSort = stage.getStageSort(); - - stage.setCreateTime(LocalDateTime.now()); - - PipTask tasks = new PipTask(); - tasks.setTaskType(taskType); - tasks.setTaskSort(1); - // TODO 查询是否为已知worker - taskService.taskTypeExist(taskType); - //是否为源码 - if (TASK_TYPE_CODE.equals(taskType)){ - //判断是否存在代码源(目标)节点 - findTargetTasks(pipelineId); - - //创建根节点 - int initStage = initStage(pipelineId,1); - stage.setCode(true); - stage.setStageSort(1); - stage.setPipelineId(pipelineId); - stage.setStageName("阶段-"+initStage); - String id = createStages(stage); - - //从节点 - PipStage stages = new PipStage(); - stages.setStageSort(1); - stages.setParentId(id); - stages.setStageName("源码"); - stagesId = createStages(stages); - tasks.setStageId(stagesId); - - return taskService.createTasksOrTask(tasks); } - - //新任务 - if (!StringUtils.isNotEmpty(stagesId) && stageSort != 0){ - //创建主节点 - int initStage = initStage(pipelineId, stageSort); - stage.setStageSort(initStage); - stage.setPipelineId(pipelineId); - stage.setStageName("阶段-" + initStage); - String id = createStages(stage); - - //创建从节点 - PipStage stages = new PipStage(); - stages.setParentId(id); - stages.setStageSort(1); - stages.setStageName("并行阶段-"+initStage+"-" + 1); - stagesId = createStages(stages); - tasks.setStageId(stagesId); - return taskService.createTasksOrTask(tasks); - } - - //并行任务 - if (StringUtils.isNotEmpty(stagesId)&& stageSort == 0){ - List otherStage = findSecondStage(stagesId); - PipStage oneStages = findOneStages(stagesId); - PipStage stages = new PipStage(); - stages.setParentId(stagesId); - stages.setStageSort(otherStage.size() + 1); - stages.setStageName("并行阶段-"+oneStages.getStageSort()+"-"+(otherStage.size()+1)); - stagesId = createStages(stages); - tasks.setStageId(stagesId); - return taskService.createTasksOrTask(tasks); - } - - //串行任务 - int sort = stage.getTaskSort(); - if (sort != 0){ - tasks.setTaskSort(sort); - tasks.setStageId(stagesId); - return taskService.createTasksOrTask(tasks); - } - throw new ServiceException(50001,"未知的操作类型"); + return null; } /** * 更新主节点阶段顺序 @@ -307,11 +258,9 @@ public class StageServiceImpl extends ServiceImpl impleme } @Override - public void createStagesOrTaskList(List stageList) { + public void createStagesOrTaskList(List stageList) { if (!ObjectUtils.isEmpty(stageList)){ - stageList.forEach(o->{ - this.createStagesOrTask(o); - }); + stageList.forEach(this::createStagesOrTask); } } diff --git a/ops-server/src/main/java/cd/casic/server/controller/StageController.java b/ops-server/src/main/java/cd/casic/server/controller/StageController.java index 0de9ffe..e7e5489 100644 --- a/ops-server/src/main/java/cd/casic/server/controller/StageController.java +++ b/ops-server/src/main/java/cd/casic/server/controller/StageController.java @@ -1,5 +1,6 @@ package cd.casic.server.controller; +import cd.casic.ci.common.pipeline.req.stage.StageCreateReq; import cd.casic.ci.common.pipeline.req.stage.StageReq; import cd.casic.ci.common.pipeline.resp.stage.StageResp; import cd.casic.ci.process.process.service.stage.StageService; @@ -41,14 +42,14 @@ public class StageController { * @pi.param: model=stage */ @RequestMapping(path="/createStage",method = RequestMethod.POST) - public CommonResult createStagesOrTask(@RequestBody @Valid @NotNull StageReq stage){ + public CommonResult createStagesOrTask(@RequestBody @Valid @NotNull StageCreateReq stage){ String taskId = stageService.createStagesOrTask(stage); return CommonResult.success(taskId); } @RequestMapping(path="/createStageList",method = RequestMethod.POST) - public CommonResult createStagesOrTaskList(@RequestBody @Valid @NotNull List stageList){ + public CommonResult createStagesOrTaskList(@RequestBody @Valid @NotNull List stageList){ stageService.createStagesOrTaskList(stageList); return CommonResult.success(); }