2025-04-06 02:02:30 +08:00
|
|
|
|
# 工作流介绍
|
2024-04-17 11:34:59 +08:00
|
|
|
|
|
2025-04-06 02:02:30 +08:00
|
|
|
|
OpenAuth.Net工作流基于国际标准的BPMN2.0规范,并在此基础上做了一些扩展,以满足国内各种需求。系统工作流分为两个大类:
|
2024-04-17 11:34:59 +08:00
|
|
|
|
|
2025-04-06 02:02:30 +08:00
|
|
|
|
1. 无业务关联流程,如请假、报销等。
|
2024-04-17 11:34:59 +08:00
|
|
|
|
|
2025-04-06 22:36:15 +08:00
|
|
|
|

|
|
|
|
|
|
2025-04-06 02:02:30 +08:00
|
|
|
|
2. 有业务关联流程,如采购、销售等。
|
2024-04-17 11:34:59 +08:00
|
|
|
|
|
2025-04-06 22:36:15 +08:00
|
|
|
|

|
|
|
|
|
|
2025-04-06 02:02:30 +08:00
|
|
|
|
这两种流程的差异有以下几点:
|
2024-04-17 11:34:59 +08:00
|
|
|
|
|
2025-04-06 02:02:30 +08:00
|
|
|
|
| 对比维度 | 无业务关联流程 | 有业务关联流程 |
|
|
|
|
|
|---------|--------------|--------------|
|
|
|
|
|
| 适用场景 | 请假、报销等日常办公 | 采购、销售、入库等业务操作 |
|
|
|
|
|
| 发起方式 | 流程中心 -> 我的流程 -> 新的申请 | 直接在业务模块中发起(如:仓储中心 -> 入库订单 -> 送审) |
|
|
|
|
|
| 表单类型 | 简单表单,适用拖拽表单设计器 | 复杂表单,需要自定义表单或URL表单 |
|
|
|
|
|
| 审批结束处理 | 仅更新流程状态 | 需要修改业务数据状态 |
|
2024-06-24 10:14:31 +08:00
|
|
|
|
|
2025-04-06 02:02:30 +08:00
|
|
|
|
表中提到的表单类型差异可以查看:[表单设计](./form.md)
|
2024-10-22 15:46:13 +08:00
|
|
|
|
|
|
|
|
|
|
2023-08-11 17:47:02 +08:00
|
|
|
|
# 基本操作
|
|
|
|
|
|
2025-04-09 21:33:05 +08:00
|
|
|
|
一个完整的工作流从设计到发起,到审批,需要经过:
|
2023-08-11 17:47:02 +08:00
|
|
|
|
|
2025-04-09 21:33:05 +08:00
|
|
|
|
1. 表单设计:【基础配置/表单设计】中添加一个用于流程的表单;
|
2023-08-11 17:47:02 +08:00
|
|
|
|
|
2025-04-09 21:33:05 +08:00
|
|
|
|
2. 流程设计:【基础配置/流程设计】中添加一个流程模版,流程模版选择刚刚建的表单;
|
2023-08-11 17:47:02 +08:00
|
|
|
|
|
2025-04-09 21:33:05 +08:00
|
|
|
|
3. 流程发起:【流程中心/我的流程】中【新的申请】创建一个流程实例,或在业务系统中直接【送审】发起;
|
|
|
|
|
|
|
|
|
|
4. 流程审批:【流程中心/待处理流程】中进行审批;
|
|
|
|
|
|
|
|
|
|
这里只介绍开源版本的操作流程,vue版本操作流程请参考:[操作手册](/pro/startflow.md)
|
2023-08-11 17:47:02 +08:00
|
|
|
|
|
|
|
|
|
# 流程审批逻辑
|
|
|
|
|
|
|
|
|
|
当最终用户在【待处理流程】中审批一个流程实例时,流程实例会经过下面步骤进行处理:
|
|
|
|
|
|
|
|
|
|
@startuml
|
|
|
|
|
skinparam handwritten true
|
|
|
|
|
skinparam backgroundColor #EEEBDC
|
|
|
|
|
|
|
|
|
|
start
|
|
|
|
|
if (当前活动节点类型为会签) then (yes)
|
|
|
|
|
:标识当前节点状态;
|
|
|
|
|
:从所有的分支中找到一个用户可以审批的节点canCheckId;
|
|
|
|
|
if (没找到?) then (yes)
|
|
|
|
|
stop
|
|
|
|
|
endif
|
|
|
|
|
:标识canCheckId节点状态;
|
|
|
|
|
#HotPink:进行会签,结果为res;
|
|
|
|
|
if(res == TagState.No) then (yes)
|
|
|
|
|
:修改流程最终状态为不同意;
|
|
|
|
|
else if(res != string.Empty) then (yes)
|
|
|
|
|
stop
|
|
|
|
|
else (no)
|
|
|
|
|
:修改流程最终状态,修改活动节点,修改可执行人;
|
|
|
|
|
:添加扭转记录;
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
else (no)
|
|
|
|
|
:标识当前节点状态;
|
|
|
|
|
if (同意) then (yes)
|
|
|
|
|
:修改流程最终状态,修改活动节点,修改可执行人;
|
|
|
|
|
:添加扭转记录;
|
|
|
|
|
else
|
|
|
|
|
:修改流程最终状态为不同意;
|
|
|
|
|
endif
|
|
|
|
|
:操作记录;
|
|
|
|
|
endif
|
|
|
|
|
stop
|
|
|
|
|
|
|
|
|
|
@enduml
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|