diff --git a/Infrastructure/Const/FlowInstanceStatus.cs b/Infrastructure/Const/FlowInstanceStatus.cs index 3e3c86a3..67d3ca47 100644 --- a/Infrastructure/Const/FlowInstanceStatus.cs +++ b/Infrastructure/Const/FlowInstanceStatus.cs @@ -6,7 +6,7 @@ public struct FlowInstanceStatus { /// - /// 撤销、召回 + /// 召回 /// public const int Draft = -1; /// diff --git a/OpenAuth.App/Flow/FlowRuntime.cs b/OpenAuth.App/Flow/FlowRuntime.cs index bea0fa52..24e5e7c5 100644 --- a/OpenAuth.App/Flow/FlowRuntime.cs +++ b/OpenAuth.App/Flow/FlowRuntime.cs @@ -400,7 +400,7 @@ namespace OpenAuth.App.Flow } /// - /// 撤销流程,清空所有节点 + /// 召回流程,清空所有节点,返回开始节点并修改为草稿状态 /// public void ReCall(RecallFlowInstanceReq request) { @@ -428,13 +428,13 @@ namespace OpenAuth.App.Flow var sugarClient = AutofacContainerModule.GetService(); sugarClient.Updateable(flowInstance).ExecuteCommand(); - SaveOperationHis($"【撤回】备注:{request.Description}"); + SaveOperationHis($"【召回】备注:{request.Description}"); sugarClient.Ado.CommitTran(); } /// - /// 标记节点1通过,-1不通过,0驳回 + /// 标记节点1通过,2不通过,3驳回 /// /// public void MakeTagNode(string nodeId, Tag tag) diff --git a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs index affbbed0..7361b003 100644 --- a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs +++ b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs @@ -2,7 +2,7 @@ * @Author: yubaolee | ahfu~ <954478625@qq.com> * @Date: 2024-12-13 16:55:17 * @Description: 工作流实例表操作 - * @LastEditTime: 2025-10-18 14:35:01 + * @LastEditTime: 2026-06-11 22:35:03 * Copyright (c) 2024 by yubaolee | ahfu~ , All Rights Reserved. */ @@ -521,7 +521,7 @@ namespace OpenAuth.App $"结果:{(tag.Taged == 1 ? "同意" : "不同意")},备注:{tag.Description}"; wfruntime.SaveOperationHis(tag.UserId, tag.UserName, content); - if (flowInstance.IsFinish == 1) + if (flowInstance.IsFinish == FlowInstanceStatus.Finished) { //给知会人员发送通知信息 var userids = _userManagerApp.GetNoticeUsers(flowInstance.Id); @@ -593,20 +593,20 @@ namespace OpenAuth.App /// public void Verification(VerificationReq request) { + TagState tagState = (TagState)Int32.Parse(request.VerificationFinally); //如果是同意,需要判断是否为运行时选定下一步执行角色/执行人 - if (request.VerificationFinally == "1") + if (tagState == TagState.Ok) { CheckNodeDesignate(request); } - - bool isReject = TagState.Reject.Equals((TagState)Int32.Parse(request.VerificationFinally)); - if (isReject) //驳回 + + if (tagState == TagState.Reject) { - RejectNode(request); + RejectNode(request); // 驳回 } else { - NodeVerification(request); + NodeVerification(request); // 审核(同意/不同意) } } @@ -661,10 +661,12 @@ namespace OpenAuth.App ActivityId = flowinstance.ActivityId }); - if (flowinstance.IsFinish != FlowInstanceStatus.Running) + //流程已终止(完成/不同意/撤销等),不允许继续审批 + if (flowinstance.IsFinish != FlowInstanceStatus.Running && flowinstance.IsFinish != FlowInstanceStatus.Rejected) { - resp.CanVerify = false; //流程已终止(完成/不同意/撤销等),不允许继续审批 + resp.CanVerify = false; } + //当前用户不是当前节点的审批人,不允许继续审批 else if (flowinstance.MakerList != "1" && !flowinstance.MakerList.Contains(user.User.Id) && !approvers.Contains(user.User.Id)) { diff --git a/newdocs/docs/notes/core/flowinstance.md b/newdocs/docs/notes/core/flowinstance.md index 6459dd94..c7f2bbc4 100644 --- a/newdocs/docs/notes/core/flowinstance.md +++ b/newdocs/docs/notes/core/flowinstance.md @@ -122,9 +122,13 @@ OpenAuth.Net工作流分为两个大类: * 同意:流程审批通过,流程结束; -* 不同意:流程审批不通过,流程结束; +* **不同意(拒绝 / 反对)**:审批人明确不批准本次申请,属于终结性意见。 -* 驳回:可以驳回到指定的步骤,该步骤的人可以重新审批提交; + * 结果:本次申请失败,流程结束,如果重新发起新流程。 + +* **驳回(退回 / 打回)**:审批人认为资料不全 / 有误,需要修改后重提,属于回退 + 重走动作。 + + * 结果:流程未终结,可修复后继续。 diff --git a/newdocs/docs/notes/pro/start.md b/newdocs/docs/notes/pro/start.md index cbaae9dd..ab261c5a 100644 --- a/newdocs/docs/notes/pro/start.md +++ b/newdocs/docs/notes/pro/start.md @@ -4,27 +4,47 @@ createTime: 2025/04/23 23:43:26 permalink: /pro/start/ --- ## 工具准备 + #### NodeJs + 前端环境为NodeJs,下载地址:[http://nodejs.cn/download/current/](http://nodejs.cn/download/current/) + #### visual studio code + 下载最新版的vs code,或Cursor、Windsurf、Trae等工具用来作为OpenAuth.Net Vue3版的开发工具。 + ## 源码下载 + 根据授权文件的下载指示,下载Vue3源码。注意:一定要使用下图中的数据库脚本: ![2025-04-08-20-53-49](http://img.openauth.net.cn/2025-04-08-20-53-49.png) + ## 创建数据库 -* 新建一个空数据库:OpenAuthPro。使用上一步下载的【sql脚本】文件夹,根据你的数据库类型,选择运行你需要的脚本:`Sql Server脚本.sql`或`mysql脚本.sql` + +* 新建一个空数据库:OpenAuthPro。使用上一步下载的【sql脚本】文件夹,根据你的数据库类型,选择运行你需要的脚本:`Sql Server脚本.sql`或 `mysql脚本.sql` + ## 启动后端 + 启动后端请参考:[快速开始](/core/start/) + ## 启动前端 -使用Vs Code(或个人喜欢的工具)打开openauthvue3文件夹,修改配置文件`.env.dev`对应的后端接口地址,调整为自己的接口地址: + +使用Vs Code(或个人喜欢的工具)打开openauthvue3文件夹,修改配置文件 `.env.dev`对应的后端接口地址,调整为自己的接口地址: + ```javascript VITE_BASE_API = http://localhost:52789/api VITE_BASE_IMG_URL = http://localhost:52789 ``` + ::: warning 注意 -如果是发布打包,调整的文件为`.env.production` +如果是发布打包,调整的文件为 `.env.production` ::: -使用`npm install`命令安装程序运行所需的第三方包。再用`npm run dev`命令运行。如下图: -![2025-04-08-20-57-34](http://img.openauth.net.cn/2025-04-08-20-57-34.png) -启动成功后,使用浏览器访问[http://localhost:1803/](http://localhost:1803/) 即可打开vue3版界面: +使用 `npm install`命令安装程序运行所需的第三方包。在安装的过程中如果遇到卡住的情况,可能是ssl证书问题,可以使用以下命令进行配置: + +``` +npm config set strict-ssl false; npm config set registry https://registry.npmmirror.com +``` + +再用 `npm run dev`命令运行。如下图: +![2025-04-08-20-57-34](http://img.openauth.net.cn/2025-04-08-20-57-34.png)启动成功后,使用浏览器访问[http://localhost:1803/](http://localhost:1803/) 即可打开vue3版界面: + ![2025-04-08-21-03-19](http://img.openauth.net.cn/2025-04-08-21-03-19.png) diff --git a/newdocs/docs/notes/pro/startflow.md b/newdocs/docs/notes/pro/startflow.md index 9a972f2f..87045cff 100644 --- a/newdocs/docs/notes/pro/startflow.md +++ b/newdocs/docs/notes/pro/startflow.md @@ -145,9 +145,13 @@ OpenAuth.Net工作流分为两个大类: * 同意:流程审批通过,流程结束; -* 不同意:流程审批不通过,流程结束; +* **不同意(拒绝 / 反对)**:审批人明确不批准本次申请,属于终结性意见。 -* 驳回:可以驳回到指定的步骤,该步骤的人可以重新审批提交; + * 结果:本次申请失败,流程结束,如果重新发起新流程。 + +* **驳回(退回 / 打回)**:审批人认为资料不全 / 有误,需要修改后重提,属于回退 + 重走动作。 + + * 结果:流程未终结,可修复后继续。 * 加签:在已有审批流程上临时添加审批人,协助自己审批;