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

177 lines
6.8 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.
# 流程配置数据库表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": "[...]"
}
```