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

75 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 流程列表支行管理员数据权限实施记录
## 修改日期
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)` 只模糊匹配柜员号,并与数据权限条件取交集。
## 验证记录
- 单元测试通过:
```bash
mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingWorkflowServiceImplTest,LoanPricingWorkflowMapperXmlTest -Dsurefire.failIfNoSpecifiedTests=false test
```
- 后端打包通过:
```bash
mvn -pl ruoyi-admin -am clean package -DskipTests
```
- 已在开发库执行:
```bash
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`,由真实新增接口创建。