From 6f71097592a3df3388072c37721b6be1eeddc978 Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Thu, 22 May 2025 10:07:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E4=B8=8E?= =?UTF-8?q?=E6=9F=A5=E6=89=BE=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pipeline/resp/context/RunContextResp.java | 10 ++++++ .../constant/EngineRuntimeConstant.java | 5 +++ .../dataObject/log/PipPipelineTaskLog.java | 13 +++++++ .../process/service/stage/StageService.java | 4 +++ .../service/stage/impl/StageServiceImpl.java | 34 +++++++++++++++++++ .../process/service/task/TaskService.java | 2 ++ .../server/controller/StageController.java | 8 ++++- .../server/controller/TasksController.java | 5 +++ 8 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/RunContextResp.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/EngineRuntimeConstant.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/log/PipPipelineTaskLog.java diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/RunContextResp.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/RunContextResp.java new file mode 100644 index 00000000..b127dbdf --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/RunContextResp.java @@ -0,0 +1,10 @@ +package cd.casic.ci.common.pipeline.resp.context; + +import lombok.Data; + +import java.util.List; +@Data +public class RunContextResp { + private String id; + private Integer state; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/EngineRuntimeConstant.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/EngineRuntimeConstant.java new file mode 100644 index 00000000..e1e46406 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/EngineRuntimeConstant.java @@ -0,0 +1,5 @@ +package cd.casic.ci.process.engine.constant; + +public class EngineRuntimeConstant { + public static final String LOG_KEY = "logContent"; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/log/PipPipelineTaskLog.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/log/PipPipelineTaskLog.java new file mode 100644 index 00000000..0b18519b --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/log/PipPipelineTaskLog.java @@ -0,0 +1,13 @@ +package cd.casic.ci.process.process.dataObject.log; + +import cd.casic.framework.commons.dataobject.BaseDO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class PipPipelineTaskLog extends BaseDO { + private String taskId; + private String content; + private String id; +} 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 d33cb1b9..a23f4743 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 @@ -2,12 +2,15 @@ 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.StageUpdateReq; +import cd.casic.ci.common.pipeline.resp.context.RunContextResp; import cd.casic.ci.common.pipeline.resp.stage.StageResp; import cd.casic.ci.process.process.dataObject.stage.PipStage; import com.baomidou.mybatisplus.extension.service.IService; import jakarta.validation.constraints.NotEmpty; +import org.springframework.web.bind.annotation.PathVariable; import java.util.List; +import java.util.Map; public interface StageService extends IService { /** @@ -82,4 +85,5 @@ public interface StageService extends IService { void copyStage(@NotEmpty String stageId); void deleteFirstStage(String stageId); + Map getStageRunState(@PathVariable String stageId); } 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 378958bc..76e1d51a 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 @@ -4,7 +4,10 @@ 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.StageUpdateReq; import cd.casic.ci.common.pipeline.req.task.TaskCreateReq; +import cd.casic.ci.common.pipeline.resp.context.RunContextResp; import cd.casic.ci.common.pipeline.resp.stage.StageResp; +import cd.casic.ci.process.engine.manager.RunContextManager; +import cd.casic.ci.process.engine.runContext.BaseRunContext; 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.task.PipTask; @@ -34,6 +37,8 @@ public class StageServiceImpl extends ServiceImpl impleme private TaskService taskService; @Resource private PipStageDao stageDao; + @Resource + private RunContextManager contextManager; @Transactional(rollbackFor = Exception.class) @Override public String createStagesOrTask(StageCreateReq stageReq) { @@ -403,6 +408,35 @@ public class StageServiceImpl extends ServiceImpl impleme stageDao.deleteById(stageId); } + @Override + public Map getStageRunState(String stageId) { + PipStage byId = getById(stageId); + Map result = new HashMap<>(); + if (byId==null||"-1".equals(byId.getParentId())) { + log.error("传入stageId非阶段id"); + return result; + } + List secondStage = findSecondStageAndTask(stageId); + + for (PipStage stage : secondStage) { + String id = stage.getId(); + List taskValues = stage.getTaskValues(); + for (PipTask taskValue : taskValues) { + BaseRunContext context = contextManager.getContext(taskValue.getId()); + if (context==null) { + break; + } + String taskId = taskValue.getId(); + int state = context.getState().get(); + RunContextResp runContextResp = new RunContextResp(); + runContextResp.setState(state); + runContextResp.setId(taskId); + result.put(taskId,runContextResp); + } + } + return result; + } + public List findSecondStageAndTask(String stagesId){ List otherStage = findSecondStage(stagesId); List list = new ArrayList<>(); 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 22b184a9..6200a401 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 @@ -6,6 +6,7 @@ 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.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -21,4 +22,5 @@ public interface TaskService extends IService { void copyTask(String taskId); Boolean updateTask(@RequestBody TaskUpdateReq req); + CommonResult getLogContentByTaskId(@PathVariable String taskId); } 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 b0171014..7b239d01 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,7 +1,9 @@ package cd.casic.server.controller; +import cd.casic.ci.common.pipeline.container.Stage; import cd.casic.ci.common.pipeline.req.stage.StageCreateReq; import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq; +import cd.casic.ci.common.pipeline.resp.context.RunContextResp; import cd.casic.ci.common.pipeline.resp.stage.StageResp; import cd.casic.ci.process.process.service.stage.StageService; import cd.casic.framework.commons.pojo.CommonResult; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * @pi.protocol: http @@ -93,7 +96,10 @@ public class StageController { stageService.deleteFirstStage(stageId); return CommonResult.success(); } - + @PostMapping("/getStageRunState/{stageId}") + public CommonResult > getStageRunState(@PathVariable String stageId){ + return CommonResult.success(stageService.getStageRunState(stageId)); + } } 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 f32b636d..a2277716 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 @@ -3,6 +3,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.log.PipPipelineTaskLog; import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.service.task.TaskService; import cd.casic.framework.commons.pojo.CommonResult; @@ -43,4 +44,8 @@ public class TasksController { Boolean b = taskService.updateTask(req); return CommonResult.success(b); } + @PostMapping("/getLogContentByTaskId/{taskId}") + public CommonResult getLogContentByTaskId(@PathVariable String taskId){ + return null; + } }