mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-06-22 16:42:08 +08:00
🔄refactor: 优化流程
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
public struct FlowInstanceStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 撤销、召回
|
||||
/// 召回
|
||||
/// </summary>
|
||||
public const int Draft = -1;
|
||||
/// <summary>
|
||||
|
||||
@@ -400,7 +400,7 @@ namespace OpenAuth.App.Flow
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 撤销流程,清空所有节点
|
||||
/// 召回流程,清空所有节点,返回开始节点并修改为草稿状态
|
||||
/// </summary>
|
||||
public void ReCall(RecallFlowInstanceReq request)
|
||||
{
|
||||
@@ -428,13 +428,13 @@ namespace OpenAuth.App.Flow
|
||||
var sugarClient = AutofacContainerModule.GetService<ISqlSugarClient>();
|
||||
sugarClient.Updateable(flowInstance).ExecuteCommand();
|
||||
|
||||
SaveOperationHis($"【撤回】备注:{request.Description}");
|
||||
SaveOperationHis($"【召回】备注:{request.Description}");
|
||||
|
||||
sugarClient.Ado.CommitTran();
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 标记节点1通过,-1不通过,0驳回
|
||||
/// 标记节点1通过,2不通过,3驳回
|
||||
/// </summary>
|
||||
/// <param name="nodeId"></param>
|
||||
public void MakeTagNode(string nodeId, Tag tag)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: yubaolee <yubaolee@163.com> | 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
|
||||
/// </summary>
|
||||
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))
|
||||
{
|
||||
|
||||
@@ -122,9 +122,13 @@ OpenAuth.Net工作流分为两个大类:
|
||||
|
||||
* 同意:流程审批通过,流程结束;
|
||||
|
||||
* 不同意:流程审批不通过,流程结束;
|
||||
* **不同意(拒绝 / 反对)**:审批人明确不批准本次申请,属于终结性意见。
|
||||
|
||||
* 驳回:可以驳回到指定的步骤,该步骤的人可以重新审批提交;
|
||||
* 结果:本次申请失败,流程结束,如果重新发起新流程。
|
||||
|
||||
* **驳回(退回 / 打回)**:审批人认为资料不全 / 有误,需要修改后重提,属于回退 + 重走动作。
|
||||
|
||||
* 结果:流程未终结,可修复后继续。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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源码。注意:一定要使用下图中的数据库脚本:
|
||||

|
||||
|
||||
## 创建数据库
|
||||
* 新建一个空数据库: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`命令运行。如下图:
|
||||

|
||||
启动成功后,使用浏览器访问[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`命令运行。如下图:
|
||||
启动成功后,使用浏览器访问[http://localhost:1803/](http://localhost:1803/) 即可打开vue3版界面:
|
||||
|
||||

|
||||
|
||||
@@ -145,9 +145,13 @@ OpenAuth.Net工作流分为两个大类:
|
||||
|
||||
* 同意:流程审批通过,流程结束;
|
||||
|
||||
* 不同意:流程审批不通过,流程结束;
|
||||
* **不同意(拒绝 / 反对)**:审批人明确不批准本次申请,属于终结性意见。
|
||||
|
||||
* 驳回:可以驳回到指定的步骤,该步骤的人可以重新审批提交;
|
||||
* 结果:本次申请失败,流程结束,如果重新发起新流程。
|
||||
|
||||
* **驳回(退回 / 打回)**:审批人认为资料不全 / 有误,需要修改后重提,属于回退 + 重走动作。
|
||||
|
||||
* 结果:流程未终结,可修复后继续。
|
||||
|
||||
* 加签:在已有审批流程上临时添加审批人,协助自己审批;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user