From cc83240309bc44e54799bb0df8c1a877d3ff678a Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Wed, 21 May 2025 10:29:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E6=9B=B4=E6=96=B0task=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/util/util/WebFrameworkUtils.java | 7 +++++++ .../pipeline/req/task/TaskUpdateReq.java | 13 +++++++++++++ .../service/stage/impl/StageServiceImpl.java | 7 +++++-- .../process/service/task/TaskService.java | 3 +++ .../service/task/impl/TaskServiceImpl.java | 19 +++++++++++++++++++ .../server/controller/TasksController.java | 7 +++++++ 6 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskUpdateReq.java diff --git a/framework/commons/src/main/java/cd/casic/framework/commons/util/util/WebFrameworkUtils.java b/framework/commons/src/main/java/cd/casic/framework/commons/util/util/WebFrameworkUtils.java index a1dd8e5c..23be0ef6 100644 --- a/framework/commons/src/main/java/cd/casic/framework/commons/util/util/WebFrameworkUtils.java +++ b/framework/commons/src/main/java/cd/casic/framework/commons/util/util/WebFrameworkUtils.java @@ -114,6 +114,13 @@ public class WebFrameworkUtils { HttpServletRequest request = getRequest(); return getLoginUserId(request); } + public static String getLoginUserIdStr(){ + Long loginUserId = getLoginUserId(); + if (loginUserId!=null) { + return String.valueOf(loginUserId); + } + return ""; + } public static Integer getTerminal() { HttpServletRequest request = getRequest(); diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskUpdateReq.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskUpdateReq.java new file mode 100644 index 00000000..f3205577 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/req/task/TaskUpdateReq.java @@ -0,0 +1,13 @@ +package cd.casic.ci.common.pipeline.req.task; + +import lombok.Data; +import org.json.JSONObject; + +@Data +public class TaskUpdateReq { + // 第二级stageId,如果没有值则新建第二级stage + private String id; + private String taskName; + private String taskType; + private JSONObject taskProperties; +} 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 cfcc9bf2..e01b26ce 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 @@ -96,7 +96,7 @@ public class StageServiceImpl extends ServiceImpl impleme // 添加并行节点 secondStage = new PipStage(); PipStage stageQuery = new PipStage(); - stageQuery.setParentId(firstStageId); + stageQuery.setParentId(firstStage.getId()); stageQuery.setPipelineId(pipelineId); List pipStageList = getPipStageList(stageQuery); if (CollectionUtils.isEmpty(pipStageList)) { @@ -107,7 +107,7 @@ public class StageServiceImpl extends ServiceImpl impleme secondStage.setCreateTime(LocalDateTime.now()); secondStage.setUpdateTime(LocalDateTime.now()); secondStage.setCreator(String.valueOf(loginUserId)); - secondStage.setParentId(firstStageId); + secondStage.setParentId(firstStage.getId()); secondStage.setPipelineId(pipelineId); secondStage.setUpdater(String.valueOf(loginUserId)); save(secondStage); @@ -407,6 +407,9 @@ public class StageServiceImpl extends ServiceImpl impleme List otherStage = findSecondStage(stagesId); List list = new ArrayList<>(); List stageIdList = otherStage.stream().map(PipStage::getId).toList(); + if (stageIdList.isEmpty()) { + throw new ServiceException(GlobalErrorCodeConstants.PIPELINE_ERROR.getCode(),"当前阶段下不存在节点"); + } Map> stageIdTaskMap = taskService.getTaskByStageIdList(stageIdList).stream().collect(Collectors.groupingBy(PipTask::getStageId)); for (PipStage stage : otherStage) { //获取阶段配置及任务 diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/TaskService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/TaskService.java index 4238480e..22b184a9 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/TaskService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/TaskService.java @@ -1,10 +1,12 @@ package cd.casic.ci.process.process.service.task; import cd.casic.ci.common.pipeline.req.stage.StageCreateReq; +import cd.casic.ci.common.pipeline.req.task.TaskUpdateReq; 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 org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -18,4 +20,5 @@ public interface TaskService extends IService { TasksResp getRespById(String taskId); void copyTask(String taskId); + Boolean updateTask(@RequestBody TaskUpdateReq req); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/impl/TaskServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/impl/TaskServiceImpl.java index 89711ed6..9193b05d 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/impl/TaskServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/task/impl/TaskServiceImpl.java @@ -1,6 +1,7 @@ package cd.casic.ci.process.process.service.task.impl; import cd.casic.ci.common.pipeline.annotation.Plugin; +import cd.casic.ci.common.pipeline.req.task.TaskUpdateReq; 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; @@ -8,11 +9,13 @@ 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 cd.casic.framework.commons.util.util.WebFrameworkUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; +import org.json.JSONObject; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.ApplicationContext; @@ -23,6 +26,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -98,4 +103,18 @@ public class TaskServiceImpl extends ServiceImpl implements updateBatchById(updateList); } } + + @Override + public Boolean updateTask(TaskUpdateReq req) { + PipTask byId = getById(req.getId()); + String taskName = req.getTaskName(); + JSONObject taskProperties = req.getTaskProperties(); + String taskType = req.getTaskType(); + byId.setTaskProperties(taskProperties); + byId.setTaskType(taskType); + byId.setTaskName(taskName); + byId.setUpdater(WebFrameworkUtils.getLoginUserIdStr()); + byId.setUpdateTime(LocalDateTime.now()); + return updateById(byId); + } } diff --git a/ops-server/src/main/java/cd/casic/server/controller/TasksController.java b/ops-server/src/main/java/cd/casic/server/controller/TasksController.java index dc647587..f32b636d 100644 --- a/ops-server/src/main/java/cd/casic/server/controller/TasksController.java +++ b/ops-server/src/main/java/cd/casic/server/controller/TasksController.java @@ -1,5 +1,7 @@ package cd.casic.server.controller; +import cd.casic.ci.common.pipeline.req.task.TaskCreateReq; +import cd.casic.ci.common.pipeline.req.task.TaskUpdateReq; import cd.casic.ci.common.pipeline.resp.task.TasksResp; import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.service.task.TaskService; @@ -36,4 +38,9 @@ public class TasksController { taskService.copyTask(taskId); return CommonResult.success(); } + @PostMapping(path="/updateTask") + public CommonResult updateTask(@RequestBody TaskUpdateReq req){ + Boolean b = taskService.updateTask(req); + return CommonResult.success(b); + } }