OA多级审批流程表设计方案(干货满满)

点击关注公众号,实用技术文章及时了解9c7ed5f4fa677888dc6f053aac6c42a5.png

OA(office automation) 想必大家都已不陌生,甚至还非常熟悉,是的没错,本文就来讲解一下OA中的核心业务,审批流程是如何一步步实现的。

本文干货满满,建议静下心来细细品

被审核流程

首先填写好表单相关信息,然后点击审批人,从公司部门树中点击相应部门,加载部门相关角色用户,最后再指定审批人

f2d444157a69ad84920c0782dfe74626.png值得吹嘘的一点是这里的审批人可供用户自行动态选择,并且审批层级也是随着审批人的数量动态增减

以加班表单为例子

88ef4c0b3cb46ca363ddb2dd4e801512.png指定完成之后,点击提交即可。

然后再由相应的审批人逐级进行审批,当其中有一个不通过,则整个流程不通过,当所有的审批人全部通过才可通过

OK流程已经清楚了,接下来我们来进行表结构的设计

只需要两张核心的审批表即可,其他需要进行审批流的业务表通过审批流编号FlowNo 关联这两张核心业务表,我们来看一下

审批流主表 AuditFlow

6698eef48d3fd3902db01a6b9dd0c58c.png这两张表的关系是一对多,明细表的数量取决与表单提交添加的审核人数量

ApproFlow:1 =======> n :ApproFlowDetail

审批流明细表 AuditFlowDetail

0836125671b77df2dac2c42289935520.png如此一来,OA审批流程的两张核心业务表就设计完成了。

那么问题来了,其他相关表呢?

别急,慢慢来嘛。首先用户表肯定是需要的,因为表单申请人和审核人都是关联的用户No,因为用户是根据部门走的,那么还需要设计一张部门表,再设计一张用户和部门相关联的表,把用户和部门联系起来,就可以从部门中选取相应角色。当然简单点的逻辑可以不用部门,直接搜索全部用户,这里就不再设计了哈。

有了用户表和审批业务核心表,接下来就可以根据公司业务需求,来设计相关的审批流程业务表了,这里就拿加班申请来举个例子,当用户需要进行加班的时候,肯定是需要走审批流程的,那么再来设计一张加班申请表

加班表 OverTimeAsk

94d8f6d786f34e7ba45ee404fafd6c16.png此时,再回到文章一开始的流程,脑海中的思路是不是就慢慢的浮现出来了呢,嘻嘻

库设计好了,剩下的就是由程序实现完成了,那么问题又来了,如何去实现呢?借助问题,来进行驱动成长,下面就来探讨具体如何实现。

有了以上设计的表做铺垫,就可以为所欲为啦!

填写完加班申请表单,选择部门相关负责审批人,如主管,部门经理,总经理,此时进行表单提交

提交需要进行的操作
  • 录入当前审批业务表,也就是加班申请表的数据

  • 审批流主表插入一条数据

  • 审批流明细表插入三条数据

  • 对添加的第一个审核人发送相关通知消息

注意要点:
  1. 以上三条是同时进行操作,必须要满足事务,否则数据会出现问题

  2. 三条数据插入的FlowNo字段必须是相同的

  3. 插入审批流主表数据的时候,BusType字段的值可以设置为OverTimeAsk,审核状态默认1(待审核)

  4. 插入审批流明细表数据的条数取决与用户提交表单选择的审核人数量,如这里选择了三个审批人,就需要插入三条数据,第一条的审核状态 设为 2(待我审批),其他两条的审核状态设为1(审核中)

  5. 插入加班申请表对月份进行判定,不允许跨月加班

表单提交的操作完成了,下面就开始论到审核操作的流程了

首先,要有一个待我审批的入口,查询出所有待我审核的表单

  • AuditFlow表和AuditFlowDetail表通过FlowNo关联查询

  • 过滤AuditFlow表审核状态为1并且AuditFlowDetail表审核状态为2的数据

    • 也可以根据AuditFlow表的BusType字段进行审批表单的分类

审核操作,基本上分为审核通过和不通过, 当然也可以根据业务自行扩展其他的审核操作。

实现思路与细节如下:
  1. 根据表单提交操作来判断审核是否同意

  2. 根据FlowNoAuditUserNo以及AuditStatus为2(待我审批) 的条件去查询AuditFlowDetail表,如果数据为空,则此单已进行过审核操作,直接返回。

  3. 如果上一条查询的数据不为空,则可以将当前审核明细单数据的审核状态设置为通过or驳回

  4. 如果当前审核明细单的待审核数量大于一,则说明还需要向下一级传递审核,同时将下一级数据的审核状态设置为待我审核,并发送相关通知

  5. 如果当前审核明细单数据全部为审核通过,则将AuditFlow表的审核状态设为通过

  6. 如果当前审核明细单有一条审核不通过,则将AuditFlow表的审核状态设为不通过

实现细节

如果审核同意则,根据FlowNo查询出所有AuditFlowDetail表数据,然后进行过滤,分别统计审核通过和审核不通过的数据条数,并记录第一个审核状态为审核中的数据。此时可根据条件执行上面的第4,5,6条

审核不同意操作大致同上

OK,整个多级审批流程就实现完啦,如果你仔细看完此文,相信你一定会茅塞顿开

当然OA的审批业务远远不止这么一点,还有其他的表单审批,比如工作汇报审批表,还可增加关联的附件表,提交工作内容的同时上传相关文件或者照片存放在服务中,方便审核人随时在线预览或者下载到本地

还可根据业务需求自行扩展相关表单

09762afb06cf3496f7eb0e7ecdec060a.png以上所有表单的审批流程都是围绕基于两张核心业务表来实现。

来源:blog.csdn.net/cslx5zx5/article/details/107566070

推荐

Java面试题宝典

技术内卷群,一起来学习!!

95fd95d4e498863588f4e6e239231d35.jpeg

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

82ee4a58ddceabd0148177f4104b940b.gif

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目介绍】 基于Java开发的OA办公审批系统源码+项目详细说明.zip 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 OA工程 一、项目概述 办公系统是一套自动办公系统,系统主要包含:管理端和员工端 管理端包含:权限管理、审批管理、公众号菜单管理 员工端采用微信公众号操作,包含:办公审批、微信授权登录、消息推送等功能 项目服务器端架构:SpringBoot + MyBatisPlus + SpringSecurity + Redis + Activiti+ MySQL 前端架构:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios 二、核心技术 | 基础框架:SpringBoot | | ------------------------------------------------------------ | | 数据缓存:Redis | | 数据库:MySQL | | 权限控制:SpringSecurity | | 工作流引擎:Activiti | | 前端技术:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios | | 微信公众号:公众号菜单 + 微信授权登录 + 消息推送 | 三、项目模块 - oa-parent:根目录,管理子模块: - common:公共类父模块 - common-util:核心工具类 - service-util:service模块工具类 - spring-security:spring-security业务模块 - model:实体类模块 - service-oa:系统服务模块 四、接口汇总 1. 角色管理--获取所有角色:/admin/system/sysRole/findAll 2. 角色管理--分页查询:/admin/system/sysRole/{page}/{limit} 3. 角色管理--根据id获取角色信息:/admin/system/sysRole/get/{id} 4. 角色管理--新增角色:/admin/system/sysRole/save 5. 角色管理--修改角色:/admin/system/sysRole/update 6. 角色管理--删除角色:/admin/system/sysRole/remove/{id} 7. 角色管理--根据id列删除角色:/admin/system/sysRole/batchRemove 8. 后台管理--登录:/admin/system/index/login 9. 后台管理--获取信息:/admin/system/index/info 10. 后台管理--登出:/admin/system/index/logout 11. 用户管理--分页查询:/admin/system/sysUser/{page}/{limit} 12. 用户管理--根据id获取用户信息:/admin/system/sysUser/get/{id} 13. 用户管理--保存用户信息:/admin/system/sysUser/save 14. 用户管理--更新用户信息:/admin/system/sysUser/update 15. 用户管理--根据id删除用户信息:/admin/system/sysUser/remove/{id} 16. 用户管理--批量删除用户信息:/admin/system/sysUser/batchRemove 17. 用户管理--获取用户的角色信息:/admin/system/sysUser/toAssign/{userId} 18. 用户管理--给用户分配角色:/admin/system/sysUser/doAssi
### 回答1: OA审批流程数据库设计主要包括以下几个方面:数据设计、字段设计、数据关系设计、索引设计、权限设计和备份设计。 数据设计是根据OA审批流程的业务需求进行的,需要建立相应的数据来存储审批流程相关的数据,比如审批审批流程审批记录等。每个数据需要确定相应的字段以及字段的数据类型、长度、约束等属性。 字段设计是对数据中的字段进行详细的设计,包括字段名、数据类型、长度、约束等。例如,审批中可以包含字段如申请人、申请时间、审批状态等。 数据关系设计是指确定不同数据之间的关系,如一对一、一对多、多对多等关系。例如,审批审批流程可以采用一对多的关系,一个审批单可以对应多个审批流程。 索引设计是为了提高数据库的查询性能,在关键字段上创建索引。例如,在审批中,可以为申请人、申请时间等字段创建索引,以提高查询效率。 权限设计是为了保护数据安全,根据用户角色和权限,对不同用户进行访问控制。例如,只有审批人员才能对审批记录进行插入、更新或删除操作。 备份设计是为了保障数据的安全性和可恢复性,需要定期对数据库进行备份。可以选择完全备份或增量备份,保证数据的持久性和可靠性。 综上所述,OA审批流程数据库设计需要考虑数据设计、字段设计、数据关系设计、索引设计、权限设计和备份设计等方面,以满足业务需求、提高查询性能、保障数据安全和可恢复性。 ### 回答2: OA(Office Automation)审批流程数据库设计是为了支持OA系统中各类审批流程的顺利进行而设计数据库结构。 首先,审批流程数据库设计应包括用户、角色审批审批历史等主要结构。用户记录系统中的所有用户信息,包括姓名、工号、部门等;角色记录不同角色的权限和级别;审批记录每个审批的基本信息,如审批标题、申请人、审批流程等;审批历史记录每个审批的详细历史记录,包括审批意见、审批人等。 其次,在数据库设计中需要考虑到审批流程的灵活性和可扩展性。可以采用流程模板的方式,将每个审批流程抽象成一个模板,包括审批节点、审批顺序、流程分支等信息。在审批中使用模板ID来关联具体的审批流程,实现不同审批流程的变化和扩展。 此外,为了提高数据库性能和查询效率,可以添加索引来加快审批流程的查询和检索。比如,可以在审批中添加审批状态的索引,加快根据状态查询待办审批的速度。 最后,审批流程数据库设计应当包括数据权限管理的考虑。对于不同的审批流程,可能需要进行数据权限控制,保证不同角色只能查看、修改自己相关的审批数据。这可以通过在数据库中添加角色字段,然后在查询时通过角色进行数据权限的控制。 综上所述,OA审批流程数据库设计需要考虑到用户、角色、审批流程审批历史等设计,同时要考虑流程模板、性能优化和数据权限管理等因素,以实现流程的顺畅进行。 ### 回答3: OA是办公自动化系统,审批流程是其中的一个重要模块。数据库设计是指设计和规划数据库的结构和关系,合理组织和存储数据以满足OA系统的审批流程需求。 首先,我们需要创建一个用户,用于存储用户的基本信息,包括姓名、职位、部门等。每个用户会有一个唯一的ID用于标识。 其次,我们需要创建一个流程,用于存储各种审批流程的信息,包括流程名称、描述、发起人、审批人等。每个流程也会有一个唯一的ID用于标识。 然后,我们需要创建一个节点,用于存储审批流程的节点信息,包括节点名称、审批人、审批状态等。每个节点也会有一个唯一的ID用于标识,并且与流程和用户建立关联。 接着,我们需要创建一个日志,用于存储审批流程的操作日志,包括操作时间、操作人、操作内容等。每个操作日志也会有一个唯一的ID用于标识,并且与节点和用户建立关联。 最后,我们可以根据业务需求,创建其他相关的,用于存储附件信息、文件信息等,以满足OA系统的审批流程功能。 在数据库设计中,需要考虑数据的完整性和安全性,可以使用数据库的约束、索引、触发器等技术手段实现。同时,也需要进行性能优化,合理组织数据的存储结构和索引以提高查询效率。 总之,OA审批流程数据库设计需要考虑用户、流程、节点、日志等多个方面的数据管理,以满足OA系统的审批流程需求,并且确保数据的完整性、安全性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值