Files
loan-pricing/doc/implementation-report-2026-05-18-workflow-list-branch-admin-dept-scope.md

3.9 KiB
Raw Blame History

流程列表支行管理员数据权限实施记录

修改日期

2026-05-18

需求范围

  • loan_pricing_workflow 新增 dept_id,保存新创建流程的创建人机构号。
  • GET /loanPricing/workflow/list 增加支行管理员数据权限:
    • 超级管理员、角色名“管理员”或角色标识 headAdmin 查看全部流程。
    • 角色名“支行管理员”或角色标识 branchAdmin 查看本人机构及下级机构创建的流程。
    • 其他用户继续只查看本人 create_by 精确匹配的流程。
  • 不回填历史流程数据,历史 dept_id 为空的数据不纳入支行管理员机构权限。
  • 本次无前端代码改动。

修改内容

  • 新增 sql/add_workflow_dept_id_20260518.sql,为流程表增加 dept_id 字段和 idx_dept_id 索引。
  • 同步更新流程表建表脚本中的 dept_id 字段和索引定义。
  • LoanPricingWorkflow 增加表字段 deptId 和列表内部权限字段 dataScopeDeptId
  • LoanPricingWorkflowServiceImpl.createLoanPricing 在插入前写入当前登录人的 deptId
  • LoanPricingWorkflowServiceImpl.selectLoanPricingPage 增加支行管理员分支:
    • headAdmin 不加权限过滤。
    • branchAdmin 写入当前登录人的 dataScopeDeptId
    • 客户经理继续写入 dataScopeCreateBy
  • LoanPricingWorkflowMapper.xml 增加基于 lpw.dept_idsys_dept.ancestors 的本机构及下级机构过滤。
  • 创建者查询参数仍按 SUBSTRING_INDEX(lpw.create_by, '-', -1) 只模糊匹配柜员号,并与数据权限条件取交集。

验证记录

  • 单元测试通过:
mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingWorkflowServiceImplTest,LoanPricingWorkflowMapperXmlTest -Dsurefire.failIfNoSpecifiedTests=false test
  • 后端打包通过:
mvn -pl ruoyi-admin -am clean package -DskipTests
  • 已在开发库执行:
mysql ... loan-pricing < sql/add_workflow_dept_id_20260518.sql
  • 数据库回查确认 loan_pricing_workflow.dept_ididx_dept_id 已存在。
  • API 验证通过:
    • 8929999/headAdmin 查询临时流程返回 6 条,包含全部测试数据。
    • 8920100/branchAdmin 查询临时流程返回 4 条,仅包含本机构、本人和下级机构数据。
    • 8920001/客户经理 查询临时流程返回 1 条,仅包含本人创建数据。
    • 8920100/branchAdmin 使用其他支行创建者 8920201 作为查询条件时返回 0 条,创建者查询参数不能扩大数据权限。
  • 真实创建接口验证通过:
    • 8920100/branchAdmin 调用个人流程创建接口后,新流程落库 dept_id=101create_by=测试支行管理员-8920100
  • browser-use 真实页面验证通过:
    • 支行管理员登录真实流程列表页,页面显示 共 4 条
    • 页面只显示 BRANCH_SCOPE_20260518_CREATEBRANCH_SCOPE_20260518_SELFBRANCH_SCOPE_20260518_SAMEBRANCH_SCOPE_20260518_CHILD
    • 页面未显示其他支行 BRANCH_SCOPE_20260518_OTHER 和普通客户经理本人 BRANCH_SCOPE_20260518_MANAGER

测试数据保留

  • 按复测要求,本次验证保留测试用户和测试流程数据,不做清理。
  • 保留临时用户:
    • 8920100,昵称 测试支行管理员,角色 branchAdmin,机构 101
  • 保留流程数据:
    • BRANCH_SCOPE_20260518_SELF,机构 101,创建者 测试支行管理员-8920100
    • BRANCH_SCOPE_20260518_SAME,机构 101,创建者 同支行客户经理-8920101
    • BRANCH_SCOPE_20260518_CHILD,机构 103,创建者 下级客户经理-8920103
    • BRANCH_SCOPE_20260518_OTHER,机构 102,创建者 其他支行客户经理-8920201
    • BRANCH_SCOPE_20260518_MANAGER,机构 100,创建者 测试客户经理-8920001
    • BRANCH_SCOPE_20260518_CREATE,机构 101,创建者 测试支行管理员-8920100,由真实新增接口创建。