99 lines
4.7 KiB
Markdown
99 lines
4.7 KiB
Markdown
# 部门数据隔离功能需求文档
|
||
|
||
## 介绍
|
||
|
||
为安信平台的核心业务表添加部门数据隔离功能,让不同部门的用户只能看到和操作自己部门的数据,提高数据安全性。
|
||
|
||
## 术语表
|
||
|
||
- **系统**: 部门数据隔离系统
|
||
- **业务表**: 合同管理表、服务周期管理表、员工表、员工库表、债权管理表、银行管理表
|
||
- **部门字段**: dept_id字段
|
||
- **访问控制**: 数据访问控制
|
||
- **权限检查**: 权限验证
|
||
|
||
## 需求
|
||
|
||
### 需求 1: 数据库表结构修改
|
||
|
||
**用户故事:** 作为系统管理员,我希望为核心业务表添加部门字段,以便实现基于部门的数据隔离。
|
||
|
||
#### 验收标准
|
||
|
||
1. 修改合同管理表(dc_contract)时,系统应该添加dept_id字段并与部门表建立关联
|
||
2. 修改服务周期管理表(dc_service_period)时,系统应该添加dept_id字段并与部门表建立关联
|
||
3. 修改员工表(dc_employee_info)时,系统应该添加dept_id字段并与部门表建立关联
|
||
4. 修改员工库表(dc_employee_library)时,系统应该添加dept_id字段并与部门表建立关联
|
||
5. 修改债权管理表(dc_credit)时,系统应该添加dept_id字段并与部门表建立关联
|
||
6. 修改银行管理表(dc_bank_institution)时,系统应该添加dept_id字段并与部门表建立关联
|
||
7. 添加部门字段时,系统应该为所有新增字段创建索引以提高查询速度
|
||
8. 添加部门字段时,系统应该确保字段不能为空并设置合理的默认值
|
||
|
||
### 需求 2: 数据迁移和初始化
|
||
|
||
**用户故事:** 作为系统管理员,我希望为现有数据分配合适的部门,确保数据迁移的完整性和准确性。
|
||
|
||
#### 验收标准
|
||
|
||
1. 执行数据迁移时,系统应该为所有现有记录分配默认部门ID
|
||
2. 分配默认部门时,系统应该使用系统配置的默认部门或根据业务逻辑智能分配
|
||
3. 数据迁移完成后,系统应该验证所有记录都已正确分配部门
|
||
4. 迁移过程中出现错误时,系统应该记录详细的错误日志并提供回滚机制
|
||
|
||
### 需求 3: 数据访问权限控制
|
||
|
||
**用户故事:** 作为业务用户,我希望只能查看和操作属于我所在部门的数据,确保数据安全和隐私保护。
|
||
|
||
#### 验收标准
|
||
|
||
1. 用户查询业务数据时,系统应该自动添加部门过滤条件
|
||
2. 用户创建新记录时,系统应该自动设置当前用户所属部门ID
|
||
3. 用户修改记录时,系统应该验证记录是否属于用户所在部门
|
||
4. 用户删除记录时,系统应该验证记录是否属于用户所在部门
|
||
5. 跨部门访问被拒绝时,系统应该返回明确的权限错误信息
|
||
|
||
### 需求 4: 超级管理员权限
|
||
|
||
**用户故事:** 作为超级管理员,我希望能够查看和管理所有部门的数据,以便进行系统维护和数据分析。
|
||
|
||
#### 验收标准
|
||
|
||
1. 超级管理员访问数据时,系统应该允许查看所有部门的数据
|
||
2. 超级管理员操作数据时,系统应该允许对任意部门的数据进行增删改操作
|
||
3. 识别超级管理员时,系统应该通过角色或特殊权限标识进行判断
|
||
4. 超级管理员操作时,系统应该记录详细的操作日志
|
||
|
||
### 需求 5: 关联数据一致性
|
||
|
||
**用户故事:** 作为系统架构师,我希望确保关联数据的部门一致性,避免数据孤岛和引用错误。
|
||
|
||
#### 验收标准
|
||
|
||
1. 创建服务周期时,系统应该验证关联合同属于同一部门
|
||
2. 分配员工到服务周期时,系统应该验证员工和服务周期属于同一部门
|
||
3. 创建债权记录时,系统应该验证关联合同属于同一部门
|
||
4. 关联数据部门不一致时,系统应该阻止操作并返回错误信息
|
||
5. 部门变更时,系统应该提供级联更新机制或警告
|
||
|
||
### 需求 6: 查询性能优化
|
||
|
||
**用户故事:** 作为系统用户,我希望添加部门隔离后系统查询性能不会显著下降。
|
||
|
||
#### 验收标准
|
||
|
||
1. 执行部门过滤查询时,系统应该利用部门字段索引优化查询性能
|
||
2. 创建复合索引时,系统应该将dept_id作为索引的第一个字段
|
||
3. 查询大量数据时,系统应该确保响应时间在可接受范围内
|
||
4. 监控查询性能时,系统应该提供性能指标和慢查询日志
|
||
|
||
### 需求 7: 向后兼容性
|
||
|
||
**用户故事:** 作为开发人员,我希望部门隔离功能不会破坏现有的业务逻辑和API接口。
|
||
|
||
#### 验收标准
|
||
|
||
1. 现有API调用时,系统应该保持接口签名不变
|
||
2. 业务逻辑执行时,系统应该透明地添加部门过滤而不影响业务流程
|
||
3. 数据库查询时,系统应该通过拦截器或AOP方式添加部门条件
|
||
4. 系统升级时,系统应该提供平滑的迁移路径
|
||
5. 功能开关时,系统应该支持部门隔离功能的启用/禁用配置 |