75 lines
3.9 KiB
Markdown
75 lines
3.9 KiB
Markdown
# 流程列表支行管理员数据权限实施记录
|
||
|
||
## 修改日期
|
||
|
||
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`,由真实新增接口创建。
|