最近的项目要做审批流程的模块,因为以前没有积累的经验,所以把我研究的东西分享出来供大家参考。
审批流程是一个成熟的设计模式很多大的系统中都有做好的模块,但是小型项目又不太适合采用那些方案,我们只要够用就好。
一个审批流程要支持一下这个基本的要求:
- 单人
- 单人多级审批
- 多人审批
- 多人多级审批
- 单人多级跳跃审批
- 多人多级跳跃审批
- 同一节点多人审批
要解决这些问题我做了如下的数据库设计:
数据提交要先在审批流程表中做匹配(匹配业务类型和流程条件),匹配成功后进入流程节点开始审核流程,每个节点更具它的跳转条件执行节点之间的跳转。
审批状态表会保存当前正在执行的审批节点状态,执行过的审批会保存到审批流程的日志表(没有画在上面)。
以前没做过不知道对不对,请大家指教。