先了解一下:会签,或签,加签是什么意思
会签:几个审批人,要全部同意
或签:几个审批人,只要有一个同意
加签:增加审批人
下面演示动态增加会签
一 流程图
我们只使用 审批1和审批2节点 演示
二 设置审批1
1 设置审批1位并行
2 填写右边 Multi-instance 和 User assignment
3 发布流程
三 代码接口
1 启动实例
在审批1种,设置了一个admin为审批人
ProcessDefinitionId 在Camunda界面上看一下。
@ApiOperation("启动实例") @GetMapping("/start1") public ResponseEntity start1(processDefinitionId,businessKey){ //添加审批人 Map<String,Object> map = new HashMap<>(); //主管审批 List<String> managerList = new ArrayList<>(4); managerList.add("admin"); map.put("userList",managerList); //启动实例,添加业务key Execution execution = runtimeService.startProcessInstanceById(processDefinitionId,businessKey,map); return ResponseEntity.ok(execution.getProcessInstanceId()); }
2 新增一个会签
processInstanceId 在Camunda界面上看
activityId 这个需要在编辑器中查看审批1节点的activityId,
@ApiOperation("新增一个实例,并设定开始节点") @GetMapping("/assignBefore") public ResponseEntity assignBefore(processInstanceId,activityId,user){ runtimeService.createProcessInstanceModification(processInstanceId) .startBeforeActivity(activityId) .setVariable("user",user) .execute(); return ResponseEntity.ok("ok"); }
可以看到,已经新增了test审批。
四 或签
或签的区别,其实很简单
只是在Multi-instance中增加 ${nrOfCompletedInstances == 1} 代表1人审核通过,就通过。
nrOfCompletedInstances 是内置变量,无需声明。