本期推荐的是一个常用的ERP系统、OA系统的开发中,工作流引擎是一个必不可少的工具。本项目旨在基于Spring boot这一平台,整合业界流行的工作流引擎Activiti,并建立了两个完整的工作流进行演示:请假OA和采购流程。
系统介绍
1.不采用activiti自带的用户、角色功能,因为过于简单,转而自行实现一个用户、角色、权限的三级结构,用户到角色,角色到权限均为多对多映射,持久层框架使用mybatis的collection和association标签嵌套实现;
2.使用默认的用户登录后(用户名xiaomi,密码1234),可看到已部署好的两个流程,请加OA和采购流程,其中,请假OA包含了用户任务、排他网关、起始结束事件,较为简单;采购流程除此之外,还使用了异常结束事件、子流程和边界事件的使用;
3.两个流程均包含了待办任务签收、运行流程进度追踪、已运行完流程历史记录查看的功能,运行流程进度在流程图中以红色标注;
4.使用时,将流程数据和业务数据相分离,使用业务号(businessKey)建立关联流程数据和业务数据的桥梁,使其相互可以访问,业务数据的主键即为业务号;
5.本系统所有表单均使用普通表单,而不是activiti的动态表单和外置表单,这样做是为了分表存放业务数据和流程数据;
6.系统前端采用基于Bootstrap的模板devoops建立;
7.起始页面入口:http://localhost:8888/login 使用前,编译(可直接在myeclipse完成):
mvn clean install
点击流程->流程设计工作区->新建模型,填入模型名称,点击创建按钮即可开始流程图设计:
设计完后,可以导出源文件:
8.新增动态菜单权限,通过给不同用户分配不同的角色,使他们看到不同的菜单。
9.请假流程直接分配到具体审批人,只有指定的审批人才能审批。采购流程按照候选者组进行任务签收,只要能拥有相关菜单的权限即可审批。