Merge remote-tracking branch 'origin/main'

# Conflicts:
#	flowable/src/main/java/com/sdm/flowable/process/ProcessService.java
This commit is contained in:
2025-12-01 17:58:41 +08:00
16 changed files with 121 additions and 57 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,16 +0,0 @@
package com.sdm.flowable.dto;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class NodeStructureInfo {
protected String id;
protected String name;
protected String type; // 如 "UserTask", "ExclusiveGateway"
protected List<String> nextNodeIds; // 后续节点 ID 列表
protected String executeConfig; // 扩展属性内容
protected Map<String,Object> userParam;// 用户输入参数
}

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,12 +3,12 @@ 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;
@@ -62,7 +62,7 @@ public class ProcessService {
private UniversalDelegate universalDelegate;
@Autowired
IProcessNodeParamService processNodeParamService;
private IProcessNodeParamService processNodeParamService;
// 部署流程前端传入Flowable标准JSON
public SdmResponse<DeployFlowableResp> deploy(ProcessDefinitionDTO processDTO) throws Exception {
@@ -295,6 +295,7 @@ public class ProcessService {
detail.setExecuteConfig(base.getExecuteConfig());
// 动态状态逻辑
String nodeId = node.getId();
HistoricActivityInstance historicActivity = activityMap.get(nodeId);
boolean isActive = activeActivityIds.contains(nodeId);
boolean isFinished = historicActivity != null && historicActivity.getEndTime() != null;