ch-flow纯自研审批流

业余时间写的一个审批流,设计有21张表,包含流程模版设计、版本控制、表单设计、开始节点、审批节点、决策节点、抄送节点、结束节点,审批节点和决策节点功能基本相同,都包含选择审批人、审批处理顺序(所有审批人同时审批和审批人按顺序审批)、审批处理规则(按百分比和按人数)、审批超时、找不到审批人时怎么处理、自动审批规则、节点审批事件处理(审批前、审批后、驳回后、撤回后、终止后),决策审批节点是一种举手表决的机制,只有当同意人数超过设置的阈值时才能进入下一节点,不同意人数达到设置的阈值时就会回退到开始节点或某个具体节点或上级节点或终止流程。

关键词:并行流程、排他流程、条件分支、分支判断、驳回到任意节点、驳回后直接提交给我、驳回后顺序审批、审批处理顺序、审批处理规则、事件监听、版本控制、超时审批、自动审批、表单设计、字段权限控制。

完全自主设计开发,符合中国人使用习惯的审批流,不依赖第三方流程框架。

不开源

软件架构

授权机制

功能介绍

一. 流程简介 本审批流实现串行和并行的流转方式,串行方式是节点依次进行审批,并行方式是多个节点可同时进行审批,提高审批效率。难点主要在于:

  1. 退回功能,需要对节点和线进行多次判断,需要不断监听合并节点和表单数据;
  2. 汇合节点,需要程序判定当前汇合节点以上的来源节点是否已处理完,可以进入汇合节点。
  3. 多分支退回操作时,如何正确退回到最近的节点。
  4. 流程引擎模版数据采用redis缓存机制,使用Least recently used 缓存淘汰策略,能够快速响应数据请求,提高模版数据查询速度。

二. 流程基础信息 

三. 流程表单设计 

 利用前端开源组件拖拽出表单

四. 流程模版设计 

 利用antv-x6前端组件拖拽出流程图

4.1. 审批节点

4.1.1. 设置审批人

  1. 指定成员:可选择一个或多个人员在当前节点参与审批。
  2. 发起人自己:指定当前审批人为流程发起人自己。
  3. 自定义接口:可通过全限定类名+方法名获取到当前节点所需要的审批人。
  4. 选择下一节点审批人:上一节点审批人审批之前可以指定下一节点的审批人。

4.1.2. 审批处理顺序

  1. 所有审批人同时处理:所有节点参与者都是待审批状态。
  2. 按审批人设置顺序依次处理:审批人根据节点选择审批人的顺序依次审批。

4.1.3 审批处理规则

  1. 按人数:当节点实际参与审批人数等于节点设置的流转人数,流转到下一节点。
  2. 按百分比:当节点实际参与审批人与节点设置的审批人相除的比例大于等于节点设置的人数时,流转到下一节点。 

    输入图片说明

4.1.4 审批期限

4.1.4.1. 超期配置

  1. 自动通过:当前节点在规定时间内节点状态没有改变,就自动通过当前节点,流转到下一节点。
  2. 自动驳回:当前节点在规定时间内节点状态没有改变,就自动驳回到设置的节点中。包含(开始节点、上级节点、指定节点、流程终止),指定节点只能选择一个节点。
  3. 发送提醒:当前节点在规定时间内节点状态没有改变,就自动执行提醒节点审批人的功能。可选择提醒一次和按时间间隔进行提醒。(只对当前节点还未执行审批的人进行提醒)

4.1.5 找不到审批人时

  1. 交给管理员审批:程序会检查节点上的处理人是否存在,如果不存在就转给流程管理员处理。
  2. 自动进入下一节点:程序会检查节点上的处理人是否存在,如果不存在就直接流转到下一节点。

4.1.6 节点提醒与评论

  1. 节点提醒:配置当前节点是否需要提醒审批人。
  2. 节点评论:配置当前节点是否能打开评论。

4.1.7 自动审批规则

  1. 不启用。
  2. 审批人与上一节点处理人相同:当前节点的审批人在上一节点中处理过。
  3. 审批人处理过该流程:当前节点的审批人在以上已经处理过的分支处理过。 

4.1.8 节点事件

输入全限定类名,并继承抽象类EventHandle,在具体实现中编写具体的业务逻辑。 

输入图片说明

输入图片说明

4.1.9 节点权限

  1. 审批:待处理流程出现审批按钮。默认打开,禁止关闭。
  2. 暂存:审批人对表单进行保存,不影响流程流转操作。
  3. 终止:直接终止流程流转动作。
  4. 撤回:允许节点处理人撤回当前节点,前提下一节点未审批。
  5. 转办:允许节点处理人将本次审批转交给其他人处理。
  6. 加签:允许节点处理人临时加入一人进行审批。
  7. 退回:允许节点处理人将当前节点退回到上级节点、流程终止和指定节点范围内。 

    输入图片说明

4.1.10 退回后提交方式

退回配置:

1:上级节点

2:指定节点:程序自动获取到当前节点以上分支线的所有节点。

3:流程终止

退回后提交方式:

按照流程顺序审批:节点被退回后将会按照当前的流程顺序进行审批。

直接提交到当前节点:被退回的节点提交后会直接提交到当前执行退回操作的节点,跳过中间的其他节点和线路。

输入图片说明

4.1.11 字段权限

对每个节点在审批过程中的表单字段进行控制。

1.编辑:允许审批人在当前节点时可对表单中这个字段进行编辑操作。

2.可见:允许审批人在当前节点时可看见这个表单中的字段信息。

3.必填:在当前节点提交表单时必须填写数据。

4.简报:主要用于页面端展示或其他。

5.1 决策节点

审批节点与决策节点属性大抵相同,只有在审批处理规则和节点权限有区别。本质上属于不同节点的原因在于,审批节点只有审批提交功能,按照处理规则进行节点流转。决策节点主要用于类似于一种投票选举的机制,分为同意和不同意两个按钮,当同意人数达到一定数量或比例时就会进行节点流转,当不同意达到一定数量或比例时就会进行驳回操作。

5.1.1 审批处理规则

同意人数或比例满足条件时进入下一节点; 不同意人数或比例满足条件时就进行驳回操作;

输入图片说明

5.1.2 节点权限

决策节点默认打开同意和不同意按钮。

输入图片说明

6.1 抄送节点

可在抄送节点进行人员设置,也可对抄送节点的人员查看权限进行控制。

输入图片说明

7.1 流程版本控制

版本具有三种状态:历史、设计中、启用中。

历史版本:指已经被启用过的,但是又被舍弃的版本,归属于历史版本。

设计中:指还未被投入使用过的版本。

启用中:指当前版本是正在被使用的。

输入图片说明

版本启停控制:每个版本初始化都是开启的状态,当不需要该版本时可直接暂停当前版本。

8.1 分支条件判断

流程绘制时点击流程线。

1 数据流转条件:1:使用自定义流转条件;2:使用else

2 条件:或、与

3 或:满足以下一个条件即可;与:需要满足以下所有条件;

使用else条件指的是当其他分支的条件都不满足时,就会走这个条件,相当于最后的肯定会走的分支条件。

输入图片说明

9.1 流程流转

  1. 审批

输入图片说明

输入图片说明

  1. 退回

输入图片说明

输入图片说明

输入图片说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值