一.简介
**会签:**在一个流程中的某一个 Task 上,这个 Task 需要多个用户审批,当多个用户全部审批通过,或者多个用户中的某几个用户审批通过,就算通过。
例如:之前的请假流程,假设这个请假流程需要组长和经理都审批了,才算审批通过,那么就需要设置这个 Task 是会签节点。
**或签:**意思就是 A 的请假流程提交给 B、C、D,但是并不需要 B/C/D 同时审批通过,只需要 B/C/D 中的任意一个审批即可,这就是或签,注意,我这里的表述,只需要 B/C/D 任意一个审批即可,这个审批即可以是审批通过,也可以是审批拒绝,反正只要审批,这个 UserTask 就算完成了。
二.会签流程图
首先来画一下这个请假流程图,这个流程图基本上还是和之前的一样,截图如下:
三.请假处理
1.前端提交请假流程
2.服务端处理请假请求
3.服务端返回待审批数据
4.服务端批准 OR 拒绝
前4步见上一篇文章,这边不重复写
5.服务端返回流程数据
服务端展示流程数据。就是当用户提交流程之后,想要查看自己的流程处理到哪一步了,截图如下:
这张图中的数据其实包含了两部分,一部分是已经执行完的流程,还有一部分是正在执行中的流程,所以在查询中,分为两步来完成,代码如下:
public RespBean searchResult() {
String name = SecurityContextHolder.getContext().getAuthentication().getName();
List<HistoryInfo> infos = new ArrayList<>();
//未完成流程
List<HistoricProcessInstance> unFinishedHistoricProcessInstances = historyService.createHistoricProcessInstanceQuery().processInstanceBusinessKey(name).unfinished().orderByProcessInstanceStartTime().desc().list();
for (HistoricProcessInstance unF