审批流(一)


需求:


审批流程自定义
审批的每个节点可以有多个审核人,有一个失败则视为审批失败
审批的过程可以自由前进后退:
当发文到达某个节点失败后,会自动被打回到上一个节点.
上一个节点可以选择修改后继续提交,或者再打回到上一个节点.

整个审批可以看成是三种状态:


1.草稿:
来自两种情况:1.发起人刚起草审核.2.审核被第一个审核人打回

此状态下发起人可自由修改发文


2.审批中:

不管是正常审批,审批失败往回打,还是修改后重新提交.都放入这一个状态
作为发起人:只可查看当前审批状态.

作为审批者:只可查看审批流程节点轮到自己的发文


3.审批完成:



一.如何确定一套流程

这里使用2个表,一对多的关系,用来表示一套流程

举例:

现在要确定一套流程,他的名字叫做 "前期部审批流程"

这套流程需要走4道手续,其中有第3道手续需要2个部门同时通过才算是通过.

这个时候需要往定制流程表里插入一条数据

往流程表插入5条数据

*


其中的deptId是指由哪个部门来审批,node表示它在流程中是第几个轮到的,node相同的就说明是由多个人共同决定的


二.如何发起一套流程


上面讲的,确定一套流程,那只不过是一个模版,一个流程确定了,以后就可以根据这个模版来,

至于实际的某个发文用到了流程,那该怎么办?


新建一个如下的流程表


然后把对应的流程的一个个节点全部搬到审批流程表中来.

需要几个部门来审核,就往审批流程表里插入几条数据.


举例:

还是上面的情景,现在要发起一套上面的流程,数据库情况如下:

上表中的flowId是完全冗余没用了,,就当没这个把

可以看到把node deptId都拷过来了,另外还加入了checkCommon,用于记录每个节点的审批意见;checkResult,用于记录每个节点的审批结果.

这里还有一个baseProjectId,用来标记这是哪个项目对应的流程,后面再说.


现在的状态是审批到了第3个节点.

前面1.2都是同意的.3中的其中一个人是同意的,3中的另一个人是不同意的

所以说现在的状态应该是打回到2,让2决定是继续回滚还是修改后继续提交.


但是如果2修改后提交了,表中的状态还是:

1.2同意,3同意不同意各一个....这就出问题了


怎么确定现在的状态是3刚打回去,还是2修改后重新提交的呢???

下回分解.....




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值