1. 完成任务时传一个流程变量(比如 approveResult = AGREE/REJECT)
2. 用条件连线自动走到不同的结束节点
3. 后面任何地方(历史、业务表、消息推送)都可以通过 approveResult 这个变量精准判断到底是“同意结束”还是“驳回结束”
代码里完成任务时设置变量
// 同意 → 直接结束流程
Map<String, Object> variables = new HashMap<>();
variables.put("approveResult", "AGREE"); // 关键这行
taskService.complete(taskId, variables);
// 驳回 → 结束流程
Map<String, Object> variables = new HashMap<>();
variables.put("approveResult", "REJECT"); // 关键这行
taskService.complete(taskId, variables);后面想判断是哪种方式结束的,直接读历史变量就行
String result = (String) historicProcessInstance
.getProcessVariables()
.get("approveResult"); // 结果是 "AGREE" 或 "REJECT"
// 或者用历史变量表查询
List<HistoricVariableInstance> vars = historyService.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.variableName("approveResult")
.singleResult();
扫一扫访问 Blade技术社区 移动端