目录
定义
背景
审核的流程
审批主表(sys_approval_flow)
审批明细表(sys_approval_flow_mx)
请假表(sys_vacation)
定义
O A(Office Automation)——办 公 自 动 化,将现代计算机、通信等技术运用到传统办公方式,进而形成一种新型办公方式。利用西安大话技术,代替办公人员传统的部分手动重复性的业务活动,优质高效的处理办公事务和业务信息,提高工作效率和质量,改善工作环境。
背景
封城休假期间朋友需要搞一个O A的审核流程,出于朋友友情,替朋友设计一个O A审批流程业务表。
审核的流程
他们的业务是按照流程,完成相应的审批人员逐层的进行审批,只有当所有的审核人员全部都通过了,则可以认为这条审批记录是通过的状态。
依据这个流程,进行了表结构的设计,首先分为审批流程主表
审批主表(sys_approval_flow)
列名称 | 类型 | 含义 |
---|---|---|
id | varchar(32) | 主键,可作为审批编号 |
title | varchar(50) | 标题(王五的请假申请) |
type | varchar(20) | 审批类型(字典表设置code用作区分类型) |
user_id | varchar(32) | 申请人主键 |
create_time | datetime | 创建时间 |
status | char(1) | 审核状态(1:待审核;2:通过;3:驳回;4:撤销) |
审批明细表(sys_approval_flow_mx)
列名称 | 类型 | 含义 |
---|---|---|
id | varchar(32) | 明细表主键 |
approval_flow_id | varchar(32) | 审批表主键 |
user_id | varchar(32) | 审批人主键 |
create_time | datetime | 创建时间 |
approval_time | datetime | 审批时间 |
opinion | varchar(20) | 审核意见 |
status | char(1) | 审核状态(1:审核中;2:等待我审核;3:通过;4:驳回) |
opinion | varchar(100) | 审核意见 |
这里的明细表的数据,取决于我们申请时所需选填的审批人的数量
这样我们的审批流程的两张主要表就设计好了,接下来我们以请假流程来说明一下,
首先,看一下请假表的设计
请假表(sys_vacation)
列名称 | 类型 | 含义 |
---|---|---|
approval_flow_id | varchar(32) | 审批表主键(关联审批流程主表) |
user_id | varchar(32) | 申请用户主键 |
create_time | datetime | 创建时间 |
reason | varchar(50) | 请假事由 |
remark | varchar(100) | 备注 |
start_time | datetime | 请假开始时间 |
end_time | datetime | 请假结束时间 |
time_hours | int | 请假总时长(小时) |
到这里,我们整个O A审批流程的表结构设计完成了,是不是在我们的脑子中有了一个清晰的流程了呢?
我们看一下大概的流程:
- 录入当前审批业务数据(请假申请单据的表单),选择好三个审批人(部门主管、经理、人事)
- 审批流程主表中插入了1条数据
- 审批流程明细表中插入了3条数据
- 请假表中插入1条数据
- 向第一个审核人发送相关的审批通知信息
上面我们看到了申请的流程,那么接下来我们看一下审核的基本流程和逻辑:
- 根据表单数据来判断审核是否同意
- 根据approval_flow_id(审批流程主键)、user_id(审批人主键)和status(审批状态:2:等待我审核)的组合条件去sys_approval_flow_mx(审批流程明细表)中查询,当结果为空,则这条单据没有我要审核的或者已经审核通过了,则直接返回。
- 如果2中的结果不为空,则说明将当前审核明细中的1条数据的审核状态根据我们的情况配置为通过或者驳回
- 当审核明细数据全部为审核通过的时候,则需要将主表状态设置为审核通过
- 当审核明细数据中有一条审核不通过,则将审核流程主表中的审核状态设置为不通过
好了,今天的O A审核就先讲解到这,欢迎大家留言多交流!
也欢迎大家关点击下方卡片,关注《coder练习生》