问题
流程表单默认会赋值并存储申请人、所属单位、所属部门等信息。在流程分支条件里,想按不同部门走不同审批人,应该如何取部门编码或部门名称?条件表达式里的「公司」又应该怎么填?
答案
表头「所属单位 / 所属部门」对应的是流程变量 companyId / companyName / deptId / deptName,不是单独的「部门编码」字段。条件表达式里优先用 deptId(数字 ID) 判断部门;「公司」对应 companyId 或 companyName(所属单位)。
示例:
text
${deptId == 103}
${companyId == 100 && deptId == 103}详细说明
1. 系统里实际有哪些变量
发起流程时,后端会自动写入以下流程变量(业务单未传时,从发起人信息补全):
| 界面显示 | 流程变量名 | 类型 | 含义 |
|---|---|---|---|
| 所属单位 | companyId | Long | 公司/单位在 system_dept 中的 ID |
| 所属单位 | companyName | String | 公司名称,如「深圳总公司」 |
| 所属部门 | deptId | Long | 部门 ID |
| 所属部门 | deptName | String | 部门名称,如「研发部门」 |
常量定义见后端 BpmProcessVariableConstants:billCode、cause、deptName、deptId、companyName、companyId。
2. 关于「部门编码」
system_dept 表主要字段为 id、name、org_type(0 部门 / 1 公司)等,没有独立的 deptCode 流程变量。
分支判断建议:
- 推荐:
deptId(数字 ID,稳定) - 备选:
deptName(名称,部门改名后需同步改条件)
3. 「公司 / 所属单位」怎么填
界面 「所属单位」= 流程变量里的公司,不是随意填写的文本字段。
companyName:表头显示名称(如「深圳总公司」)companyId:该公司在部门树中的 ID
公司由系统从发起人部门向上查找第一个 org_type = '1' 的节点得到,与表头「所属单位」一致。表达式中写 companyId 或 companyName,不要写成 company 等自定义名。
4. 条件表达式写法(简易设计器 · 条件表达式)
配置方式选 「条件表达式」,使用 Flowable UEL,需用 ${...} 包裹:
按部门 ID(推荐)
text
${deptId == 103}按部门名称
text
${deptName == '研发部门'}按公司 ID
text
${companyId == 100}按公司名称(所属单位)
text
${companyName == '深圳总公司'}多部门同一路径
text
${deptId == 103 || deptId == 104}某公司下某部门
text
${companyId == 100 && deptId == 103}字符串比较在 UEL 中使用单引号。
5. 如何查到要填的 ID
- 系统管理 → 部门管理:查看部门树节点 ID(即
system_dept.id) - 数据库:
sql
SELECT id, name, org_type, parent_id FROM system_dept WHERE name LIKE '%研发%';org_type = '1'通常为公司 → 对应companyId- 普通部门 → 对应
deptId
6. 表头「所属部门」与表单「申请部门」的区别
| 来源 | 用途 | 条件变量 |
|---|---|---|
| 表头「所属部门」 | 发起人登录账号的部门 | deptId / deptName |
| 正文「申请部门」等表单字段 | 用户在表单里选择的部门 | 该字段在设计器中的 field 名(如 applyDeptId) |
- 按发起人所属部门分支 → 用
deptId/deptName - 按表单里选择的申请部门分支 → 用该字段 field,例如
${applyDeptId == 103}(以表单实际 field 为准)
7. 配置方式说明
- 业务表单:设计器里通常只有「条件表达式」(无「条件规则」可视化)
- 流程表单(form-create):可用「条件规则」选表单字段;表头系统字段若未出现在设计器字段列表,仍建议用
deptId/companyId表达式
8. 推荐配置示例
text
条件1(研发): ${deptId == 103} → 研发部负责人
条件2(财务): ${deptId == 104} → 财务部负责人
默认分支 → 综合审批人涉及代码 / 配置
- 流程变量常量:
ruoyi-office/yudao-module-bpm/yudao-module-bpm-api/.../BpmProcessVariableConstants.java - 发起人部门/公司自动补全:
BpmProcessInstanceServiceImpl创建流程实例时写入deptId、deptName、companyId、companyName - 公司向上查找:
DeptServiceImpl.getUserCompany(deptId)(org_type = '1')
相关链接
修订记录
| 日期 | 修改 |
|---|---|
| 2026-05-28 | 初稿,来自客户咨询「流程分支按部门设置审批人如何取值」 |
