feat:任务执行流程

This commit is contained in:
2025-12-01 16:49:19 +08:00
parent debfa7cb93
commit 3154698e07
16 changed files with 123 additions and 56 deletions

View File

@@ -4,14 +4,14 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.feign.inter.flowable.IFlowableFeignClient;
import com.sdm.flowable.delegate.handler.HpcHandler;
import com.sdm.flowable.dto.NodeStructureInfo;
import com.sdm.common.entity.flowable.dto.NodeStructureInfo;
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
import com.sdm.flowable.dto.req.AsyncCallbackRequest;
import com.sdm.flowable.dto.req.CompleteTaskReq;
import com.sdm.flowable.dto.req.RetryRequest;
import com.sdm.common.entity.resp.flowable.ProcessInstanceResp;
import com.sdm.common.entity.resp.flowable.DeployFlowableResp;
import com.sdm.flowable.dto.resp.ProcessInstanceDetailResponse;
import com.sdm.common.entity.resp.flowable.ProcessInstanceDetailResponse;
import com.sdm.flowable.process.ProcessService;
import com.sdm.flowable.service.IProcessNodeParamService;
import lombok.extern.slf4j.Slf4j;

View File

@@ -1,18 +0,0 @@
package com.sdm.flowable.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class NodeDetailInfo extends NodeStructureInfo{
private String status; // "active" | "finished" | "pending"
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
private Long durationInMillis;
private String durationFormatted;
}

View File

@@ -1,14 +0,0 @@
package com.sdm.flowable.dto;
import lombok.Data;
import java.util.List;
@Data
public class NodeStructureInfo {
protected String id;
protected String name;
protected String type; // 如 "UserTask", "ExclusiveGateway"
protected List<String> nextNodeIds; // 后续节点 ID 列表
protected String executeConfig; // 扩展属性内容
}

View File

@@ -1,20 +0,0 @@
package com.sdm.flowable.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class ProcessInstanceInfo {
private String processInstanceId;
private String processDefinitionId;
private String businessKey;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
private Long durationInMillis;
private String durationFormatted;
private String status; // "running" 或 "completed"
}

View File

@@ -1,13 +0,0 @@
package com.sdm.flowable.dto.resp;
import com.sdm.flowable.dto.NodeDetailInfo;
import com.sdm.flowable.dto.ProcessInstanceInfo;
import lombok.Data;
import java.util.List;
@Data
public class ProcessInstanceDetailResponse {
private ProcessInstanceInfo processInfo;
private List<NodeDetailInfo> nodes;
}

View File

@@ -3,14 +3,15 @@ package com.sdm.flowable.process;
import com.sdm.common.common.SdmResponse;
import com.sdm.flowable.constants.FlowableConfig;
import com.sdm.flowable.delegate.UniversalDelegate;
import com.sdm.flowable.dto.NodeDetailInfo;
import com.sdm.flowable.dto.NodeStructureInfo;
import com.sdm.flowable.dto.ProcessInstanceInfo;
import com.sdm.common.entity.flowable.dto.NodeDetailInfo;
import com.sdm.common.entity.flowable.dto.NodeStructureInfo;
import com.sdm.common.entity.flowable.dto.ProcessInstanceInfo;
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
import com.sdm.flowable.dto.req.AsyncCallbackRequest;
import com.sdm.flowable.dto.resp.ProcessInstanceDetailResponse;
import com.sdm.common.entity.resp.flowable.ProcessInstanceDetailResponse;
import com.sdm.common.entity.resp.flowable.DeployFlowableResp;
import com.sdm.flowable.enums.FlowElementTypeEnums;
import com.sdm.flowable.service.IProcessNodeParamService;
import com.sdm.flowable.util.Dto2BpmnConverter;
import com.sdm.flowable.dto.req.CompleteTaskReq;
import com.sdm.flowable.util.FlowNodeIdUtils;
@@ -60,6 +61,9 @@ public class ProcessService {
@Autowired
private UniversalDelegate universalDelegate;
@Autowired
private IProcessNodeParamService processNodeParamService;
// 部署流程前端传入Flowable标准JSON
public SdmResponse<DeployFlowableResp> deploy(ProcessDefinitionDTO processDTO) throws Exception {
log.info("开始部署流程定义");