TJC.Cyclops.ApprovalFlow
2026.5.11.1
dotnet add package TJC.Cyclops.ApprovalFlow --version 2026.5.11.1
NuGet\Install-Package TJC.Cyclops.ApprovalFlow -Version 2026.5.11.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TJC.Cyclops.ApprovalFlow" Version="2026.5.11.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TJC.Cyclops.ApprovalFlow" Version="2026.5.11.1" />
<PackageReference Include="TJC.Cyclops.ApprovalFlow" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TJC.Cyclops.ApprovalFlow --version 2026.5.11.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TJC.Cyclops.ApprovalFlow, 2026.5.11.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TJC.Cyclops.ApprovalFlow@2026.5.11.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TJC.Cyclops.ApprovalFlow&version=2026.5.11.1
#tool nuget:?package=TJC.Cyclops.ApprovalFlow&version=2026.5.11.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Cyclops.ApprovalFlow
🔄 灵活强大的审批流程引擎 🔄
Cyclops.ApprovalFlow 是企服版框架中的审批流开发套件,提供灵活、可扩展的工作流管理能力。该项目采用图论模型设计,通过节点和边的组合构建复杂的审批流程,支持多种节点类型和流转逻辑,为企业应用提供强大的业务流程管理支持。
🌟 核心特性
- 图式流程定义:基于图论的流程模型,通过节点和边的组合构建复杂审批流程
- 多样化节点类型:支持开始节点、服务节点、用户节点、网关节点、结束节点等多种节点类型
- 会签聚合策略:支持自动通过、全票通过、任一人通过、过半通过、百分比通过等多种聚合模式
- 灵活的流转逻辑:支持条件流转、并行分支、串行审批等复杂流程场景
- 可视化流程设计:支持流程的可视化配置和管理
- 流程监控:实时监控流程执行状态和进度
- 自动推进机制:根据预设规则自动推进流程,提高审批效率
- 可扩展的节点处理器:支持自定义节点处理逻辑
- 完整的事件系统:提供流程生命周期事件,便于集成业务逻辑
🛠️ 技术栈
- 开发框架:.NET 8.0
- 项目类型:类库(Class Library)
- 核心依赖:
- Cyclops.Common:提供通用工具类支持
- Cyclops.DI:提供依赖注入能力
📦 安装
dotnet add package Cyclops.ApprovalFlow
🚀 快速开始
1. 从JSON文件加载流程定义
using Cyclops.ApprovalFlow;
// 创建流程构建器实例
var flowBuilder = new FlowBuilder();
// 从JSON文件加载流程定义
string jsonPath = "path/to/your/flowdefinition.json";
var executor = await flowBuilder.CreateExecutorFromJsonFileAsync(jsonPath);
2. 从JSON字符串加载流程定义
using Cyclops.ApprovalFlow;
// 创建流程构建器实例
var flowBuilder = new FlowBuilder();
// 流程定义JSON字符串
string flowJson = @"{
""key"": ""LeaveApprovalFlow"",
""name"": ""请假审批流程"",
""nodes"": [
{
""id"": ""start"",
""type"": ""start-node"",
""text"": { ""value"": ""开始"" }
},
{
""id"": ""manager-approval"",
""type"": ""user-node"",
""text"": { ""value"": ""经理审批"" },
""properties"": {
""assignee"": ""manager""
}
},
{
""id"": ""end"",
""type"": ""end-node"",
""text"": { ""value"": ""结束"" }
}
],
""edges"": [
{
""id"": ""edge1"",
""sourceNodeId"": ""start"",
""targetNodeId"": ""manager-approval"",
""text"": { ""value"": ""提交"" }
},
{
""id"": ""edge2"",
""sourceNodeId"": ""manager-approval"",
""targetNodeId"": ""end"",
""text"": { ""value"": ""通过"" }
}
]
}";
// 从JSON字符串加载流程定义
var executor = await flowBuilder.CreateExecutorFromJsonStringAsync(flowJson, "LeaveApprovalFlow");
3. 初始化并启动流程引擎
using Cyclops.ApprovalFlow;
// 初始化流程引擎
var flowEngine = FlowEngine.Instance;
// 启动流程引擎
await flowEngine.StartAsync();
📋 节点类型说明
| 节点类型 | 类型标识 | 说明 |
|---|---|---|
| 开始节点 | start-node | 流程入口,标识流程启动 |
| 服务节点 | service-node | 自动执行的服务任务,按配置调用目标服务方法 |
| 服务网关 | service-gateway-node | 服务分支聚合,用于任务状态分支判断 |
| 用户节点 | user-node | 人工审批节点,支持单人审批和会签模式 |
| 审批网关 | gateway-node | 条件分支网关,用于条件流转判断 |
| 结束节点 | end-node | 流程出口,标识流程结束 |
| HTTP节点 | http-node | 调用外部HTTP接口的节点 |
🔄 会签聚合策略
用户节点支持会签模式,提供以下聚合策略:
| 策略类型 | 标识 | 说明 |
|---|---|---|
| 自动通过 | auto_approve | 节点启动时自动通过,无需审批人操作 |
| 全票通过 | all_approve | 所有审批人都需同意 |
| 任一人通过 | any_approve | 任意一人同意即可 |
| 过半通过 | majority_approve | 超过半数同意即可 |
| 百分比通过 | percentage_approve | 按设定百分比同意即可 |
📁 项目结构
Cyclops.ApprovalFlow/
├── Core/ # 核心引擎与处理器
│ ├── ApprovalFlowEngine.cs # 审批流引擎
│ ├── AggregationEvaluator.cs # 会签聚合评估器
│ ├── RuleEngine.cs # 规则引擎
│ ├── FlowExecutor.cs # 流程执行器
│ ├── Handlers/ # 节点处理器
│ │ ├── BaseNodeHandler.cs # 处理器基类
│ │ ├── StartNodeHandler.cs # 开始节点处理器
│ │ ├── EndNodeHandler.cs # 结束节点处理器
│ │ ├── UserNodeHandler.cs # 用户节点处理器
│ │ ├── TaskNodeHandler.cs # 服务节点处理器
│ │ ├── GatewayNodeHandler.cs # 网关节点处理器
│ │ └── HttpNodeHandler.cs # HTTP节点处理器
│ ├── FlowEventBusPublisher.cs # 事件总线发布器
│ └── FlowMonitor.cs # 流程监控器
├── Consts/ # 常量定义
│ ├── ConstNodeType.cs # 节点类型常量
│ ├── ConstAggregationType.cs # 聚合策略常量
│ └── ConstTaskNodeStatus.cs # 服务节点状态常量
├── Models/ # 模型定义
│ ├── GraphNode.cs # 图节点
│ ├── GraphEdge.cs # 图边
│ └── FlowRuntimeState.cs # 流程运行时状态
├── Data/ # 示例数据
│ └── exampleData.json # 采购审批流程示例
└── README.md # 项目说明
🔧 配置说明
用户节点属性配置
{
"className": "PurchaseService",
"methodName": "OnDeptManagerApprove",
"roleId": 1300000000101,
"roleName": "部门负责人",
"stage": "初审",
"multiApproval": true,
"aggregationType": "any_approve",
"approvePercentage": 60,
"assignees": [
{
"type": "user",
"userId": 101,
"userName": "张经理",
"account": "zhangmanager"
},
{
"type": "role",
"roleId": 1300000000102,
"roleName": "大区经理"
}
],
"events": {
"onNodeEnter": [...],
"onNodeLeave": [...],
"onApprovalAction": [...]
}
}
服务节点属性配置
{
"className": "PurchaseService",
"methodName": "CreatePurchaseRequest",
"formModelName": "DbPurchaseRequest",
"formModelField": "id",
"formModelFieldValue": "${recordId}",
"resultMapping": [
{ "source": "response.purchaseId", "target": "Variables.purchaseId" }
],
"events": {
"onNodeEnter": [...],
"onNodeLeave": [...]
}
}
📝 注意事项
- 节点类型标识:前端和后端的节点类型标识必须保持一致
- 会签配置:开启会签时必须指定聚合策略,百分比通过时需设置通过比例
- 服务节点:className 和 methodName 为必填项,用于反射调用目标服务
- 事件配置:支持 HTTP 回调,可配置同步/异步执行、重试次数等参数
📄 许可证
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- TJC.Cyclops.Common (>= 2026.5.11.1)
- TJC.Cyclops.DI (>= 2026.5.11.1)
- TJC.Cyclops.Orm (>= 2026.5.11.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on TJC.Cyclops.ApprovalFlow:
| Package | Downloads |
|---|---|
|
TJC.Cyclops.Web.Core
企服版框架中api核心功能项目,基于aspnetcore集成di、jwt、swagger、codefirtst、支持多种常见数据库、nacos配置中心、统一接口回复参数、全局异常捕获、全局接口日志、防重放攻击、图形验证码、快捷上下文对象、上传下载、数据导入导出等功能 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.5.11.1 | 89 | 5/11/2026 |
| 2026.5.7.2 | 127 | 5/7/2026 |
| 2026.5.7.1 | 128 | 5/7/2026 |
| 2026.4.29.2 | 130 | 4/29/2026 |
| 2026.4.29.1 | 155 | 4/29/2026 |
| 2026.4.27.1 | 139 | 4/27/2026 |
| 2026.4.24.2 | 123 | 4/24/2026 |
| 2026.4.24.1 | 122 | 4/24/2026 |
| 2026.4.14.2 | 130 | 4/14/2026 |
| 2026.4.14.1 | 130 | 4/14/2026 |
| 2026.4.13.1 | 129 | 4/13/2026 |
| 2026.3.30.1 | 144 | 3/30/2026 |
| 2026.3.26.1 | 134 | 3/26/2026 |
| 2026.3.24.1 | 132 | 3/24/2026 |
| 2026.3.12.2 | 145 | 3/12/2026 |
| 2026.3.12.1 | 139 | 3/12/2026 |
| 2026.2.26.1 | 139 | 2/26/2026 |
| 2026.2.4.1 | 161 | 2/4/2026 |
| 2026.1.15.1 | 173 | 1/15/2026 |
| 2026.1.14.2 | 158 | 1/14/2026 |
Loading failed
企服版框架中审批流开发套件