自定义审批流程设计

一、需求:

一个审批流程要支持一下这个基本的要求:

  • 自定义审核流程
  • 提交、撤销申请
  • 单、多级审批
  • 状态追踪
  • 日志记录

要解决这些问题我做了如下的数据库设计:

二、审批流程图:

自定义审批流程设计_第1张图片

三、表设计

有些表省略了主键id和创建时间、修改时间、创建人、修改人等字段;

流程表:审批流程的名字,表示业务名称;
节点表:就是各个流程需要经过的步骤(没有审核人的节点就是某个流程的起始);
流程线表(顺序):就是流程各个节点的顺序;
审核人表:审核人,会有默认审核人;

自定义审批流程设计_第2张图片

流程表:

flow_id flow_no flow_name remark
1 111 素材上传 素材上传审批流程
2 222 节目单上刊 节目单上刊审批流程

节点表:

flow_node_id flow_no flow_node_name flow_node_dept_id flow_node_dept_id remark
1 111 提交素材上传申请 提交素材上传申请
2 111 法务审批 法务部id 默认法务部审核人-吴仔id 技术审批
3 111 运维审批 运维部id 选择的运维部审核人-张武id 经理审批

顺序表(线表):

flow_line_id flow_no prev_node_id next_node_id remark
1 111 1 2 提交给技术审批
2 111 2 3 提交给部门经理审批

审核人表:

dept_name user_name audit_default
运维部 李四 1
运维部 张三 0
运维部 张武 0
法务部 吴仔 1

四、注意事项

4.1 申请内容过多,导致数据条数过大

假如我一次性申请1000个设备,那随着时间推移数据量就很大了,这样会影响效率

这时候就需要在流程表里面加一个条件来确定影响的等级,从而不会直接存储最低等级的数据

自定义审批流程设计_第3张图片

五、拓展

5.1 可以添加审核通知

比如我们可同微信的服务号来通知,可以查看
https://blog.csdn.net/LC_Liangchao/article/details/121954888

自定义审批流程设计_第4张图片

你可能感兴趣的:(设计模式,Java,java)