fix:节点参数绑定算例
This commit is contained in:
@@ -90,9 +90,9 @@ public class ProcessController implements IFlowableFeignClient {
|
||||
|
||||
// 保存节点用户输入参数(先基于流程定义ID,等流程启动后,保存流程实例ID,作为参数模板)
|
||||
@PostMapping("/saveParamsByDefinitionId")
|
||||
public SdmResponse saveParamsByDefinitionId(@RequestParam String processDefinitionId, @RequestParam String nodeId,
|
||||
public SdmResponse saveParamsByDefinitionId(@RequestParam String processDefinitionId, @RequestParam String nodeId, @RequestParam String runId,
|
||||
@RequestBody Map<String, Object> params) {
|
||||
processNodeParamService.saveParamByProcessDefinitionId(processDefinitionId, nodeId, params);
|
||||
processNodeParamService.saveParamByProcessDefinitionId(processDefinitionId, nodeId, runId, params);
|
||||
return SdmResponse.success();
|
||||
}
|
||||
|
||||
@@ -133,8 +133,8 @@ public class ProcessController implements IFlowableFeignClient {
|
||||
* 如果还传了processInstanceId,再封装流程状态和节点状态
|
||||
*/
|
||||
@GetMapping("/getProcessAndNodeDetailByInstanceId")
|
||||
public SdmResponse<ProcessInstanceDetailResponse> getProcessAndNodeDetailByInstanceId(@RequestParam String processDefinitionId,@RequestParam(required = false) String processInstanceId) {
|
||||
return processService.getProcessAndNodeDetailByInstanceId(processDefinitionId,processInstanceId);
|
||||
public SdmResponse<ProcessInstanceDetailResponse> getProcessAndNodeDetailByInstanceId(@RequestParam String processDefinitionId,@RequestParam(required = false) String processInstanceId,@RequestParam String runId) {
|
||||
return processService.getProcessAndNodeDetailByInstanceId(processDefinitionId,processInstanceId,runId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ public class UniversalDelegate implements JavaDelegate {
|
||||
log.info("开始执行节点, 流程实例ID: {}, 节点ID: {}, 节点名称: {}", procInstId, nodeId, nodeName);
|
||||
|
||||
// 2. 读取输入参数
|
||||
Map<String, Object> params = processNodeParamService.getParam(processDefinitionId, nodeId);
|
||||
Map<String, Object> params = processNodeParamService.getParam(processDefinitionId, nodeId, null);
|
||||
|
||||
log.info("节点执行参数, 流程实例ID: {}, 节点ID: {}, 参数: {}", procInstId, nodeId, params);
|
||||
|
||||
|
||||
@@ -44,6 +44,10 @@ public class ProcessNodeParam implements Serializable {
|
||||
@TableField("nodeId")
|
||||
private String nodeId;
|
||||
|
||||
@ApiModelProperty(value = "流程绑定的算例uuid")
|
||||
@TableField("runId")
|
||||
private String runId;
|
||||
|
||||
@ApiModelProperty(value = "输入参数JSON")
|
||||
@TableField("paramJson")
|
||||
private String paramJson;
|
||||
|
||||
@@ -142,7 +142,7 @@ public class ProcessService {
|
||||
* 如果只传了processDefinitionId,根据流程定义返回流程基本信息和节点信息,
|
||||
* 如果还传了processInstanceId,再封装流程状态和节点状态
|
||||
*/
|
||||
public SdmResponse<ProcessInstanceDetailResponse> getProcessAndNodeDetailByInstanceId(String processDefinitionId, String processInstanceId) {
|
||||
public SdmResponse<ProcessInstanceDetailResponse> getProcessAndNodeDetailByInstanceId(String processDefinitionId, String processInstanceId, String runId) {
|
||||
ProcessInstanceDetailResponse response = new ProcessInstanceDetailResponse();
|
||||
|
||||
// 构建基础流程信息
|
||||
@@ -154,7 +154,7 @@ public class ProcessService {
|
||||
List<NodeDetailInfo> nodes = orderedNodes.stream()
|
||||
.map(this::buildNodeDetailInfoFromFlowNode) // 直接构建NodeDetailInfo
|
||||
.peek(detail -> {
|
||||
Map<String, Object> params = processNodeParamService.getParam(processDefinitionId, detail.getId());
|
||||
Map<String, Object> params = processNodeParamService.getParam(processDefinitionId, detail.getId(), runId);
|
||||
detail.setUserParam(params);
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.Map;
|
||||
* @since 2025-11-25
|
||||
*/
|
||||
public interface IProcessNodeParamService extends IService<ProcessNodeParam> {
|
||||
void saveParamByProcessDefinitionId(String processDefinitionId, String nodeId, Map<String, Object> params);
|
||||
void saveParamByProcessDefinitionId(String processDefinitionId, String nodeId, String runId, Map<String, Object> params);
|
||||
void updateNodeParamProcessInstanceId(String processInstanceId, String processDefinitionId);
|
||||
Map<String, Object> getParam(String processDefinitionId, String nodeId);
|
||||
Map<String, Object> getParam(String processDefinitionId, String nodeId, String runId);
|
||||
}
|
||||
@@ -35,10 +35,11 @@ public class ProcessNodeParamServiceImpl extends ServiceImpl<ProcessNodeParamMap
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
// 保存节点输入参数(按流程实例保存,用于参数模板)
|
||||
public void saveParamByProcessDefinitionId(String processDefinitionId, String nodeId, Map<String, Object> params) {
|
||||
public void saveParamByProcessDefinitionId(String processDefinitionId, String nodeId, String runId, Map<String, Object> params) {
|
||||
ProcessNodeParam param = new ProcessNodeParam();
|
||||
param.setProcessDefinitionId(processDefinitionId);
|
||||
param.setNodeId(nodeId);
|
||||
param.setRunId(runId);
|
||||
try {
|
||||
param.setParamJson(objectMapper.writeValueAsString(params));
|
||||
} catch (JsonProcessingException e) {
|
||||
@@ -70,9 +71,10 @@ public class ProcessNodeParamServiceImpl extends ServiceImpl<ProcessNodeParamMap
|
||||
|
||||
|
||||
// 查询节点输入参数(流程执行时调用)
|
||||
public Map<String, Object> getParam(String processDefinitionId, String nodeId) {
|
||||
public Map<String, Object> getParam(String processDefinitionId, String nodeId, String runId) {
|
||||
ProcessNodeParam param = this.lambdaQuery().eq(ProcessNodeParam::getProcessDefinitionId, processDefinitionId)
|
||||
.eq(ProcessNodeParam::getNodeId, nodeId)
|
||||
.eq(ObjectUtils.isNotEmpty(runId), ProcessNodeParam::getRunId, runId)
|
||||
.one();
|
||||
|
||||
if (param == null) {
|
||||
|
||||
Reference in New Issue
Block a user