审批业务流程总结

前言:需要开发一个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 审批时间

流程图

avalonia框架

下面的审核按钮和审核状态则是为了集成现有LOA系统,主要阐述了不同审批状态下的按钮显示,以及每个审批流程的走向

审批状态&审核按钮

有关审核的页面都应加上审核状态字段ApprovalStatus

五个状态

待提交、待处理、已处理、已作废、已删除、退回

按状态分类:

待提交:

  • 修改
  • 删除
  • 提交审核

待处理:

  • 同意、退回、撤回(提交人只有撤回)

退回:

  • 修改
  • 删除
  • 提交审核

已处理:

已删除:

已作废:

五个按钮

提交审核、审核同意、审核退回、修改、删除

按按钮分类:

提交审核:

  • 待提交

审核同意:

  • 待处理

审核退回:

  • 待处理

修改:

  • 待提交

删除:

  • 待提交

关系图

审核状态对应的是提交人和处理人

提交人和处理人由角色权限控制

按钮\审核状态 待提交(提交人) 待处理(处理人) 已处理(无状态) 已作废(无状态) 已删除(无状态) 退回(提交人/处理人)
提交审核 × × × ×
审核同意 × × × ×
审核退回 × × × ×
修改 × × × ×
删除 × × × ×
撤回 × × × ×