博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流程审批设计
阅读量:4982 次
发布时间:2019-06-12

本文共 1373 字,大约阅读时间需要 4 分钟。

这是我的项目中使用的一套关于工作流和审批流的配置,算是比较简单的,这里只写其中比较核心的思路,算是对之前工作的一个技术总结吧。

以下是数据库设计;后面再跟据实例分析每个表的作用。

首先是流程配置表:

如果需要用到一个工作流就要先配置,test_workflow_configuration就需要存入该流程的基本信息

test_workflow_details需要存入该流程的工作流配置,需要几级审核等信息

然后是流程记录表:

这个表存储的是流程记录,每个流程送审之后都会存在这条记录中,一级审核完在插入下一级记录

最后是申请单表:

这个表存储的是申请单信息

ps:这里有一些关联设计的表被我省略了,只说最核心的思路,下面举个栗子

现在有一个工单申请需求

首先这个申请单记录记录应该存储在test_order中,包括单据号,创建日期,创建人等信息(相关业务明细另外建表)

然后配置审核流程

test_workflow_configuration中应该存入这个流程的基本信息

test_workflow_details中设置工作流配置(附图1)

接下来流程开始

第一步:该工单填写完毕,送审

当点击【送审】按钮时后台需要以下操作:

1.将test_order中的status改为1送审状态

2.流程记录表test_workflow_records插入工作流第一条记录(主管审核)

test_workflow_details里的post_id是主管岗位id,test_workflow_records里需要的是主管这个岗位上的人的id,作为assignee_id(该工作流受理人id)

第二步:主管登录系统,进入审批页面,跟据主管id/既是当前用户id(assignee_id)和(is_audit = 0)可以展示当前主管需要审核的所有申请。

    主管点击【审核】按钮,可根据document_code(申请单据号)展示当前申请的所有详细信息,选择【通过】/【驳回】,并填写意见等,最后点击【提交】。

此时后台需要做以下操作:

1.更新流程记录为已审核状态(is_audit=1)

2.跟据workflow_id查询该流程分为多少步(几条记录就是几步),取出当前记录的flow_serialnumber,判断是否是最后一步

若是最后一步 {

  判断当前记录是否通过

  若通过{

    编写审核通过的业务处理代码

  }  

  否则 {

    直接更新test_order申请状态为驳回(status=3)

  }

若不是最后一步{

  再判断当前记录是否审核通过

  若不通过{

    直接更新test_order申请状态为驳回(status=3)

  }

  若通过(这个栗子就走这种情况)

  {

    取出flow_serialnumber,+1,查询下一个节点(经理审核)

    

    流程记录表test_workflow_records插入工作流第二条记录(经理审核)

  }

插入处理方式同上

第三步:同第二步,此时流程走到经理这里,流程继续进行。

附上几张截图:

图1:工作流配置

图2:审核记录详情

转载于:https://www.cnblogs.com/Kingram/p/10905781.html

你可能感兴趣的文章
python--002--数据类型(list、tuple)
查看>>
把近期的小错误整理一下
查看>>
动态规划 —— 背包问题一 专项研究学习
查看>>
51nod 1571 最近等对 | 线段树 离线
查看>>
关于parseInt的看法
查看>>
从用户端到后台系统,严选分销教会我这些事
查看>>
数据分析融入至BI工具的新思路
查看>>
c#必会知识点
查看>>
网页使用MD5加密
查看>>
JS 基础
查看>>
HBase shell 中的十六进制数值表示
查看>>
Python3 中 configparser 模块解析配置的用法详解
查看>>
新手android环境搭建、debug调试及各种插件安装__图文全解
查看>>
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 win2008R2 X64 IIS7.5
查看>>
Diffuse贴图+Lightmap+Ambient
查看>>
矩阵树定理
查看>>
[算法]Evaluate Reverse Polish Notation
查看>>
go语言之进阶篇接口的定义和实现以及接口的继承
查看>>
SmartPhone手机网站的制作
查看>>
自适应全屏与居中算法
查看>>