springboot+activiti7+react实现模仿钉钉功能的审批流(十、审批流程-同意、拒绝、撤单)

同意:任务通过,set一个标记值到任务参数里面,这里有个坑,任务参数会被覆盖,所有key要和每个任务id关联,这样就不会被覆盖了;set AGREE ,
拒绝:任务拒绝,set REFUSE,然后直接结束流程,执行: runtimeService.deleteProcessInstance(<流程实例id>, <流程删除原因:这里可以填任务拒绝意见>);
撤单:撤销流程,我的做法是直接结束流程,deleteProcessInstanceById(processInstanceId, processInstanceId); 和拒绝的区别是这里的<流程删除原因>是流程实例id,用于流程面板列表查询,条件判断;可能不是最优的方案,有更优方案的可以交流下;

同意核心代码:

//任务认领,claim和setAssignee区别在于claim之后不可以在指派人
taskService.claim(taskId, <审批人id>);
//塞参数
Map vars = new HashMap<>(3);
vars.put("pass_" + taskId, "AGREE");
taskService.setVariablesLocal(task.getId(), vars);
//完成任务
taskService.complete(task.getId());

 

 

你可能感兴趣的:(activiti,bpmn)