178 lines
6.5 KiB
Markdown
178 lines
6.5 KiB
Markdown
# 学工管理-宿舍管理模块
|
||
|
||
## 📁 模块概述
|
||
|
||
本模块主要包含学工管理系统中宿舍管理相关的数据库设计和业务实现,重点关注宿舍管理人员的分配与设置功能,支持多维度管理和多级向下授权。
|
||
|
||
## 📋 模块结构
|
||
|
||
```
|
||
学工管理-宿舍管理/
|
||
├── README.md # 模块说明文档
|
||
├── 数据库设计/
|
||
│ ├── 宿舍管理数据库设计.md # 数据库设计文档
|
||
│ ├── 宿舍管理数据库初始化.sql # 数据库初始化脚本
|
||
│ └── 宿舍管理数据字典.sql # 数据字典脚本
|
||
└── 技术设计/
|
||
└── 宿舍管理技术架构设计.md # 技术架构设计文档
|
||
```
|
||
|
||
## 🗄️ 数据库设计
|
||
|
||
### 核心数据表
|
||
|
||
#### 1. 宿舍管理维度表
|
||
- **dorm_management_dimension** - 宿舍管理维度定义表
|
||
- **dorm_campus** - 校区信息表
|
||
- **dorm_area** - 宿舍区信息表
|
||
- **dorm_building** - 宿舍楼信息表
|
||
- **dorm_college** - 二级学院信息表
|
||
|
||
#### 2. 管理人员表
|
||
- **dorm_manager** - 宿舍管理人员基本信息表
|
||
- **dorm_manager_position** - 管理人员职位表
|
||
- **dorm_manager_assignment** - 管理人员分配表
|
||
|
||
#### 3. 权限管理表
|
||
- **dorm_permission_level** - 权限层级表
|
||
- **dorm_manager_permission** - 管理人员权限表
|
||
- **dorm_permission_log** - 权限变更日志表
|
||
|
||
#### 4. 管理效果评估表
|
||
- **dorm_management_stats** - 管理数据统计表
|
||
- **dorm_permission_usage** - 权限使用记录表
|
||
|
||
## 🎯 核心功能
|
||
|
||
### 1. 多维度管理人员分配
|
||
- 支持全校、校区、宿舍区、宿舍楼、二级学院5个维度的管理人员配置
|
||
- 支持多维度组合配置
|
||
- 支持管理范围的动态调整
|
||
|
||
### 2. 多级向下授权功能
|
||
- 建立5级权限管理体系
|
||
- 支持权限的逐级向下传递
|
||
- 支持权限继承和覆盖机制
|
||
|
||
### 3. 权限配置管理
|
||
- 功能权限和数据权限的精细化配置
|
||
- 权限审批流程管理
|
||
- 权限使用情况监控
|
||
|
||
### 4. 管理效果评估
|
||
- 管理数据统计和分析
|
||
- 权限使用效果评估
|
||
- 管理效率优化建议
|
||
|
||
## 🔧 技术特点
|
||
|
||
### 1. 数据库设计特点
|
||
- **分层权限设计**:支持5级权限层级的数据权限控制
|
||
- **多维度关联**:支持按不同维度进行数据关联和查询
|
||
- **审计日志**:完整的权限变更和操作日志记录
|
||
- **数据安全**:敏感信息加密存储
|
||
|
||
### 2. 性能优化
|
||
- **索引优化**:针对多维度查询的复合索引设计
|
||
- **分区策略**:大数据量的分区存储策略
|
||
- **缓存机制**:权限验证的缓存优化
|
||
|
||
### 3. 扩展性设计
|
||
- **维度扩展**:支持新增管理维度的扩展
|
||
- **权限扩展**:支持新增权限类型的扩展
|
||
- **功能扩展**:支持新增管理功能的扩展
|
||
|
||
## 📊 数据关系
|
||
|
||
### 1. 维度关系
|
||
```
|
||
校区 (campus)
|
||
├── 宿舍区 (area)
|
||
│ └── 宿舍楼 (building)
|
||
└── 二级学院 (college)
|
||
```
|
||
|
||
### 2. 权限层级关系
|
||
```
|
||
学生处宿舍管理负责人 (Level 1)
|
||
├── 校区宿舍管理负责人 (Level 2)
|
||
│ ├── 宿舍区主管 (Level 3)
|
||
│ │ └── 宿舍楼管理员 (Level 4)
|
||
│ └── 二级学院宿舍管理负责人 (Level 5)
|
||
```
|
||
|
||
### 3. 管理人员分配关系
|
||
```
|
||
管理人员 (manager)
|
||
├── 职位信息 (position)
|
||
├── 分配信息 (assignment)
|
||
├── 权限信息 (permission)
|
||
└── 使用记录 (usage)
|
||
```
|
||
|
||
## 🔗 相关文档
|
||
|
||
### 需求文档
|
||
- [宿舍管理人员分配需求分析](../../需求文档/学工管理宿舍管理需求/宿舍管理人员分配需求分析.md)
|
||
|
||
### 项目规范
|
||
- [后端开发规范](../../.cursor/cursorrules-backend.md)
|
||
- [数据库设计规范](../../设计文档/database/mysql-database-standard.md)
|
||
|
||
### 相关模块
|
||
- [学生信息管理](../../业务模块/学工管理-学生信息管理/)
|
||
- [物业报修管理](../../业务模块/property-maintenance/)
|
||
|
||
## 📝 开发说明
|
||
|
||
### 1. 开发顺序
|
||
1. **数据库设计**:完成数据库表结构设计
|
||
2. **基础功能**:实现多维度管理人员分配
|
||
3. **权限功能**:实现多级向下授权功能
|
||
4. **评估功能**:实现管理效果评估功能
|
||
|
||
### 2. 测试重点
|
||
- 多维度数据权限控制测试
|
||
- 权限继承和覆盖机制测试
|
||
- 大量数据并发访问测试
|
||
- 权限变更审计日志测试
|
||
|
||
### 3. 部署要求
|
||
- MySQL 8.0+ 数据库环境
|
||
- 支持事务和锁机制
|
||
- 支持存储过程和触发器
|
||
- 支持数据备份和恢复
|
||
|
||
---
|
||
|
||
**📞 联系方式**:如有问题或建议,请联系开发团队
|
||
**📅 最后更新**:2025-01-14
|
||
**🔄 模块状态**:设计阶段
|
||
|
||
## 🆕 前端功能更新(班主任分配床位给学生)
|
||
|
||
- 新增页面:`web/src/views/xg/xgss/bzrfp/bzrfp.vue`
|
||
- 班主任可在“我的班级”Tab 中,针对每个班级进行床位分配给学生
|
||
- 左侧:宿舍楼树(通过接口获取,仅宿舍楼节点可选)
|
||
- 右侧:房间/床位树表,支持选择空闲床位与状态查看
|
||
- 操作:选择性分配(弹窗)、一键随机分配、按学号分配、一键收回
|
||
- 弹窗组件:`web/src/views/xg/xgss/bzrfp/components/SelectiveAllocationDialog.vue`
|
||
- 左侧为可用床位列表,右侧为该班级未分配且有住宿需求的学生列表
|
||
- 支持随机分配/按学号分配,两侧数量需一致
|
||
|
||
- 相关前端API(已存在于相应模块,无需新增后端接口):
|
||
- 获取班主任宿舍楼树:`getClassTeacherDormTree(classId)` → `@/api/xg/xgss/dormBedStudent/dormBedStudent` 目录
|
||
- 获取房间床位详情(含学生):`getClassTeacherBedDetails(buildingId, classId)`
|
||
- 获取未分配学生列表:`getClassTeacherUnallocatedStudents(classId)`
|
||
- 选择性分配:`classTeacherSelectiveAllocation({ bedIds, studentIds, allocationType }, classId)`
|
||
- 一键随机分配:`classTeacherRandomAllocation(buildingId, classId)`
|
||
- 按学号分配:`classTeacherStudentNoAllocation(buildingId, classId)`
|
||
- 一键收回:`classTeacherRecallBeds(buildingId, classId)`
|
||
- 获取我管理的班级列表:`getMyClassListAsTeacher()` → `@/api/xg/xsjcxx/classMsg/classMsg`
|
||
|
||
- 数据来源说明:
|
||
- 分配数据基于 `xg_dorm_bed_student` 关联 `xg_dorm_room`、`xg_student_msg` 实现:
|
||
- 通过 `building_id + class_id` 获取该班在楼栋下的房间与床位分配
|
||
- 通过 `student_id` 判定床位是否已入住,并展示学生信息
|
||
|
||
> 本次为前端界面与交互完善,无数据库表结构与后端接口变更。文档同步记录以便后续联调与测试追溯。 |