flowable实现流程回退到上一个节点

// 获取当前节点的activityId,即xml中每个标签的ID
                String currentActivityId = execution.getCurrentActivityId();

                List<Task> list1 = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).list();
//                taskService.addComment(currentTask.getId(), execution.getProcessInstanceId(), body.get("msg").toString());

                BpmnModel bpmnModel = repositoryService.getBpmnModel(execution.getProcessDefinitionId());
                FlowNode flowNode = (FlowNode)bpmnModel.getFlowElement(currentActivityId);
                SequenceFlow sequenceFlow = flowNode.getIncomingFlows().get(0);
                // 获取上一个节点的activityId
                String sourceRef = sequenceFlow.getSourceRef();

                // 流程回退到上一个节点,审批人继续审批
                runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstance.getProcessInstanceId())
                        .moveActivityIdTo(currentActivityId,sourceRef).changeState();