TJC.Cyclops.ApprovalFlow 2026.4.14.2

dotnet add package TJC.Cyclops.ApprovalFlow --version 2026.4.14.2
                    
NuGet\Install-Package TJC.Cyclops.ApprovalFlow -Version 2026.4.14.2
                    
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.4.14.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TJC.Cyclops.ApprovalFlow" Version="2026.4.14.2" />
                    
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.4.14.2
                    
#r "nuget: TJC.Cyclops.ApprovalFlow, 2026.4.14.2"
                    
#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.4.14.2
                    
#: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.4.14.2
                    
Install as a Cake Addin
#tool nuget:?package=TJC.Cyclops.ApprovalFlow&version=2026.4.14.2
                    
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;

// 启动流程引擎
flowEngine.Start();

// 在应用关闭时停止流程引擎并释放资源
// flowEngine.Dispose();

📖 使用指南

流程执行

using Cyclops.ApprovalFlow;

// 获取流程执行器
var flowBuilder = new FlowBuilder();
if (flowBuilder.TryGetExecutor("LeaveApprovalFlow", out var executor))
{
    // 创建流程实例
    var flowId = await executor.StartFlowAsync();
    Console.WriteLine($"流程已启动,ID: {flowId}");
    
    // 执行流程步骤
    var result = await executor.AdvanceFlowAsync(flowId, "manager-approval", new Dictionary<string, object>
    {
        { "approved", true },
        { "comment", "同意请假" }
    });
    
    // 检查流程状态
    if (result.IsCompleted)
    {
        Console.WriteLine("流程已完成!");
    }
}

流程监控

using Cyclops.ApprovalFlow;
using Cyclops.ApprovalFlow.Models;

// 注册流程事件监听器
FlowEngine.Instance.OnFlowStarted += (sender, e) => {
    Console.WriteLine($"流程 {e.FlowId} 已启动");
};

FlowEngine.Instance.OnFlowCompleted += (sender, e) => {
    Console.WriteLine($"流程 {e.FlowId} 已完成");
};

FlowEngine.Instance.OnFlowNodeCompleted += (sender, e) => {
    Console.WriteLine($"流程 {e.FlowId} 的节点 {e.NodeId} 已完成");
};

自定义节点处理器

using Cyclops.ApprovalFlow;
using Cyclops.ApprovalFlow.Core;

// 自定义节点处理器
public class CustomNodeHandler : IFlowNodeHandler
{
    public async Task<FlowStepResult> HandleAsync(FlowNodeHandleContext context)
    {
        // 处理节点逻辑
        Console.WriteLine($"处理节点: {context.Node.Id}");
        
        // 模拟处理时间
        await Task.Delay(1000);
        
        // 返回处理结果
        return new FlowStepResult
        {
            Success = true,
            OutputData = new Dictionary<string, object>
            {
                { "processedBy", "CustomHandler" },
                { "processedAt", DateTime.Now }
            }
        };
    }
}

// 注册自定义处理器
FlowBuilder.RegisterNodeHandler("custom-node", typeof(CustomNodeHandler));

🔧 配置说明

流程定义JSON结构

{
  "key": "流程唯一标识",
  "name": "流程名称",
  "nodes": [
    {
      "id": "节点ID",
      "type": "节点类型",
      "text": { "value": "节点显示文本" },
      "properties": {
        "自定义属性1": "值1",
        "自定义属性2": "值2"
      }
    }
  ],
  "edges": [
    {
      "id": "边ID",
      "sourceNodeId": "源节点ID",
      "targetNodeId": "目标节点ID",
      "text": { "value": "边显示文本" },
      "properties": {
        "condition": "流转条件表达式"
      }
    }
  ]
}

📋 支持的节点类型

  • start-node:开始节点,流程的起点
  • user-node:用户节点,需要用户参与的审批节点
  • task-node:任务节点,自动执行的任务
  • gateway-node:网关节点,用于分支和合并
  • end-node:结束节点,流程的终点

⚠️ 使用注意事项

  1. 流程定义格式:确保流程定义JSON符合GraphFlowDefinition的数据结构要求,特别是节点和边的ID必须唯一且相互匹配
  2. 节点类型选择:根据业务需求选择适当的节点类型,如开始节点(start-node)、任务节点(task-node)、用户节点(user-node)、网关节点(gateway-node)和结束节点(end-node)等
  3. 资源管理:使用完FlowEngine后,务必调用Dispose()方法释放资源,避免内存泄漏
  4. 错误处理:加载流程定义时可能会抛出异常,请确保添加适当的错误处理逻辑
  5. 并发安全:在多线程环境下使用FlowBuilder和FlowEngine时,请注意线程安全问题
  6. 流程版本管理:对于需要频繁变更的流程,建议实现版本管理机制,确保流程定义的可追溯性
  7. 性能优化:对于大量流程实例的场景,可以考虑优化线程池配置和定期清理过期的流程实例

🤝 贡献

我们欢迎社区贡献!如果您有任何想法或建议,欢迎提交 Issue 或 Pull Request。

📄 许可证

MIT License


Cyclops.ApprovalFlow - 让审批流程管理变得简单高效,为企业业务流程赋能!✨

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.4.14.2 106 4/14/2026
2026.4.14.1 112 4/14/2026
2026.4.13.1 116 4/13/2026
2026.3.30.1 128 3/30/2026
2026.3.26.1 118 3/26/2026
2026.3.24.1 118 3/24/2026
2026.3.12.2 133 3/12/2026
2026.3.12.1 127 3/12/2026
2026.2.26.1 130 2/26/2026
2026.2.4.1 150 2/4/2026
2026.1.15.1 163 1/15/2026
2026.1.14.2 149 1/14/2026
2026.1.14.1 147 1/14/2026
2026.1.13.2 147 1/13/2026
2026.1.13.1 164 1/13/2026
2026.1.7.1 177 1/7/2026
2025.12.23.1 249 12/23/2025
2025.12.16.1 362 12/16/2025
2025.12.15.2 307 12/15/2025
2025.12.15.1 324 12/15/2025
Loading failed

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