审批链的一种设计
审批链模型需求分析与系统设计说明书
审批链模型提供了一个通用的、可配置的审批功能操作方案。
业务角色说明
审批链模型中共设计有两类角色:提交人、审批人。
提交人可以执行提交操作、撤回审批两种操作。提交操作将创建一个新的审批事项,并开启一个新的审批流程。撤回审批操作将终止一个审批流程。
审批人可以执行审批操作。审批操作通常包括“通过”和“驳回”两种。每个审批操作将变更审批事项的“审批状态”,并变更下一个审批人或终止审批流程。
审批人可以继续递归细化为多个子审批人。审批人之间以“审批角色”作为区分。
业务用例说明
用例名称 | 提交审批事项 | - |
---|---|---|
前置条件 | 无 | - |
用户 | 前端界面 | 系统后台 |
1、填写审批表单;发送“提交审批”请求 | 2、数据校验;如果校验未通过,则返回1;否则进入3 | 3、数据校验;如果校验未通过,则返回1;否则进入4 |
- | - | 4、新增一个审批事项;将该审批事项的状态设定为“已提交”;审批链中增加记录“提交人-提交审批” |
5、页面提示“提交成功”。 | - | - |
后置条件 | 1、该审批事项应进入提交人的“我的审批”中; 2、该审批事项应进入对应审批人的“等待审批”中 | - |
用例名称 | 撤销审批事项 | - |
---|---|---|
前置条件 | 1、审批事项当前状态必须是“已提交”; 2、操作人必须是该审批事项的提交人 | - |
用户 | 前端界面 | 系统后台 |
1、选择审批事项,提交“撤销审批”请求 | 2、数据校验;如果校验未通过,则返回1;否则进入3 | 3、数据校验,并校验前置条件;如果校验未通过,则返回1;否则进入4 |
- | - | 4、设定指定审批事项的审批状态为“已撤销”;审批链中增加记录“提交人-撤销审批” |
5、页面提示“提交成功”。 | - | - |
后置条件 | 1、该审批事项应退出对应审批人的“等待审批”列表 | - |
用例名称 | 执行审批操作 | - |
---|---|---|
前置条件 | 操作人必须是该审批事项的对应审批人 | - |
用户 | 前端界面 | 系统后台 |
1、选择审批事项,提交审批操作请求 | 2、数据校验;如果校验未通过,则返回1;否则进入3 | 3、数据校验,并校验前置条件;如果校验未通过,则返回1;否则进入4 |
- | - | 4、根据审批事项当前状态、审批操作、审批角色,设定指定审批事项的“新审批状态”;审批链中增加记录“审批人-新审批状态” |
5、页面提示“提交成功”。 | - | - |
后置条件 | 1、该审批事项应退出对应审批人的“等待审批”列表 2、该审批事项应进入对应审批人的“完成审批”列表 3、该审批事项应进入下一对应审批人的“等待审批”列表 | - |
当前系统中应用到的审批流程图如下所示。
图示:系统当前审批流程
上图中,圆角方框内“已提交”、“撤销申请”、“风控管理员审批通过”、“领导审批通过”、“审批驳回”、“审批通过”等是审批事项的不同状态;线条上“员工”是系统用户的默认角色,“风控管理员”、“审批领导”是审批人的不同审批角色;线条上“提交审批”、“撤销申请”、“审批通过”、“审批驳回”等是可执行的审批相关操作。
系统设计说明
系统设计重点是处理不同角色、不同操作引发的不同状态转换,即根据当前状态、审批角色、审批操作来获取新状态的业务逻辑。下文重点针对此设计进行文档说明,其它部分略去。
执行审批操作用例
执行审批操作用例的基本设计思路是,采用表驱动法,将数据转换逻辑转变为查表逻辑。通过把审批操作规则放置在数据库中,保证此设计方案的通用性和可配置性。
- 流程图/描述 步骤说明
a) 前端提交审批人用户代码、审批事项代码、操作类型代码。
b) 根据审批事项代码,获取审批事项当前状态。
c) 根审批人用户代码和审批事项当前状态,获取审批人的审批角色代码。
d) 根据审批角色代码、审批事项当前状态、操作类型代码,从审批操作规则库表中找到对应的操作规则,从而找到审批事项的新审批状态。
e) 将审批事项当前状态更新为新审批状态;插入新的审批链信息。
步骤c中,由于可能存在一个审批人用户对应多个审批角色代码的问题,因此需要为审批角色配置“优先级”属性。当审批人-审批角色出现1对多映射时,该步骤只选取可对选定审批事项进行审批、且优先级最低的审批角色进行操作。该步骤要求审批角色和审批角色优先级之间一一对应,没有重复或空值。
步骤d要求审批角色、当前状态、操作类型三个数据可以唯一确定一个新审批状态。这是本模型的限制。
-
类图/描述 略
-
时序图/描述 略
-
其它说明 略
数据库设计说明
数据实体描述
数据库实体包括两个部分:审批事项相关实体,和审批规则相关实体。
审批事项相关的数据实体包括审批事项;审批内容;审批链。
- 数据实体_关系图 (ER图)
上图:审批事项、审批内容和审批链数据实体概念模型图
审批规则相关的数据实体包括用户信息、用户-审批角色映射、审批角色信息、审批规则信息。 上图:审批规则相关数据实体概念模型图