Files
qhmes/.trae/skills/jeecg-bpmn/docs/skill-usage-guide.md

200 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# JeecgBoot BPM 流程自动生成 — Skills 使用指南
> 通过自然语言描述AI 自动生成 Flowable BPMN 2.0 XML 并调用 API 创建/修改流程。
## 前置准备
使用前需准备两样东西:
| 信息 | 获取方式 | 示例 |
|------|---------|------|
| **后端地址** | 运维/开发提供 | `https://api3.boot.jeecg.com` |
| **X-Access-Token** | 浏览器 F12 → Network → 任意请求 Headers | `eyJhbGciOiJIUzI1NiJ9...` |
---
## 实战案例:车辆出差申请流程
以下是一个完整的流程创建和迭代修改过程,展示了 skill 的实际使用方式。
### 第一步:创建基础流程
**用户输入:**
```
创建一个车辆出差申请流程
```
**AI 交互过程:**
1. AI 询问后端地址和 Token
2. 用户提供凭据后AI 设计流程并展示摘要:
```
## 流程摘要
- 流程名称:车辆出差申请流程
- 流程类型oa
### 流程节点
| 序号 | 节点名称 | 类型 | 审批人 |
|------|---------|------|--------|
| 1 | 开始 | startEvent | - |
| 2 | 申请人填写 | userTask (草稿) | ${applyUserId} |
| 3 | 部门负责人审批 | userTask | 表达式(部门负责人) |
| 4 | 分管领导审批 | userTask | 表达式(上一级部门负责人) |
| 5 | 车辆调度确认 | userTask | 上一节点指派 |
| 6 | 结束 | endEvent | - |
确认以上信息正确?(y/n)
```
3. 用户确认 `y`AI 自动生成 BPMN XML 并调用 API
4. 返回结果:
```
## 流程创建成功
- 流程ID2032497475959439362
- 流程Keyprocess_1773420125267
```
---
### 第二步:增加审批节点
**用户输入:**
```
修改刚才的流程,加入一个总经理审批节点,最后一个节点
```
**AI 交互过程:**
1. AI 基于已有流程信息,展示修改后的摘要(标注变更项):
```
| 序号 | 节点名称 | 类型 | 审批人 | 变更 |
|------|---------|------|--------|------|
| ... | (原有节点) | ... | ... | |
| 6 | 总经理审批 | userTask | 表达式(上两级部门负责人) | 新增 |
| 7 | 结束 | endEvent | - | |
```
2. 用户确认后AI 使用相同的 `processDefinitionId``processkey` 调用 API 更新流程
3. 流程修改成功
---
### 第三步:增加条件分支
**用户输入:**
```
在部门负责人审批节点后面增加分支条件如果用车时间超过3天则需要人力审批然后再流向车辆调度确认
```
**AI 交互过程:**
1. AI 识别出需要排他网关exclusiveGateway展示分支逻辑
```
开始 → 申请人填写 → 部门负责人审批 → 用车天数判断
├─ ≤3天 ──────────────→ 分管领导审批 → 车辆调度确认 → 总经理审批 → 结束
└─ >3天 → 人力审批(hr角色) ↗
```
2. 用户确认后API 更新流程
**最终流程图效果:**
```
○ 开始
[申请人填写] ← 草稿节点,首次自动跳过
[部门负责人审批] ← 表达式: getDepartLeaders
◇ 用车天数判断
↙ ↘
≤3天 >3天
↓ ↓
│ [人力审批] ← hr 角色组
↓ ↙
[分管领导审批] ← 表达式: getLevel1DepartLeaders
[车辆调度确认] ← 上一节点指派
[总经理审批] ← 表达式: getLevel2DepartLeaders
● 结束
```
---
## 使用技巧
### 1. 描述流程的多种方式
```
# 简单描述
创建一个请假审批流程先经理审批再HR审批
# 指定审批人
创建流程:开始 → admin审批 → hr角色组审批 → 结束
# 描述条件分支
报销流程金额大于1万需要总监审批否则经理审批即可
# 描述会签
创建合同审批流程,需要法务部和财务部同时会签
```
### 2. 修改已有流程
```
# 增加节点
在经理审批后面加一个总监审批
# 增加条件分支
在提交节点后加一个金额判断超过5000走总监审批
# 修改审批人
把部门经理审批改成角色组 manager
# 删除节点
去掉HR审批节点
```
### 3. 支持的审批人类型
| 说法 | AI 识别为 |
|------|----------|
| "admin审批" | 固定指定人 |
| "发起人/申请人" | `${applyUserId}` 表达式 |
| "部门负责人" | `getDepartLeaders` 表达式 |
| "分管领导" | `getLevel1DepartLeaders` 表达式 |
| "hr角色" / "角色组" | `candidateGroups` + `groupType="role"` |
| "上一节点指派" | `isAssignedByPreviousNode=true` |
| "张三或李四" | `candidateUsers` 候选人 |
| "会签/多人同时审批" | 多实例 + `countersignRule` |
### 4. 支持的条件分支
| 说法 | AI 生成 |
|------|--------|
| "金额大于1万" | `${amount > 10000}` |
| "天数超过3天" | `${use_days > 3}` |
| "通过/拒绝" | `${result == 1}` / `${result == 0}` |
| "部长以上职务" | `${oaUtil.branchConditionByPost(...)}` |
> 条件变量名需与业务表单字段名一致。
---
## 注意事项
1. **Token 有效期**JWT Token 有过期时间,过期后需重新从浏览器获取
2. **流程字段绑定**:条件分支中的变量名(如 `use_days`)需与关联表单的字段名一致
3. **同一会话内可连续修改**AI 会记住当前流程的 ID 和 Key无需重复提供
4. **修改是覆盖式的**:每次修改会提交完整的 BPMN XML不是增量更新
5. **创建后需绑定表单**:流程创建后,需在 JeecgBoot 后台绑定业务表单才能正常发起