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
此时时查不到流程图的。因为流程已经走完了
记录一下该 睡觉了
让天下没有难开发的流程。
