diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java index f46fafe8..d8b30eac 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java @@ -186,11 +186,18 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl new RuntimeException("Workflow definition process key not found: " + request.getProcessKey())); + + // ✅ 将前端传入的 variables 包装到 "form" 变量中 + // 这样流程中的 ${form.xxx} 表达式就能正确解析 + Map variables = new HashMap<>(); + if (request.getVariables() != null && !request.getVariables().isEmpty()) { + variables.put("form", request.getVariables()); + } + ProcessInstance processInstance = runtimeService.createProcessInstanceBuilder() .processDefinitionKey(request.getProcessKey()) - .variables(request.getVariables()) + .variables(variables) // 使用包装后的变量 .businessKey(request.getBusinessKey()) - .variables(request.getVariables()) .startAsync(); // 异步启动,会自动执行 shell 任务 // .start(); return createWorkflowInstance(workflowDefinition.getId(), request.getBusinessKey(), processInstance);