企业级 OA 多级审批流程设计、实现方案(细节满满)

您所在的位置:网站首页 银行柜员角色系统审批流程数字化改进 企业级 OA 多级审批流程设计、实现方案(细节满满)

企业级 OA 多级审批流程设计、实现方案(细节满满)

2024-07-12 16:04:35| 来源: 网络整理| 查看: 265

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

👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 /  每月赠书

新项目:仿小红书(微服务架构)正在更新中... , 全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ 。全程手摸手,后端 + 前端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,直到项目上线。目前已更新了261小节,累计43w+字,讲解图:1806张,还在持续爆肝中.. 后续还会上新更多项目,目标是将Java领域典型的项目都整一波,如秒杀系统, 在线商城, IM即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,已有1500+小伙伴加入(早鸟价超低)

9826a3459f5ae8738f2b0777cbe47aa6.gif

被审核流程

审批流主表 AuditFlow

审批流明细表 AuditFlowDetail

加班表 OverTimeAsk

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

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

被审核流程

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

611e04423e4d933b5fb08477c4942bff.png

图片

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

以加班表单为例子

4b8f0a6e8d7263d2e2cb7ad42b313c07.png

图片

指定完成之后,点击提交即可。

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

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

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

审批流主表 AuditFlow Column NameData TypeDescribeFlowNoVarchar(50) not null primary key审批编号返回yyyMMddHHmm+n位随机数TitleNvarchar(50) not null标题(例如:某某人的加班申请)BusTypeVarchar(20) not null审批类型(根据业务表定义Code,区分表单)AddUserNoDatetime not null申请人AddTimeVarchar(50) not null添加时间ApproStatusInt not null审核状态(1.待审,2.通过.3.驳回,4.撤销)

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

ApproFlow:1 =======> n :ApproFlowDetail 审批流明细表 AuditFlowDetail Column NameData TypeDescribeIDInt not null primary key identity(1,1)主键自增列FlowNoVarchar(50) not null审批编号,关联主表AuditUserNoVarchar(50) not null审核人AuditRemarkNvarchar(500)审核备注AuditTimeDatetime审核时间AuditStatusInt not null审核状态(1.审核中,2.待我审批.3.通过,4.驳回)

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

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

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

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

加班表 OverTimeAsk Column NameData TypeDescribeFlowNoVarchar(50) not null primary key关联AuditFlow表AddUserNoVarchar(20) not null添加用户NoAddTimeDatetime not null添加时间AskReasonNvarchar(50) not null加班事由RemarkNvarchar(100)备注LeaveTimeFromDatetime not null加班开始时间LeaveTimeToDatetime not null加班结束时间OverTimeHoursdecimal(10,2)加班总小时

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

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

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

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

提交需要进行的操作

录入当前审批业务表,也就是加班申请表的数据

审批流主表插入一条数据

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

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

注意要点:

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

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

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

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

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

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

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

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

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

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

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

实现思路与细节如下:

根据表单提交操作来判断审核是否同意

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

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

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

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

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

实现细节

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

审核不同意操作大致同上

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

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

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

10977752cc6baf00b0f026aeede4793a.png

图片

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

👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 /  每月赠书

新项目:仿小红书(微服务架构)正在更新中... , 全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ 。全程手摸手,后端 + 前端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,直到项目上线。目前已更新了261小节,累计43w+字,讲解图:1806张,还在持续爆肝中.. 后续还会上新更多项目,目标是将Java领域典型的项目都整一波,如秒杀系统, 在线商城, IM即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,已有1500+小伙伴加入(早鸟价超低)

f34129c19ae486f9997667fc76a41b7a.gif

f5111ca8db3b5d90ed53f60ff243ce45.jpeg

5092a67e4f63d9c35d1822a85ca5e354.gif

1. 我的私密学习小圈子~ 2. 干掉 powerdesigner,设计数据库表用它就够了! 3. 【冷门但实用】快速测试 Mybatis 复杂SQL,无需启动 Spring 4. 不好意思,HttpClient 该换了! 最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。 获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。 PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。 点“在看”支持小哈呀,谢谢啦


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭