3.9 KiB
3.9 KiB
流程列表支行管理员数据权限实施记录
修改日期
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_id与sys_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_id和idx_dept_id已存在。 - API 验证通过:
8929999/headAdmin查询临时流程返回 6 条,包含全部测试数据。8920100/branchAdmin查询临时流程返回 4 条,仅包含本机构、本人和下级机构数据。8920001/客户经理查询临时流程返回 1 条,仅包含本人创建数据。8920100/branchAdmin使用其他支行创建者8920201作为查询条件时返回 0 条,创建者查询参数不能扩大数据权限。
- 真实创建接口验证通过:
8920100/branchAdmin调用个人流程创建接口后,新流程落库dept_id=101,create_by=测试支行管理员-8920100。
- browser-use 真实页面验证通过:
- 支行管理员登录真实流程列表页,页面显示
共 4 条。 - 页面只显示
BRANCH_SCOPE_20260518_CREATE、BRANCH_SCOPE_20260518_SELF、BRANCH_SCOPE_20260518_SAME、BRANCH_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,由真实新增接口创建。