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" />
                    
Directory.Packages.props
<PackageReference Include="TJC.Cyclops.ApprovalFlow" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=TJC.Cyclops.ApprovalFlow&version=2026.5.11.1
                    
Install as a Cake Tool

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": [...]
  }
}

📝 注意事项

  1. 节点类型标识:前端和后端的节点类型标识必须保持一致
  2. 会签配置:开启会签时必须指定聚合策略,百分比通过时需设置通过比例
  3. 服务节点:className 和 methodName 为必填项,用于反射调用目标服务
  4. 事件配置:支持 HTTP 回调,可配置同步/异步执行、重试次数等参数

📄 许可证

MIT License

Product 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.

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

企服版框架中审批流开发套件