Skip to content

问题

流程表单默认会赋值并存储申请人、所属单位、所属部门等信息。在流程分支条件里,想按不同部门走不同审批人,应该如何取部门编码或部门名称?条件表达式里的「公司」又应该怎么填?

答案

表头「所属单位 / 所属部门」对应的是流程变量 companyId / companyName / deptId / deptName,不是单独的「部门编码」字段。条件表达式里优先用 deptId(数字 ID) 判断部门;「公司」对应 companyIdcompanyName(所属单位)。

示例:

text
${deptId == 103}
${companyId == 100 && deptId == 103}

详细说明

1. 系统里实际有哪些变量

发起流程时,后端会自动写入以下流程变量(业务单未传时,从发起人信息补全):

界面显示流程变量名类型含义
所属单位companyIdLong公司/单位在 system_dept 中的 ID
所属单位companyNameString公司名称,如「深圳总公司」
所属部门deptIdLong部门 ID
所属部门deptNameString部门名称,如「研发部门」

常量定义见后端 BpmProcessVariableConstantsbillCodecausedeptNamedeptIdcompanyNamecompanyId

2. 关于「部门编码」

system_dept 表主要字段为 idnameorg_type(0 部门 / 1 公司)等,没有独立的 deptCode 流程变量

分支判断建议:

  • 推荐deptId(数字 ID,稳定)
  • 备选deptName(名称,部门改名后需同步改条件)

3. 「公司 / 所属单位」怎么填

界面 「所属单位」= 流程变量里的公司,不是随意填写的文本字段。

  • companyName:表头显示名称(如「深圳总公司」)
  • companyId:该公司在部门树中的 ID

公司由系统从发起人部门向上查找第一个 org_type = '1' 的节点得到,与表头「所属单位」一致。表达式中写 companyIdcompanyName,不要写成 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

  1. 系统管理 → 部门管理:查看部门树节点 ID(即 system_dept.id
  2. 数据库
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 创建流程实例时写入 deptIddeptNamecompanyIdcompanyName
  • 公司向上查找:DeptServiceImpl.getUserCompany(deptId)org_type = '1'

相关链接

修订记录

日期修改
2026-05-28初稿,来自客户咨询「流程分支按部门设置审批人如何取值」
联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版