流程审批模块
审批业务流程总结
前言:需要开发一个saas系统,saas系统包含了许多系统,比如EAM,MES,WMS,QMS等系统,这些系统都需要用到审批流,所以需要设计一款通用的审批模块,能够实现自动审批,流程自动流转。
表结构
FlowType (流程类型表) |
Id |
主键 |
|---|---|---|
FlowTypeId |
流程类型Id | |
FlowTypeName |
流程类型名称 | |
AppId |
应用Id,如采购申请应用、请假申请应用等 | |
Version |
版本号 | |
IsEnable |
是否是当前版本 | |
Remark |
备注 | |
JsonData |
保存节点和线条信息 |
**NodeInfo**(节点信息表) |
Id |
主键 |
|---|---|---|
NodeInfoId |
节点信息编码(自动生成) | |
FlowTypeId |
关联流程类型表Id | |
NodeName |
节点名称 | |
NodeType |
节点类别,如知会,处理 | |
ApprovalWay |
审批方式(按0-角色、1-岗位、2-审批人),枚举类型 | |
ApprovalRoleId |
审批角色,关联角色编码 | |
ApprovalPostId |
审批岗位,关联岗位编码 | |
ApprovalUsers |
审批人(多个用英文逗号隔开) | |
ApprovalCondititon |
审批条件,比如仅一人处理 | |
NodeExplain |
节点说明 | |
IsStartNode |
是否为开始节点(+) |
**FlowNode**(流程节点表) |
Id |
主键 |
|---|---|---|
FlowTypeId |
流程类型Id(+) | |
PreNodeInfoId |
上一个节点(关联节点信息编码) | |
NextNodeInfoId |
下一节点(关联节点信息编码) | |
FlowCondition |
流程条件 | |
Description |
描述 |
**FlowApply**(流程申请表) |
Id |
主键 |
|---|---|---|
FlowApplyId |
流程申请编码(自动生成) | |
FlowTypeId |
流程类型Id,关联的是什么应用流程 | |
ApplyId |
关联申请单编号(如某个人采购申请编号) | |
ApplyUserId |
申请人Id | |
ApplyUser |
申请人 | |
ApplyDate |
申请日期 | |
CurrNodeInfoId |
当前关联的节点信息 | |
CurrApprovalUser |
当前审批人 | |
ApprovalStatus |
审批状态 | |
CompletionDate |
流程完成日期 |
**ApprovalRecord**(审批记录表) |
Id |
主键 |
|---|---|---|
FlowApplyId |
关联流程申请编码 | |
FlowTypeId |
流程类型名称 | |
NodeInfoId |
关联节点信息编码 | |
NodeName |
节点名称 | |
NodeType |
节点类别 | |
ApprovalRole |
审批角色(+) | |
ApprovalUser |
审批人 | |
ApprovalUserId |
审批人Id | |
Action |
审批动作,如 Approve, Reject | |
Comments |
审批人的意见或备注 | |
ApprovalTime |
审批时间 |
流程图
下面的审核按钮和审核状态则是为了集成现有LOA系统,主要阐述了不同审批状态下的按钮显示,以及每个审批流程的走向
审批状态&审核按钮
有关审核的页面都应加上审核状态字段
ApprovalStatus
五个状态
待提交、待处理、已处理、已作废、已删除、退回
按状态分类:
待提交:
- 修改
- 删除
- 提交审核
待处理:
- 同意、退回、撤回(提交人只有撤回)
退回:
- 修改
- 删除
- 提交审核
已处理:
已删除:
已作废:
五个按钮
提交审核、审核同意、审核退回、修改、删除
按按钮分类:
提交审核:
- 待提交
审核同意:
- 待处理
审核退回:
- 待处理
修改:
- 待提交
删除:
- 待提交
关系图
审核状态对应的是提交人和处理人
提交人和处理人由角色权限控制
| 按钮\审核状态 | 待提交(提交人) | 待处理(处理人) | 已处理(无状态) | 已作废(无状态) | 已删除(无状态) | 退回(提交人/处理人) |
|---|---|---|---|---|---|---|
| 提交审核 | √ | × | × | × | × | √ |
| 审核同意 | × | √ | × | × | × | √ |
| 审核退回 | × | √ | × | × | × | √ |
| 修改 | √ | × | × | × | × | √ |
| 删除 | √ | × | × | × | × | √ |
| 撤回 | × | √ | × | × | × | √ |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.







