常见公司企业OA办公签核审批流、工作流实现顺序层级审批、层层签核的方式 纯SQL 后端实现
常见公司企业OA办公签核审批流、工作流实现层级审批、层层签核的方式 纯SQL 后端实现
最近在翻新公司的vb到c#的项目,研究了下工作流签核系统这块,可以逐级审批,退回到指定层,产生审批流列表也是后台sql 动态定制,以及邮件提醒等,完全是大神同事们自己写的底层dll分装实现的,代码非常棒。不禁让我想起以前接触和维护过的明基集团那套 flower 签核系统,那个更是独立的模块可以和其他公司的OA,web系统做接口,属于卖钱的货。于是我有了一股重新整理下自己见解的想法。
简单的介绍下目前接触过的常用的审批流:
- 1.顺序审批。提交人,审批人必须一层层往下批准,下一个审批人必须同意,该签核才可继续下去。常见于级别不同的领导的层级审批。比如行政采购办公用品:行政助理提交->直属主管批准->部门经理批准->公司老总批准
- 2.平行审批,任一审批人通过。 在顺序审批的过程中,有时候会由级别相同或相似的人员去审批,他们的级别是平等,只要一个人批准通过,该流程就可以继续往下。比如物流单价的复核: 物流助理提交基本数据-> 另外两个助理复核数据正确性,其中任何一个核对ok批准 -> 物流经理
- 3.平行审批,会签。 在顺序审批的过程中,有时候会由级别相同或相似的人员去审批,但是必须他们两个人都批准,流程方可继续往下。比如客户投诉, 销售部提交投诉信息-> 生产部经理,研发部经理,物流部经理三种同一层级,提供各自意见, 三者必须都审批通过->公司老总
以上所列的三种基本方式,具体看公司的业务流程需要来制定。
本人模拟了一个简单的审批流程,0-4 表示层级,
层级1 只有测试员 00126 一个人 ,只要其审批完,系统自动进入 2 层。
层级2 有两个审批人,但是他们的审批方式是either,只要 测试员 00121 或 测试员 00092 任何一人审批后,系统就可以自动进入下一层3
层级3 有两个审批人,但是审批方式没有 either, 表示 测试员00117 和 测试员00099 这两个人都必须审批完,系统才会进入下一层4
下面是模拟的数据:
1.提交人(测试员 SAR)层级为 0,其提交后,系统进入下一层级为 1 ,等待 测试员 00126 审批
2.当1 层 测试员00126 审批完后,系统进入第2层,此时出现提醒,测试员00121 或者 测试员00092 任何一人审批即可:
3.用测试员00121 登录并批准后,系统自动略过了2层相同层级的 [测试员00092],并标注为 auto skip。 因为 测试员00121 和 测试员00092 都是2层,并且设定只需任何1人审批即可(没有先后顺序),
然后系统自动进入 3层。
4. 测试员00117 和 测试员 00099 都属于第3层, 由于没有设置 either 审批方式, 所以这两位都必须审批后(没有先后顺序),系统才能转入第4层:
5.测试员 00080 是最有第4层审批完, 其审批后,整个流程结束
综上所述,大致简单流程就是这样,审批完后,可以继续操作其他实际业务步骤,比如申请财务报销,审批完后,将报销数据抛送到公司的erp财务模块产生ap付款凭证。既简化了手工一层层的传递审批步骤,又节省了纸张开支,是不是很方便?
至于后台的实现并不复杂,主要两个表,一个表用来记录总层数和当前层数, 另一个表用来记录每层审批人的姓名,级别,层级等,底层原理就是通过调用比如sql server中写好的存储过程,将数据中层级的变化,在页面上来反映出来。而明基那套flower 系统则更复杂,当前审批人可以在其当前层级的前后,灵活增加其他审批人等操作,非常灵活。
具体一些代码实现可以看这篇文章
当前文章地址: https://www.zyxpp.com/oaworkflowapprove/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
我心飞
可否提供具体的代码
匿名
不错