6.8 KiB
6.8 KiB
流程配置数据库表(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 XML(longblob) | 完整 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 包含以下关键字段(来自生产数据分析):
{
// 审批人配置
"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": "[...]"
}