From 8027c7b5bbac8dcb3fc711cd5db5edfeb6fed0de Mon Sep 17 00:00:00 2001 From: wintel Date: Sat, 19 Apr 2025 11:40:59 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vuepress/config.js | 4 +- docs/core/flowinstance.md | 104 ++++++++++++------ ...owinstancestatus.md => flowinstancedev.md} | 68 ++++++++++-- 3 files changed, 130 insertions(+), 46 deletions(-) rename docs/core/{flowinstancestatus.md => flowinstancedev.md} (81%) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index a0515914..e3dca376 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,7 +1,7 @@ /* * @Author: yubaolee | ahfu~ <954478625@qq.com> * @Date: 2023-08-12 10:48:24 - * @LastEditTime: 2025-04-09 20:38:14 + * @LastEditTime: 2025-04-19 10:14:48 * @Description: * @ * @Copyright (c) 2023 by yubaolee | ahfu~ , All Rights Reserved. @@ -114,7 +114,7 @@ module.exports = { title: '工作流', // 必要的 sidebarDepth: 1, // 可选的, 默认值是 1 collapsable: false, - children: ['flowinstance','flowinstanceconcept', 'flowinstancestatus', 'thirdparty'], + children: ['flowinstance','flowinstanceconcept','flowinstancedev', 'thirdparty'], }, { title: '前端开发', // 必要的 diff --git a/docs/core/flowinstance.md b/docs/core/flowinstance.md index 3f365f95..6784ebb5 100644 --- a/docs/core/flowinstance.md +++ b/docs/core/flowinstance.md @@ -34,47 +34,81 @@ OpenAuth.Net工作流基于国际标准的BPMN2.0规范,并在此基础上做 4. 流程审批:【流程中心/待处理流程】中进行审批; -这里只介绍开源版本的操作流程,vue版本操作流程请参考:[操作手册](/pro/startflow.md) +这里只介绍开源版本的操作流程,vue版本操作流程请参考👉[操作手册](/pro/startflow.md) -# 流程审批逻辑 +## 流程设计 -当最终用户在【待处理流程】中审批一个流程实例时,流程实例会经过下面步骤进行处理: +在【基础配置/流程设计】界面,点击“添加模板”。填写好流程模板的名称及需要的信息。点击“选择表单”选择流程关联的表单。 -@startuml -skinparam handwritten true -skinparam backgroundColor #EEEBDC +![2025-04-19-10-16-58](http://img.openauth.net.cn/2025-04-19-10-16-58.png) -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 +流程模版使用的表单,需要在【基础配置/表单设计】中添加,具体查看[表单设计-基本介绍](/core/form.html) -else (no) - :标识当前节点状态; - if (同意) then (yes) - :修改流程最终状态,修改活动节点,修改可执行人; - :添加扭转记录; - else - :修改流程最终状态为不同意; - endif - :操作记录; -endif -stop +选择好表单后,点击“流程设计”进入流程设计。 + +![2025-04-19-10-19-59](http://img.openauth.net.cn/2025-04-19-10-19-59.png) + + +#### 节点属性 + +* 节点名称:**必填** 节点名称 +* 三方回调URL:当节点审批完成时,如果需要通知其他系统或模块,则填写对应系统的接口地址。 +* 执行权限 **必填** 节点的执行权限,如:指定用户、指定角色等。 + * 所有用户: 任何人都可以审批 + * 指定用户:指定用户审批,当选中这项时需要选择指定的用户 + * 指定角色:指定角色审批,当选中这项时需要选择指定的角色 + +👉使用[vue版本](/pro/startflow.html),解锁更多类型:指定SQL、上一节点执行人的直属上级、连续多级直属上级、部门负责人、运行时指定角色、运行时指定用户等等,当然你也可以为[开源版本](https://gitee.com/dotnetchina/OpenAuth.Net)贡献代码,添加更多类型。 + +👉使用[vue版本](/pro/startflow.html),设置连线条件属性。你也可以为[开源版本](https://gitee.com/dotnetchina/OpenAuth.Net)贡献代码,让它支持该属性。 + +## 流程发起 + +OpenAuth.Net工作流分为两个大类: + +1. 无业务关联流程,如请假、报销等。 + +2. 有业务关联流程,如采购、销售、入库等。 + +这两种流程的差异有以下几点: + +| 对比维度 | 无业务关联流程 | 有业务关联流程 | +|---------|--------------|--------------| +| 适用场景 | 请假、报销等日常办公 | 采购、销售、入库等业务操作 | +| 发起方式 | 流程中心 -> 我的流程 -> 新的申请 | 直接在业务模块中发起(如:仓储中心 -> 入库订单 -> 送审) | +| 表单类型 | 简单表单,适用拖拽表单设计器 | 复杂表单,需要自定义表单或URL表单 | +| 审批结束处理 | 仅更新流程状态 | 需要修改业务数据状态 | + +开源版本只能发起无业务关联的流程,使用[vue版本](/pro/startflow.html),解锁有业务类型关联的流程。当然你也可以为[开源版本](https://gitee.com/dotnetchina/OpenAuth.Net)贡献代码,支持更多类型。 + +### 无业务关联流程 + +完成流程模版设计后,在【流程中心/我的流程】中【新的申请】开始创建一个流程实例。 + +![2025-04-19-10-37-09](http://img.openauth.net.cn/2025-04-19-10-37-09.png) + +1. 在左边选择流程模版; + +2. 填写待审批的表单内容; + +3. 保存完成后,在【流程中心/我的流程】中点击“搜索”按钮刷新查询,就可以看到刚刚发起的流程实例。 + +## 流程审批 + +用户可以在【流程中心/待处理流程】中看到自己需要审批的流程,点击【处理】按钮并进行相应的处理; + +![2025-04-09-21-28-42](http://img.openauth.net.cn/2025-04-09-21-28-42.png) + +其中: + +* 同意:流程审批通过,流程结束; + +* 不同意:流程审批不通过,流程结束; + +* 驳回:可以驳回到指定的步骤,该步骤的人可以重新审批提交; + +👉使用[vue版本](/pro/startflow.html),解锁更多加签、撤销审批操作。你也可以为[开源版本](https://gitee.com/dotnetchina/OpenAuth.Net)贡献代码,让它支持这些功能。 -@enduml diff --git a/docs/core/flowinstancestatus.md b/docs/core/flowinstancedev.md similarity index 81% rename from docs/core/flowinstancestatus.md rename to docs/core/flowinstancedev.md index 397a7ce4..af95870d 100644 --- a/docs/core/flowinstancestatus.md +++ b/docs/core/flowinstancedev.md @@ -1,21 +1,52 @@ -# 流程实例 +# 流程相关的代码 -流程实例指正在运行的一个流程。数据存放在FlowInstance表中,该表核心字段如下: +## 流程审批逻辑 -#### IsFinish:流程的当前状态 +当最终用户在【待处理流程】中审批一个流程实例时,流程实例会经过下面步骤进行处理: -- -1 草稿/召回:流程发起人主动召回流程; +@startuml +skinparam handwritten true +skinparam backgroundColor #EEEBDC -- 0 正在运行; +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 -- 1 完成:流程结束,同时所有的审批都通过; +else (no) + :标识当前节点状态; + if (同意) then (yes) + :修改流程最终状态,修改活动节点,修改可执行人; + :添加扭转记录; + else + :修改流程最终状态为不同意; + endif + :操作记录; +endif +stop -- 3 不同意:即流程结束,同时审批人员没有通过; +@enduml -- 4 驳回:流程结束,可能发起的流程内容有问题,要求被驳回重新提交; +## 流程模板 +流程模板指流程的定义。数据存放在FlowScheme表中,该表核心字段如下: -#### ActivityId: 当前活动节点,即待审批的节点 +#### FrmId:流程模版关联的表单id + +#### FrmType:表单类型 #### SchemeContent:流程实例的具体内容 @@ -128,6 +159,25 @@ | CanWriteFormItemIds | 数组 | 可写表单项id | +## 流程实例 + +流程实例指正在运行的一个流程。数据存放在FlowInstance表中,该表核心字段如下: + +#### IsFinish:流程的当前状态 + +- -1 草稿/召回:流程发起人主动召回流程; + +- 0 正在运行; + +- 1 完成:流程结束,同时所有的审批都通过; + +- 3 不同意:即流程结束,同时审批人员没有通过; + +- 4 驳回:流程结束,可能发起的流程内容有问题,要求被驳回重新提交; + + +#### ActivityId: 当前活动节点,即待审批的节点 + 与流程实例密切相关的还有两个表:流程实例的操作记录FlowInstanceOperationHistory及流转记录FlowInstanceTransitionHistory。它们有不同的作用: ### 操作记录FlowInstanceOperationHistory