Camunda大杂烩(三:会签)
会签
根据我们画的图,在用户提交节点,branch==2时,会到达“二级领导审批”的会签节点:
会签节点详情(这边没填completion condition,导致必须串行审批人全部审批结束才能继续往下走,相当于无法一人拒绝就退回):
开启流程
我们先正常开启一个流程,获取到流程号为:a5908a6a-d1bd-11ec-8f83-a4b1c191e7b9
进入会签
完成用户提交任务,branch==2,且处理审批人列表字段approverList
{ "map": {"branch":2,"approverList":["demo1","demo2"]}, "taskId": "a590b17e-d1bd-11ec-8f83-a4b1c191e7b9" }
通过后台或者对应接口可以看到,当前审批人approver为demo1,未到达/已处理/总人数分别为1/0/2:
此处新增一个方法,根据taskId获取任务下的全部variables:
/** * 获取所有参数 * @param taskId 任务Id * @return 参数信息 */ @Override public Map<String, Object> getVariables(String taskId) { return taskService.getVariables(taskId); }
会签操作
由于我这里没有做任务对应人员的处理,因此会签就是一个逐步taskComplate的过程,再执行一次taskComplete后,可以发现当前处理人变成了demo2,也就是最后一个需要进行处理的人:
由于继续往下走又需要传branch参数,因此demo2用户再执行一次taskComplete即可完成这个流程:
{ "map": {"branch":0}, "taskId": "30ead6f6-d1c2-11ec-b082-a4b1c191e7b9" }
执行后发现,本流程已经完结
总结:
会签流程并不复杂,只是画图的时候需要设置对应的审批人列表,实际业务中可能在代码里处理对应的审批人即可,流程的流转依然是taskService.complete()