添加日志与查找记录

This commit is contained in:
even 2025-05-22 10:07:28 +08:00
parent 1ee523dc21
commit 6f71097592
8 changed files with 80 additions and 1 deletions

View File

@ -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;
}

View File

@ -0,0 +1,5 @@
package cd.casic.ci.process.engine.constant;
public class EngineRuntimeConstant {
public static final String LOG_KEY = "logContent";
}

View File

@ -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;
}

View File

@ -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<PipStage> {
/**
@ -82,4 +85,5 @@ public interface StageService extends IService<PipStage> {
void copyStage(@NotEmpty String stageId);
void deleteFirstStage(String stageId);
Map<String, RunContextResp> getStageRunState(@PathVariable String stageId);
}

View File

@ -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<PipStageDao, PipStage> 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<PipStageDao, PipStage> impleme
stageDao.deleteById(stageId);
}
@Override
public Map<String, RunContextResp> getStageRunState(String stageId) {
PipStage byId = getById(stageId);
Map<String, RunContextResp> result = new HashMap<>();
if (byId==null||"-1".equals(byId.getParentId())) {
log.error("传入stageId非阶段id");
return result;
}
List<PipStage> secondStage = findSecondStageAndTask(stageId);
for (PipStage stage : secondStage) {
String id = stage.getId();
List<PipTask> 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<PipStage> findSecondStageAndTask(String stagesId){
List<PipStage> otherStage = findSecondStage(stagesId);
List<PipStage> list = new ArrayList<>();

View File

@ -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<PipTask> {
void copyTask(String taskId);
Boolean updateTask(@RequestBody TaskUpdateReq req);
CommonResult<String> getLogContentByTaskId(@PathVariable String taskId);
}

View File

@ -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<Map<String, RunContextResp> > getStageRunState(@PathVariable String stageId){
return CommonResult.success(stageService.getStageRunState(stageId));
}
}

View File

@ -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<PipPipelineTaskLog> getLogContentByTaskId(@PathVariable String taskId){
return null;
}
}