Files
qhmes/.trae/skills/jeecg-bpmn/references/bpmn-db-config.md

177 lines
6.8 KiB
Markdown
Raw Normal View History

# 流程配置数据库表ext_act_process 系列)
流程除了 BPMN XML 外,还需要在 4 张配置表中存储流程属性、节点配置、表单绑定和字段权限。
## 1. ext_act_process — 流程主表
| 字段 | 说明 | 取值 |
|------|------|------|
| `id` | 流程ID主键 | 新建时返回 |
| `process_key` | 流程定义Key | `process_{timestamp}` |
| `process_name` | 流程名称 | 用户定义 |
| `process_type` | 流程分类 | 字典 `bpm_process_type` 的值,如 `oa``test` |
| `process_status` | 发布状态 | 0=未发布, 1=已发布 |
| `process_xml` | BPMN XMLlongblob | 完整 XML 内容 |
| `start_type` | 发起方式 | 见下表 |
| `urge_status` | 允许催办 | `0`=关, `1`=开 |
| `back_status` | 允许撤回 | `0`=关, `1`=开 |
| `graphic_status` | 显示流程图 | `0`=关, `1`=开 |
| `auto_submit_status` | 自动提交 | `0`=关, `1`=开 |
| `notify_way` | 通知方式 | 系统消息/邮件/钉钉/企微 |
| `open_status` | 启用状态 | 0=关, 1=开 |
| `run_concurrent_mode` | 并发模式 | 控制同一数据多次发起 |
| `iz_supervise` | 督办标记 | 0=否, 1=是 |
**start_type 发起方式:**
| 值 | 说明 |
|----|------|
| `manual` | 手工发起流程(默认) |
| `tableEvent` | 工作表触发(数据新增/修改时自动发起) |
| `buttonEvent` | 按钮事件触发(自定义按钮触发) |
| `timerEvent` | 定时触发 |
| `dateFieldEvent` | 根据表日期字段触发 |
| `userEvent` | 人员事件触发(如员工离职) |
| `subEvent` | 子流程触发 |
## 2. ext_act_process_form — 流程表单绑定
将流程与业务表单关联:
| 字段 | 说明 | 取值 |
|------|------|------|
| `relation_code` | 关联编码(唯一) | `onl_{表名}` / `desform_{表名}` / `dev_{表名}_001` |
| `biz_name` | 业务名称 | 可选 |
| `process_id` | 关联流程ID | 外键 |
| `form_table_name` | 表单表名 | 业务表名 |
| `form_type` | 表单类型 | 见下表 |
| `title_exp` | 标题表达式 | 如 `请假申请【${name}】` |
| `form_deal_style` | 表单处理风格 | `default` |
| `flow_status_col` | 流程状态字段 | 通常为 `bpm_status` |
| `trigger_action` | 触发动作 | `add`/`update`/`add\|update`tableEvent 时用) |
| `report_print_url` | 打印模板URL | 可选 |
**form_type 表单类型:**
| 值 | 说明 | relation_code 格式 |
|----|------|-------------------|
| `1` | Online表单低代码表单 | `onl_{tableName}` |
| `2` | 表单设计器DesForm | `desform_{formCode}` |
| `3` | 自定义开发表单 | `dev_{code}_001` |
**title_exp 标题表达式语法:** 使用 `${变量名}` 引用表单字段值,如 `请假【${name}】提交于${create_time}`
## 3. ext_act_process_node — 节点配置
控制每个审批节点的行为:
| 字段 | 说明 | 取值 |
|------|------|------|
| `process_id` | 关联流程ID | 外键 |
| `process_node_code` | 节点ID对应 XML 中的 userTask id | 如 `task_apply` |
| `process_node_name` | 节点名称 | 如 `部门经理审批` |
| `model_and_view` | PC端表单路径 | 如 `super/bpm/process/components/OnlineFormOpt` |
| `model_and_view_mobile` | 移动端表单路径 | 可选 |
| `node_timeout` | 超时提醒(小时) | 0=不提醒 |
| `form_edit_status` | 表单是否可编辑 | `0`=只读, `1`=可编辑 |
| `cc_status` | 允许抄送 | `0`=关, `1`=开 |
| `selnext_user_status` | 允许选择下一步处理人 | `0`=关, `1`=开 |
| `msg_status` | 消息通知 | `0`=关, `1`=开 |
| `transfer_status` | 允许转办 | `0`=关, `1`=开 |
| `add_sign_status` | 允许加签 | `0`=关, `1`=开 |
| `smart_back_status` | 允许智能回退 | `0`=关, `1`=开 |
| `reject_status` | 允许驳回 | `0`=关, `1`=开 |
| `allow_counter_sign_add_user` | 会签允许加人 | `0`=关, `1`=开 |
| `node_config_json` | 节点扩展配置JSON | 包含通知设置、审批人配置等 |
## 4. ext_act_process_node_auth — 字段权限配置
控制每个节点上表单字段的可见性和可编辑性:
| 字段 | 说明 | 取值 |
|------|------|------|
| `process_id` | 关联流程ID | 外键 |
| `process_node_code` | 节点ID | 如 `task_apply` |
| `rule_code` | 字段编码 | 表单字段名 |
| `rule_name` | 字段名称 | 显示名称 |
| `rule_type` | 策略类型 | `1`=显示, `2`=禁用 |
| `status` | 效果模式 | `1`=正向有效, `0`=反向有效 |
| `required` | 是否必填 | `0`=否, `1`=是 |
| `form_type` | 表单类型 | `1`/`2`/`3` 同上 |
| `form_biz_code` | 表单业务编码 | 表名或表单编码 |
| `desform_com_key` | DesForm 组件Key | DesForm 专用 |
**rule_type + status 组合效果:**
| rule_type | status | 效果 |
|-----------|--------|------|
| `1`(显示) | `1`(正向) | 字段**可见** |
| `1`(显示) | `0`(反向) | 字段**隐藏** |
| `2`(禁用) | `1`(正向) | 字段**禁用**(只读) |
| `2`(禁用) | `0`(反向) | 字段**可编辑** |
## 5. node_config_json 完整结构
节点扩展配置 JSON 包含以下关键字段(来自生产数据分析):
```json
{
// 审批人配置
"approverGroups": {
"approverType": "candidateUser",
"assigneeType": "assigneeByName|assigneeByExp",
"approverIds": ["admin", "jeecg"],
"approverNames": ["管理员", "jeecg"],
"roleIds": [], "roleNames": [],
"deptIds": [], "deptNames": [],
"postIds": [], "postNames": [],
"expressionsIds": ["${applyUserId}"],
"expressionsNames": ["获取发起人"],
"formTableType": "",
"levelMode": "1",
"variableContent": "", "variableTitle": "[]"
},
// 审批行为
"sameMode": 0, // 相同处理人: 0=不跳过, 1=跳过, 2=草稿
"skipApproval": 0, // 0=不跳过, 1=跳过审批
"assigneeIsEmpty": 0, // 审批人为空时: 0=不跳过
"approvalEnabled": true, // 启用审批
"approvalMethod": "1", // 审批方式
// 节点功能开关
"formEditStatus": false, // 表单可编辑
"ccStatus": true, // 抄送
"selnextUserStatus": true, // 选择下一步处理人
"msgStatus": false, // 消息通知
"transferStatus": true, // 转办
"rejectStatus": true, // 驳回
"allowAddSign": true, // 加签
"allowCountersignAddUser": false, // 会签加人
// 会签配置
"isSequential": false, // 顺序/并行
"collection": "${flowUtil.stringToList(assigneeUserIdList)}",
"elementVariable": "assigneeUserId",
// 分支相关
"approveResultBranch": false, // 审批结果分支
"hasResultBranch": false,
// 发起人节点标记
"applyUserNode": true, // 是否为发起人节点
// 超时配置
"timeType": "timeDate",
"level": "1",
// 更新记录(服务节点)
"expressionType": "delegateExpression",
"expressionValue": "${updateRecordDelegate}",
"formTableCode": "table_name",
"formTableSourceTaskId": "start",
"formTableSourceNodeType": "table",
"updateFields": "[...]"
}
```