diff --git a/flowable/src/main/java/com/sdm/flowable/delegate/UniversalDelegate.java b/flowable/src/main/java/com/sdm/flowable/delegate/UniversalDelegate.java index 9ec1fb2c..7f46750c 100644 --- a/flowable/src/main/java/com/sdm/flowable/delegate/UniversalDelegate.java +++ b/flowable/src/main/java/com/sdm/flowable/delegate/UniversalDelegate.java @@ -43,6 +43,7 @@ public class UniversalDelegate implements JavaDelegate { public void execute(DelegateExecution execution) { try { // 1. 获取当前节点信息 + String processDefinitionId = execution.getProcessDefinitionId(); String procInstId = execution.getProcessInstanceId(); String nodeId = execution.getCurrentActivityId(); String nodeName = execution.getCurrentFlowElement().getName(); @@ -50,7 +51,7 @@ public class UniversalDelegate implements JavaDelegate { log.info("开始执行节点, 流程实例ID: {}, 节点ID: {}, 节点名称: {}", procInstId, nodeId, nodeName); // 2. 读取输入参数 - Map params = processNodeParamService.getParam(procInstId, nodeId); + Map params = processNodeParamService.getParam(processDefinitionId, nodeId); log.info("节点执行参数, 流程实例ID: {}, 节点ID: {}, 参数: {}", procInstId, nodeId, params); diff --git a/flowable/src/main/java/com/sdm/flowable/dto/NodeStructureInfo.java b/flowable/src/main/java/com/sdm/flowable/dto/NodeStructureInfo.java index 3d451c9c..c1d0f5f8 100644 --- a/flowable/src/main/java/com/sdm/flowable/dto/NodeStructureInfo.java +++ b/flowable/src/main/java/com/sdm/flowable/dto/NodeStructureInfo.java @@ -3,6 +3,7 @@ package com.sdm.flowable.dto; import lombok.Data; import java.util.List; +import java.util.Map; @Data public class NodeStructureInfo { @@ -11,4 +12,5 @@ public class NodeStructureInfo { protected String type; // 如 "UserTask", "ExclusiveGateway" protected List nextNodeIds; // 后续节点 ID 列表 protected String executeConfig; // 扩展属性内容 + protected Map userParam;// 用户输入参数 } diff --git a/flowable/src/main/java/com/sdm/flowable/process/ProcessService.java b/flowable/src/main/java/com/sdm/flowable/process/ProcessService.java index 3e3ca3bb..1cc4b9b4 100644 --- a/flowable/src/main/java/com/sdm/flowable/process/ProcessService.java +++ b/flowable/src/main/java/com/sdm/flowable/process/ProcessService.java @@ -11,6 +11,7 @@ import com.sdm.flowable.dto.req.AsyncCallbackRequest; 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.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 + IProcessNodeParamService processNodeParamService; + // 部署流程(前端传入Flowable标准JSON) public SdmResponse deploy(ProcessDefinitionDTO processDTO) throws Exception { log.info("开始部署流程定义"); @@ -259,7 +263,7 @@ public class ProcessService { // 按有序节点构建详情 return orderedNodes.stream() - .map(node -> buildNodeDetailInfo(node, activityMap, activeActivityIds)) + .map(node -> buildNodeDetailInfo(node,processDefinitionId, activityMap, activeActivityIds)) .collect(Collectors.toList()); } @@ -273,11 +277,14 @@ public class ProcessService { // --- 构建单个节点详情(返回 NodeDetailInfo)--- private NodeDetailInfo buildNodeDetailInfo( FlowNode node, + String processDefinitionId, Map activityMap, List activeActivityIds) { - + String nodeId = node.getId(); // 先构建静态结构 NodeStructureInfo base = buildNodeStructureInfo(node); + Map params = processNodeParamService.getParam(processDefinitionId, nodeId); + base.setUserParam(params); // 再填充动态信息 NodeDetailInfo detail = new NodeDetailInfo(); @@ -288,7 +295,6 @@ 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; diff --git a/flowable/src/main/java/com/sdm/flowable/service/impl/ProcessNodeParamServiceImpl.java b/flowable/src/main/java/com/sdm/flowable/service/impl/ProcessNodeParamServiceImpl.java index 6d6d4584..c6034b56 100644 --- a/flowable/src/main/java/com/sdm/flowable/service/impl/ProcessNodeParamServiceImpl.java +++ b/flowable/src/main/java/com/sdm/flowable/service/impl/ProcessNodeParamServiceImpl.java @@ -63,8 +63,8 @@ public class ProcessNodeParamServiceImpl extends ServiceImpl getParam(String procInstId, String nodeId) { - ProcessNodeParam param = this.lambdaQuery().eq(ProcessNodeParam::getProcessInstanceId, procInstId) + public Map getParam(String processDefinitionId, String nodeId) { + ProcessNodeParam param = this.lambdaQuery().eq(ProcessNodeParam::getProcessDefinitionId, processDefinitionId) .eq(ProcessNodeParam::getNodeId, nodeId) .one();