Flowable多实例会签功能来袭

文章的最下面有学习视频与源代码

拒绝重复造轮子了,有这个流程平台就够了

会签、或签

会签 ABC三人都审批通过才能进入下一节点 (三人都可以看到任务) 或签 其中一人通过 即可进入下一节点 (三人都可以看到任务)

流程步骤

    部署流程 启动流程 查看代办 审批流程 流程结束

流程图绘制说明

表示:所有人全部审批成功才能进入下一节点
${nrOfCompletedInstances/nrOfInstances == 1}

bpmn

请假会签.bpmn20.xml

功能说明:

优化

    流程图:Query return 3 results instead of max 1
    会签得时候需要Map<String,ArrayList>
报错:Variable ‘assigneeList’:[songxy,admin,ypmm] is not a Collection

流程走向说明

发起申请节点-启动流程

接口:

http://localhost:8089/flow/start-flowable 入参
{
          
   
	"map": {
          
   
"startUserId":"songxy"
},
	"processDefinitionKey": "yqmm-qj-key"
}
经理会签节点入参

接口:http://localhost:8089/flow/accept-or-reject

入参格式:

{
          
   
	"map": {
          
   
"assigneeList":"songxy,admin,ypmm"
},
	"taskId": "2794800d-35cb-11ed-9e6a-dc41a90b0909",
	"userId": "songxy"
}

后台:

一般企业级会签开发基本上都是在前台送用户过来(然而这个用户都是通过角色去查询得到得)拿到代码根据自己的实际优化此接口。SteveCode只是想做通用才这么做的
// TODO 一般企业级会签开发基本上都是在前台送用户过来(然而这个用户都是通过角色去查询得到得)拿到代码根据自己的实际优化此接口。SteveCode只是想做通用才这么做的
        //会签时 入参String转List
         Map<String, Object> map = dto.getMap();
        if (Objects.nonNull(map)) {
          
   
        for (Map.Entry<String, Object> entry : map.entrySet()) {
          
   
        String value = (String)entry.getValue();
        String[] values = value.split(",");
        if (values.length > 1) {
          
   
        entry.setValue(Arrays.asList(values));
        }
        }
        }
会签数据sql查询脚本
SELECT * FROM ACT_RU_TASK WHERE NAME_ =经理会签
三人同查自己代办

三人都去做审批

举一个例子

接口:

http://localhost:8089/flow/accept-or-reject

入参

{
          
   
	"taskId": "09335781-3626-11ed-a997-dc41a90b0909",
	"userId": "ypmm"
}

最后查询流程图

接口

http://localhost:8089/flow/get-flow-chart?processId=a1d369bc-3625-11ed-a997-dc41a90b0909

此时时查不到流程图的。因为流程已经走完了

记录一下该 睡觉了

让天下没有难开发的流程。

经验分享 程序员 微信小程序 职场和发展