jeeflow-go

module
v1.8.29 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2026 License: Apache-2.0

README

jeeflow-go · Go 版工作流引擎

Go Version License

jeeflow 引擎规范的 Go 语言实现,零外部依赖,纯 stdlib。

统一门面 facade.Flow(action, map);支持管理扩展(流程设计/历史/委托)、 assignee 变量解析与 flow.auto/flow.admin 系统代执行。


快速开始

package main

import (
    "github.com/mldong/jeeflow-go/engine"
    "github.com/mldong/jeeflow-go/memory"
    "github.com/mldong/jeeflow-go/model"
)

func main() {
    repo := memory.New()
    eng := engine.New(repo, nil, nil, nil)

    // 注册流程定义
    def := &model.ProcessDefine{
        Name: "leave", DisplayName: "请假审批",
        Content: []byte(`{"nodes":[...],"edges":[...]}`),
    }
    repo.AddDefine(def)

    // 发起流程
    inst, _ := eng.StartProcessInstanceByID(def.ID, "张三", nil)

    // 查询待办
    tasks, _ := repo.FindDoingTasks(inst.ID, nil)

    // 审批
    eng.ExecuteProcessTask(tasks[0].ID, "张三", nil)
}

安装

go get github.com/mldong/jeeflow-go

导入引擎核心(零第三方依赖):

import "github.com/mldong/jeeflow-go/engine"

目录结构

jeeflow-go/
├── engine/          ← 引擎核心(对标 Java com.mldong.jeeflow.core)
├── model/           ← 域类型 + LogicFlow 模型
├── spi/             ← SPI 接口(对标 SPEC.md §6)
├── memory/          ← 内存仓储(测试用)
├── repository/jdbc/ ← MySQL 参考实现(含集成测试)
├── demo/            ← GoFrame REST 演示
├── cmd/demo/        ← 演示入口
└── engine_test.go   ← 合规测试

节点支持

节点 状态
start / end
task(线性审批)
decision(条件分支)
fork / join(并行分支)
countersign(并行会签)
countersign(串行会签)
countersign(按比例)
reject(驳回)
jump(跳转)

规范

对齐 jeeflow-doc,与 Java 版共享同一套流程 JSON 文件驱动测试。

文档

文档 说明
快速开始 安装 + 5 分钟上手
引擎 API 4 个核心操作 + 状态码
流程定义 LogicFlow JSON 格式
SPI 扩展 仓储/用户/ID 生成器
GoFrame 集成 REST 演示站

License

Copyright © 2025-2026 mldong

Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.

Directories

Path Synopsis
cmd
demo command
Package engine 引擎接口 + 常量
Package engine 引擎接口 + 常量
统一门面(v1.1.0)——"接口即 POST + JSON body"风格的单入口
统一门面(v1.1.0)——"接口即 POST + JSON body"风格的单入口
internal
flowsutil
Package flowsutil 解析本仓 flows/ 流程定义目录。
Package flowsutil 解析本仓 flows/ 流程定义目录。
surrparity
Package surrparity 委托查询「四判据」的**共用数据集 + 期望表**(issues/116 §5、 规范 08 用例 27、issues/123):内存仓与 SQL 仓跑同一份数据、比对同一份期望, 任何一仓答错即红——"同栈两仓不同答案"本身就是缺陷,不能各写各的断言。
Package surrparity 委托查询「四判据」的**共用数据集 + 期望表**(issues/116 §5、 规范 08 用例 27、issues/123):内存仓与 SQL 仓跑同一份数据、比对同一份期望, 任何一仓答错即红——"同栈两仓不同答案"本身就是缺陷,不能各写各的断言。
扩展仓储内存实现(v1.1.0,测试用)
扩展仓储内存实现(v1.1.0,测试用)
Package metadata 引擎元数据能力(v1.4.0,issues/04)
Package metadata 引擎元数据能力(v1.4.0,issues/04)
管理扩展领域对象(v1.1.0)——流程设计 / 设计历史 / 委托代理
管理扩展领域对象(v1.1.0)——流程设计 / 设计历史 / 委托代理
元数据模型 + 加载 SPI(issues/23)——与 Java jeeflow-persist meta 包契约一致
元数据模型 + 加载 SPI(issues/23)——与 Java jeeflow-persist meta 包契约一致
repository
jdbc
扩展仓储 JDBC 参考实现(v1.1.0)——流程设计 / 设计历史 / 委托代理
扩展仓储 JDBC 参考实现(v1.1.0)——流程设计 / 设计历史 / 委托代理

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL