跳到主要内容

Skills — BPM流程自动生成

1. 功能介绍

jeecg-bpmn 是 Claude Code 的 AI Skill,能够将自然语言的审批流程描述自动转换为 Flowable BPMN 2.0 XML,并通过 API 在 JeecgBoot 系统中自动创建流程。

核心能力:

  • 用自然语言描述审批流程,AI 自动生成完整的 BPMN XML
  • 支持多种节点类型:用户任务、排他网关、并行网关、包含网关、子流程
  • 智能推导审批人配置(角色、用户、部门、岗位、表达式)
  • 支持会签(并行/顺序多实例)
  • 自动生成流程图布局(BPMNDiagram)
  • 通过 API 自动创建流程到 JeecgBoot 系统

不确定该用哪个 Skill?请查看 AI Skills 技能清单

2. 前置条件

使用前需要准备两个信息:

信息获取方式示例
API 地址JeecgBoot 后端服务地址https://boot3.jeecg.com/jeecgboot
X-Access-Token浏览器 F12 → Network → 任意请求的 Request HeaderseyJhbGciOiJIUzI1NiIs...

3. 使用方式

在 Claude Code 中直接用自然语言描述审批流程即可。以下是触发关键词:

创建流程、生成流程、设计流程、画流程、审批流程、
工作流、BPMBPMN、create flow、create process

4. 支持的节点类型

4.1 基本节点

用户描述关键词BPMN 节点类型说明
开始startEvent流程起点
结束endEvent流程终点
审批/审核/处理userTask人工审批任务
提交/填写userTask发起人提交节点

4.2 网关节点

用户描述关键词BPMN 节点类型说明
条件判断/分支/通过或拒绝exclusiveGateway排他网关,只走一条分支
同时/并行parallelGateway并行网关,所有分支同时执行
条件并行/部分并行inclusiveGateway包含网关,满足条件的分支执行

4.3 高级节点

用户描述关键词BPMN 节点类型说明
子流程/嵌套subProcess内嵌子流程
调用子流程callActivity调用外部流程定义
会签/多人同时审批multiInstance并行/顺序会签

5. 审批人配置

AI 根据用户描述自动匹配审批人类型:

用户描述配置方式说明
"发起人/申请人"flowable:assignee="${applyUserId}"流程发起人
"admin/指定用户名"flowable:assignee="admin"固定指定人
"经理角色"flowable:candidateGroups="manager"系统角色候选
"张三或李四"flowable:candidateUsers="zhangsan,lisi"多候选人
"某部门审批"flowable:candidateGroups="部门ID"部门审批
"某岗位审批"flowable:candidateGroups="岗位ID"部门岗位审批
"部门负责人"flowable:assignee="${deptLeader}"表达式动态审批人
"上一节点指派"isAssignedByPreviousNode=true上一审批人选择
"会签/多人同时审批"多实例配置并行/顺序会签
"表单字段选人"groupType="formData"从表单动态获取

6. 实战示例:创建请假审批流程

6.1 第一步:描述需求

创建一个请假审批流程:
员工提交请假申请 → 部门经理审批 →
通过则HR审批,拒绝则退回给员工 →
HR通过则结束,拒绝则退回给员工

6.2 第二步:AI 展示流程摘要

## 流程摘要

- 流程名称:请假审批流程
- 流程类型:oa
- 目标环境:https://boot3.jeecg.com/jeecgboot

### 流程节点

| 序号 | 节点名称 | 类型 | 审批人 |
|------|---------|------|--------|
| 1 | 开始 | startEvent | - |
| 2 | 员工提交申请 | userTask | ${applyUserId} |
| 3 | 部门经理审批 | userTask | manager (角色组) |
| 4 | 经理审批结果 | exclusiveGateway | 条件分支 |
| 5 | HR审批 | userTask | hr (角色组) |
| 6 | HR审批结果 | exclusiveGateway | 条件分支 |
| 7 | 结束 | endEvent | - |

### 连线与条件

开始 → 员工提交申请 → 部门经理审批 → 经理审批结果
├─ 通过 (result==1)HR审批 → HR审批结果
│ ├─ 通过 (result==1) → 结束
│ └─ 拒绝 (result==0) → 员工提交申请
└─ 拒绝 (result==0) → 员工提交申请

确认以上信息正确?(y/n)

6.3 第三步:提供 Token 并确认

x-access-token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx

6.4 第四步:AI 自动执行

AI 会:

  1. 生成完整的 BPMN 2.0 XML(包含流程定义和图形布局)
  2. 调用 saveProcess API 创建流程
  3. 返回流程 ID 和 Key

6.5 第五步:查看结果

## 流程创建成功

- 流程ID:xxx
- 流程名称:请假审批流程
- 流程Key:process_1710000000000
- 目标环境:https://boot3.jeecg.com/jeecgboot

### 后续操作
1. 打开 JeecgBoot 后台 → 流程管理 → 流程设计
2. 找到该流程,点击「编辑」查看流程图
3. 绑定业务表单(Online表单/设计器表单/自定义表单)
4. 发布流程后即可使用

7. 更多使用场景

7.1 简单顺序审批

创建一个报销审批流程:
员工提交 → 主管审批 → 财务审批 → 结束

7.2 并行审批

创建一个合同审批流程:
提交后,法务和财务同时审批,
两个都通过后,总经理最终审批

AI 会使用并行网关(parallelGateway)实现同时审批。

7.3 多级条件分支

创建一个采购审批流程:
- 金额 < 1万,主管审批即可
- 金额 1-10万,需要经理审批
- 金额 > 10万,需要总经理审批

AI 会使用排他网关(exclusiveGateway)根据金额条件分支。

7.4 会签审批

创建一个项目立项审批流程:
提交后,评审委员会全体成员同时审批(会签),
需要全部通过才能进入下一步

AI 会使用多实例配置实现并行会签。

7.5 驳回重填

创建一个请假流程,审批拒绝后退回给申请人重新填写

AI 会在拒绝分支连线回到发起人节点。

8. 条件表达式语法

排他网关的分支条件使用 UEL 表达式:

场景表达式说明
审批通过${result==1}result=1 表示通过
审批拒绝${result==0}result=0 表示拒绝
金额判断${amount < 10000}表单字段条件
天数判断${days > 3}表单字段条件
组合条件${amount >= 10000 && amount < 100000}多条件组合

9. 流程与表单绑定

流程创建后,需要在 JeecgBoot 后台绑定业务表单:

表单类型配置方式适用场景
Online 表单选择已创建的 Online 表标准 CRUD 表单
设计器表单选择已创建的 desform复杂布局表单
自定义开发指定前端组件路径高度定制化

提示: 可以先用 jeecg-onlformjeecg-desform Skill 创建表单,再用 jeecg-bpmn 创建流程,最后在后台绑定。

10. 涉及的 API 接口

接口方法路径说明
保存流程POST/act/designer/api/saveProcess创建/编辑流程定义

请求参数(form-urlencoded):

参数说明
processDefinitionId流程数据表ID,新建传 0
processName流程名称
processkey流程唯一标识(时间戳)
typeid流程类型(如 oa
nodes节点信息(id=xxx###nodeName=xxx@@@ 格式)
processDescriptorBPMN XML 内容
startType启动方式(manual 手动发起)

11. 数据库配置表

流程创建后,可通过以下数据库表进一步配置节点行为:

表名说明
ext_act_process流程主表(属性、XML、催办/撤回/通知)
ext_act_process_form表单绑定(业务表单关联)
ext_act_process_node节点配置(编辑/抄送/转办/加签/驳回)
ext_act_process_node_auth字段权限(字段显示/隐藏/可编辑/禁用)

12. 常见问题

流程和表单如何配合使用?

推荐工作流:

  1. jeecg-onlform 创建 Online 表单(如请假表)
  2. jeecg-bpmn 创建审批流程
  3. 在后台将流程与表单绑定
  4. 发布流程,用户即可发起审批

支持哪些流程引擎?

JeecgBoot 只使用 Flowable 引擎,Activiti 已废弃。

流程创建后如何修改?

两种方式:

  1. 在 JeecgBoot 后台的流程设计器中可视化编辑
  2. 告诉 AI 修改需求,AI 会重新生成 BPMN XML 并调用 API 更新

审批人可以动态设置吗?

可以。支持多种动态审批人方式:

  • 表达式:如 ${deptLeader} 自动获取部门负责人
  • 表单字段:从表单中选择的用户作为审批人
  • 上一节点指派:由上一个审批人指定下一个审批人