From 15d3720f5f224bd6bf24681220483dd2d944aaba Mon Sep 17 00:00:00 2001 From: dengqichen Date: Sat, 25 Oct 2025 01:31:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=9F=E6=88=90=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E6=9C=8D=E5=8A=A1=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkflowInstanceServiceImpl.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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);