activiti的会签功能可实现在同级审批多人参与审批的功能,多人审批可串行也可并行审批,可设置全部人审批通过时候才进入下一级审批,也可设置部分审批人审批通过就可进入下级审批,特别灵活
1、首先编辑相应的bpmn文件
nrOfInstances 实例总数
nrOfActiveInstances 当前还没有完成的实例
nrOfCompletedInstances 已经完成的实例个数,图中表示只要有百分之60的人审批通过,则直接进入下一流程 SecondCheck
2、第一步,仍然是注册流程;第二步启动流程,在启动流程时,把参与会签的人设置进去
public boolean startActivityDemo(String key,String multyInstance) { List<String> assigneeList=new ArrayList<String>(); //分配任务的人员 assigneeList.add("tom"); assigneeList.add("jack"); assigneeList.add("mary"); Map<String, Object> vars = new HashMap<String, Object>(); //参数 vars.put("assigneeList", assigneeList);//这个assigneeList与图中的Collection的值对应 ProcessInstance test01=runtimeService.startProcessInstanceById(key,vars);//表act_re_procdef ID_字段 String id = test01.getId(); System.out.println("流程ids="+id); return true; }
3、启动流程之后,会在act_ru_task生成三条正在运行的任务记录
因为我们设置了在firstCheck完成百分之60就可以进入下一级,测试提交了id为20和25的任务,就直接进入secondCheck了,经测试效果是符合预期的。