本 Demo 演示简单的请假流程
注意:由于 Activiti 7 默认使用 Spring Security 做用户角色管理,这里只是做了 Spring Security 兼容,并没有做任何用户和权限管理。
环境
- IDEA
- Spring Boot 2.3.3
- Acitviti 7
- Swagger 2.9.2
- Mysql 5.7
- Java 11
- Gradle 6.4.1
启动项目
项目代码:https://github.com/mangobeta/springboot-activiti-demo
- 项目 pull 下来后,需要将 application.xml 中数据库连接改成自己的
- 启动项目
- 打开Swagger UI http://localhost:8083/swagger-ui.html
执行流程
流程 ID 在 resources/processes/myProcess.bpmn20.xml 定义,即 myProcess
以下操作均在 Swagger UI 下进行。
- 部署流程
调用 /deploy 接口,参数 bpmnName 为 myProcess。
- 启动流程
流程部署好后,启动流程。 调用 /start 接口,processKey 为 myProcess,user 可随意填写。
- 查询未分配任务
启动流程后会生成一条默认未分配任务。
调用 /findTaskUnassigned 接口,得到未分配任务列表,复制一个taskId。
- 领取任务
调用 /claimTask 接口,填写 taskId,userId 可随意。
- 完成任务
调用 /completeTask 接口,需填写请假天数,原因,和任务 Id。
这时作为请假人,第一步发起请假申请任务就完成了。
接下来任务会根据请假天数分配给经理(test)或总监 (test2),重复4,5两个步骤即可。