feat:任务执行流程
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 执行配置父类(带Jackson子类自动识别注解)
|
||||
*/
|
||||
@Data
|
||||
// 核心注解:指定类型识别规则
|
||||
@JsonTypeInfo(
|
||||
use = JsonTypeInfo.Id.NAME, // 用「名称」识别子类
|
||||
include = JsonTypeInfo.As.PROPERTY, // 类型信息作为JSON的一个属性(即executeType字段)
|
||||
property = "executeType", // 类型字段名(必须和JSON中的executeType一致)
|
||||
visible = true, // 必须为true,否则JSON中将不包含executeType字段
|
||||
defaultImpl = DefaultExecuteConfig.class // 默认实现(当executeType不匹配时,用这个类接收,避免报错)
|
||||
)
|
||||
// 核心注解:指定「executeType值」和「子类」的映射关系
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = CloudAppExecuteConfig.class, name = "cloudApp"),
|
||||
@JsonSubTypes.Type(value = LocalAppExecuteConfig.class, name = "localApp"),
|
||||
@JsonSubTypes.Type(value = HPCExecuteConfig.class, name = "HPC"),
|
||||
@JsonSubTypes.Type(value = HttpExecuteConfig.class, name = "http"),
|
||||
@JsonSubTypes.Type(value = DataProcessExecuteConfig.class, name = "dataProcess"),
|
||||
@JsonSubTypes.Type(value = ExportWordScriptExecuteConfig.class, name = "exportWordScript")
|
||||
})
|
||||
public abstract class BaseExecuteConfig {
|
||||
// 公共字段:executeType(子类无需重复定义,父类统一维护)
|
||||
private String executeType;
|
||||
|
||||
// 用于标记是否异步回调,处理长耗时任务,默认是false 表示当前执行节点是同步执行
|
||||
private boolean asyncCallback = false;
|
||||
// 用于标记回调节点ID,当asyncCallback为true时,表示当前执行节点是异步执行,执行完成后需要回调的节点ID,一般就是receiveTaskId
|
||||
private String callbackNodeId;
|
||||
|
||||
// 是否需要等待用户手动提交执行,
|
||||
// 默认是false,表示不需要等待用户手动提交执行
|
||||
// true: 流程到此停止,创建人工输入任务,等待用户点击执行
|
||||
private boolean waitUser = false;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
public class CloudAppExecuteConfig extends BaseExecuteConfig {
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* DATA_PROCESS类型执行配置(executeType=dataProcess)
|
||||
*/
|
||||
@Data
|
||||
public class DataProcessExecuteConfig extends BaseExecuteConfig {
|
||||
private String processRule; // 数据处理规则(如mergeAndFilter)
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 默认执行配置(executeType不匹配时使用)
|
||||
*/
|
||||
@Data
|
||||
public class DefaultExecuteConfig extends BaseExecuteConfig {
|
||||
// 空实现,仅用于兼容未知执行类型
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
public class ExportWordScriptExecuteConfig extends BaseExecuteConfig {
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
public class HPCExecuteConfig extends BaseExecuteConfig {
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* HTTP类型执行配置(executeType=http)
|
||||
*/
|
||||
@Data
|
||||
public class HttpExecuteConfig extends BaseExecuteConfig {
|
||||
private String httpMethod; // 请求方法(GET/POST)
|
||||
private String httpUrl; // 请求地址
|
||||
private Map<String, String> headers; // 请求头(键值对)
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.sdm.flowable.config.executeConfig;
|
||||
|
||||
public class LocalAppExecuteConfig extends BaseExecuteConfig {
|
||||
}
|
||||
@@ -5,16 +5,17 @@ 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.flowable.dto.ProcessDefinitionDTO;
|
||||
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.flowable.dto.resp.DeployFlowableResp;
|
||||
import com.sdm.common.entity.resp.flowable.DeployFlowableResp;
|
||||
import com.sdm.flowable.dto.resp.ProcessInstanceDetailResponse;
|
||||
import com.sdm.flowable.process.ProcessService;
|
||||
import com.sdm.flowable.service.IProcessNodeParamService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.validation.ValidationError;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.sdm.flowable.delegate;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.flowable.constants.FlowableConfig;
|
||||
import com.sdm.flowable.delegate.handler.ExecutionHandler;
|
||||
import com.sdm.flowable.dto.req.AsyncCallbackRequest;
|
||||
@@ -13,7 +12,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.flowable.engine.delegate.JavaDelegate;
|
||||
import org.flowable.engine.runtime.Execution;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.flowable.delegate.handler;
|
||||
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.flowable.delegate.handler;
|
||||
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.flowable.delegate.handler;
|
||||
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.sdm.flowable.delegate.handler;
|
||||
import com.sdm.common.entity.req.data.UploadFilesReq;
|
||||
import com.sdm.common.feign.inter.data.IDataFeignClient;
|
||||
import com.sdm.common.utils.RandomUtil;
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.sdm.flowable.delegate.handler;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.pbs.SubmitHpcTaskRemoteReq;
|
||||
import com.sdm.common.feign.inter.pbs.ITaskFeignClient;
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.flowable.service.IAsyncTaskRecordService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.flowable.delegate.handler;
|
||||
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.flowable.delegate.handler;
|
||||
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.sdm.flowable.dto;
|
||||
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 扩展配置DTO(serviceTask等需要执行配置的节点使用)
|
||||
*/
|
||||
@Data
|
||||
public class ExtensionElementsDTO {
|
||||
/**
|
||||
* 执行配置(核心字段,对应executeConfig)
|
||||
*/
|
||||
private BaseExecuteConfig executeConfig;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package com.sdm.flowable.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流元素DTO(统一接收节点和连线,通过type区分)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true) // 忽略不同类型的多余字段(关键)
|
||||
public class FlowElementDTO {
|
||||
// ------------------------------ 所有流元素通用字段 ------------------------------
|
||||
/** 元素唯一ID(流程内不重复) */
|
||||
private String id;
|
||||
/** 元素类型:startEvent/serviceTask/userTask/endEvent/sequenceFlow */
|
||||
private String type;
|
||||
/** 元素显示名称 */
|
||||
private String name;
|
||||
|
||||
// ------------------------------ 节点专属字段(startEvent/serviceTask/userTask/endEvent) ------------------------------
|
||||
/** 入连线ID集合(仅节点有) */
|
||||
private List<String> incomingFlows;
|
||||
/** 出连线ID集合(仅节点有) */
|
||||
private List<String> outgoingFlows;
|
||||
/** 扩展配置(serviceTask等需要执行配置的节点使用) */
|
||||
private ExtensionElementsDTO extensionElements;
|
||||
|
||||
// ------------------------------ 连线专属字段(sequenceFlow) ------------------------------
|
||||
/** 源节点ID(仅连线有) */
|
||||
private String sourceRef;
|
||||
/** 目标节点ID(仅连线有) */
|
||||
private String targetRef;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.sdm.flowable.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 流程基础信息DTO(对应JSON中的process字段)
|
||||
*/
|
||||
@Data
|
||||
public class ProcessDTO {
|
||||
/** 流程唯一ID(必填) */
|
||||
private String id;
|
||||
/** 流程名称(必填) */
|
||||
private String name;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.sdm.flowable.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程定义顶层DTO(对应整个JSON)
|
||||
*/
|
||||
@Data
|
||||
public class ProcessDefinitionDTO {
|
||||
/** 流程核心信息 */
|
||||
private ProcessDTO process;
|
||||
/** 所有节点+连线集合 */
|
||||
private List<FlowElementDTO> flowElements;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.sdm.flowable.dto.resp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DeployFlowableResp {
|
||||
String processDefinitionId;
|
||||
String processDefinitionKey;
|
||||
}
|
||||
@@ -5,11 +5,11 @@ 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.ProcessDefinitionDTO;
|
||||
import com.sdm.flowable.dto.ProcessInstanceInfo;
|
||||
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
|
||||
import com.sdm.flowable.dto.req.AsyncCallbackRequest;
|
||||
import com.sdm.flowable.dto.resp.DeployFlowableResp;
|
||||
import com.sdm.flowable.dto.resp.ProcessInstanceDetailResponse;
|
||||
import com.sdm.common.entity.resp.flowable.DeployFlowableResp;
|
||||
import com.sdm.flowable.enums.FlowElementTypeEnums;
|
||||
import com.sdm.flowable.util.Dto2BpmnConverter;
|
||||
import com.sdm.flowable.dto.req.CompleteTaskReq;
|
||||
|
||||
@@ -2,14 +2,11 @@ package com.sdm.flowable.util;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.sdm.flowable.dto.FlowElementDTO;
|
||||
import com.sdm.flowable.dto.ProcessDefinitionDTO;
|
||||
import com.sdm.flowable.config.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.common.entity.flowable.dto.FlowElementDTO;
|
||||
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
|
||||
import com.sdm.common.entity.flowable.executeConfig.BaseExecuteConfig;
|
||||
import com.sdm.flowable.constants.FlowableConfig;
|
||||
import com.sdm.flowable.dto.FlowElementDTO;
|
||||
import com.sdm.flowable.dto.ProcessDefinitionDTO;
|
||||
import com.sdm.flowable.enums.FlowElementTypeEnums;
|
||||
import com.sdm.flowable.util.FlowNodeIdUtils;
|
||||
import org.flowable.bpmn.model.*;
|
||||
import org.flowable.bpmn.model.Process;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
Reference in New Issue
Block a user