流程配置
从新建模型到发布,大厅才能发起。入口:流程中心 → 流程设置 → 流程模型。四步向导在 ruoyi-office-vben/apps/web-antd/src/views/bpm/model/form/index.vue:基本信息 → 表单设计 → 流程设计 → 更多设置。后端在 yudao-module-bpm,@RequestMapping("/bpm/model")。
示意图:四步都过校验才能保存;大厅只认已发布的激活定义。
日常单据用 SIMPLE 设计器 + 一种表单。画完必须点发布。未发布的内容只存在模型草稿。

本系统截图:流程中心 → 流程模型。按分类分组,行内修改、发布、流程定义。
先分清两套类型
| 维度 | 取值 | 影响 |
|---|---|---|
流程类型 type | SIMPLE 20 默认竖排;BPMN 10 画布 | 第三步用哪套设计器 |
表单类型 formType | 流程表单 NORMAL=10;业务表单 CUSTOM=20 | 第二步填 formId 还是两条路径;大厅怎么跳 |
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 流程类型 | BpmModelTypeEnum | yudao-module-bpm-api/.../enums/definition/BpmModelTypeEnum.java |
| 表单类型 | BpmModelFormTypeEnum | 同包 BpmModelFormTypeEnum.java |
| 第一步 | 名称、key、分类、流程类型 | .../model/form/modules/basic-info.vue |
| 第二步 | 表单类型、菜单或路径 | .../form/modules/form-design.vue |
| 第三步 | SIMPLE 或 BPMN | .../form/modules/process-design.vue |
| 第四步 | 编号、标题、去重 | .../form/modules/extra-setting.vue |
分支、调用活动、监听器再上 BPMN,见 流程设计器(BPMN)。竖排节点见 SIMPLE 设计器。
表单类型差异
两种第一次发布成功后锁定,不能互切。逃生口是 POST /bpm/model/unlock-form-type,不要当常规操作。
| 项 | 流程表单 10 | 业务表单 20 |
|---|---|---|
| 页面从哪来 | 「流程表单」设计器拖控件 | 业务模块自己写 list / info |
| 第二步必填 | formId + menuConfig | 提交路由 + 查看组件路径 |
| 数据落点 | 流程变量;bound 还可落物理表 | 业务表,process_instance_id 互指 |
| 发布菜单 | 自动 upsert 列表 + 创建按钮 | 不要提交 menuConfig,走既有业务菜单 |
| 大厅点卡片 | 本页打开 form-create | router.push(formCustomCreatePath) |
| 提交接口 | POST /bpm/process-instance/create | 各模块 submit → submitProcessInstance |
| 再次提交 | 详情可走大厅重提 | 回业务列表再开一张 |
两条业务路径不是同一种地址:
| 字段 | 填什么 | 用印例子 |
|---|---|---|
formCustomCreatePath | Vue 路由 | /oa/seal/seal-apply-info |
formCustomViewPath | views/ 下的 组件路径 | oa/seal/sealapply/info/index |
填反以后:发起中心跳 404,审批详情空白。
表单类型发布后会锁
formTypeLocked 为真后,单选灰掉。仍可更换同类型下的表单或改路径,改完再发布。

本系统截图:通用表单第二步。类型已锁定为流程表单;下拉绑 bpm_form,并配父菜单。
每步关键动作
基本信息
| 字段 | 注意 |
|---|---|
| 名称 | 大厅卡片标题 |
| 标识 key | 已发布后不要乱改。业务表单必须等于单据枚举的 getProcessDefinitionKey(),不要用目录名猜 |
| 分类 | 存 bpm_category.code,不是分类中文名。先在「流程分类」建好 |
| 图标 | 大厅和 App 工作台 |
| 流程类型 | 默认 SIMPLE |
用印的 key 是 oa_seal_apply_bill,不是 sealapply。用车是 oa_car_apply_bill。

本系统截图:第一步名称、标识、分类、流程类型。
表单设计
选流程表单:下拉选一条 bpm_form。menuConfig 的父菜单选「自定义申请」等业务目录,勿选「发起流程」大厅页。发布后记下 listMenuId、createMenuId,权限码 bpm:process-form:{key}:create。
选业务表单:填提交路由和查看地址。不要填 menuConfig。创建按钮的 system_menu.process_definition_key 必须和模型 key 一致,发起权限才反查得上。见 权限体系。
流程设计
SIMPLE:发起人 → 审批人(候选人策略)→ 结束。点开节点配审批人,见 选择审批人。会签 / 条件分支点到即止,见 会签、或签、依次审批。
发布前会校验:开始事件、用户任务名称、首个任务策略、候选人。子流程的 key 必须本租户已有激活定义。

本系统截图:用印申请第三步 SIMPLE 画布。发起人之后并行,再审批人和抄送。
更多设置
编号规则 processIdRule、待办标题 / 摘要、自动去重 autoApprovalType、打印模板、HTTP 回调。改完先保存,再点发布。
POST /bpm/model/deploy 进 BpmModelServiceImpl#deployModel。同一模型再次发布会挂起旧定义。改路径、分类、可见范围也要再发布,发起大厅才认激活定义。
发布后
- 流程表单:到角色「菜单权限」勾上同步出来的列表和创建按钮。
- 业务表单:勾业务模块的列表和创建按钮。
- 打开 流程中心 → 发起流程,应看到卡片。
- 配置体检:系统管理 → 配置体检,清未绑菜单的流程。

本系统截图:发起流程卡片墙。流程表单本页填写;业务表单跳单据 info。
配置与操作
管理员在 流程模型 走完四步并发布。员工从大厅或业务列表发起。模型行上的「流程定义」看历史版本;「停用」改的是已部署定义状态。
开启与表见 流程功能设计。案例见 流程表单设计、业务表单开发。
