Files
hzdyjs/退学、休学、复学、毕业/学生退学休学毕业处理清单.md
T
2025-12-25 18:01:27 +08:00

129 lines
6.0 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.
# 学生退学、休学、毕业处理总览
## 📋 概述
本文档基于校园管理系统(hzdyjs_xg)的数据库表结构和业务逻辑分析,总结了学生退学、休学、毕业时需要处理的业务模块和数据变更。
本文档采用模块化组织方式,将详细的处理内容拆分到各个分文档中,便于查阅和维护。
## 📚 文档结构
### 📋 核心指导文档
- **[01-核心状态修改.md](01-核心状态修改.md)** - 学生学籍状态、用户登录状态
- **[02-组织关系处理.md](02-组织关系处理.md)** - 班级干部信息、社团成员关系
- **[03-经济资助处理.md](03-经济资助处理.md)** - 非核心业务,已简化处理
- **[04-其他业务处理.md](04-其他业务处理.md)** - 住宿管理退宿处理
### 🛠️ 实施文档
- **[06-完整SQL脚本.md](06-完整SQL脚本.md)** - 完整的数据库处理脚本和事务管理
- **[07-快速执行脚本.md](07-快速执行脚本.md)** - 快速执行的简化脚本和批量处理
## 🔍 业务逻辑分析
通过分析数据库表结构、外键关系、字段定义和索引设计,可以推断出以下业务规则:
### 核心业务特征
1. **工作流驱动**: 大部分业务模块都涉及审批流程(奖学金、勤工俭学、宿舍等)
2. **批次管理**: 奖学金等业务按批次进行管理
3. **状态流转**: 各业务模块有明确的生命周期状态
4. **关联处理**: 学生状态变更需要联动处理多个相关业务
5. **数据完整性**: 通过外键约束确保数据一致性
### 处理原则
- **状态一致性**: 确保学生状态变更后,各业务模块状态保持逻辑一致
- **流程终止**: 终止进行中的审批流程,避免业务悬空
- **数据追溯**: 保留历史记录,便于审计和分析
- **业务连续性**: 考虑不同状态变更类型的差异化处理
## 🎯 处理流程概览
学生退学、休学、毕业处理涉及多个业务模块的联动更新,具体处理内容请参考各分文档:
### 📋 处理步骤
1. **确定变更类型**: 休学(XIU_XUE)/退学(TUI_XUE)/复学(FU_XUE)/毕业(BI_YE)
2. **创建状态变更记录**: 插入 `xg_student_status_change` 表记录
3. **备份原始数据**: 将相关表数据备份到对应的his表
4. **核心状态修改**: 更新 `xg_student_msg.student_status` 和 `sys_user.status`
5. **组织关系处理**: 处理班级干部、社团成员等关系变更(仅退学、休学、毕业时)
6. **住宿管理处理**: 处理宿舍退宿(仅退学、毕业时)
7. **更新处理状态**: 将 `xg_student_status_change.process_status` 设为1
8. **数据验证**: 确保所有相关数据已正确处理
### 🔄 状态映射关系
- **休学**: `student_status='2'`,`sys_user.status='1'`,终止组织关系
- **退学**: `student_status='4'`,`sys_user.status='1'`,终止组织关系和住宿
- **复学**: `student_status='3'`,`sys_user.status='0'`,恢复账号
- **毕业**: `student_status='5'`,`sys_user.status='1'`,终止组织关系和住宿
### 🏗️ 技术架构
基于代码分析,主要涉及以下技术组件:
- **核心实体**:
- `XgStudentMsg`: 学生基本信息实体
- `XgStudentStatusChange`: 学生状态变更记录实体
- `XgClassPosMsg`: 班级干部信息实体
- `ClubMember`: 社团成员关系实体
- `StglMember`: 志愿者成员关系实体
- `XgDormBedStudent`: 宿舍床位分配实体
- **业务服务**:
- `XgStudentStatusChangeServiceImpl`: 学生状态变更服务
- `XgClassPosMsgServiceImpl`: 班级干部管理服务
- `XgDormBedStudentServiceImpl`: 宿舍管理服务
- **数据访问**: MyBatis-Plus Mapper接口和XML配置
- **事务管理**: Spring `@Transactional` 声明式事务
- **状态机**: 通过状态字段值变化实现业务状态流转
- **his表备份**: 所有数据修改前自动备份到历史表
### 🎯 业务处理策略
- ✅ **核心状态**: 必须修改(学籍状态+用户账号状态)
- ✅ **his表备份**: 所有修改前备份原始数据
- ✅ **组织关系**: 退学、休学、毕业时解除干部和社团关系
- ✅ **住宿管理**: 退学、毕业时处理退宿
- ✅ **复学处理**: 仅涉及核心状态恢复
## 📊 数据库表统计
涉及的数据库表总数:**8个核心表**
| 模块 | 涉及表数量 | 重要程度 | 核心表名 |
|------|-----------|----------|----------|
| 核心状态管理 | 3 | ⭐⭐⭐⭐⭐ | `xg_student_msg`, `sys_user`, `xg_student_status_change` |
| 组织关系 | 3 | ⭐⭐⭐⭐⭐ | `xg_class_pos_msg`, `club_member`, `stgl_member` |
| 住宿管理 | 2 | ⭐⭐⭐⭐⭐ | `xg_dorm_bed_student`, `xg_dorm_bed` |
| his表备份 | 8 | ⭐⭐⭐⭐⭐ | 各主表对应的his表 |
## ⚠️ 重要注意事项
1. **数据备份**: 操作前务必备份相关数据
2. **事务处理**: 建议使用数据库事务确保数据一致性
3. **权限控制**: 确保操作人员具有相应权限
4. **日志记录**: 记录所有操作日志便于审计
5. **业务沟通**: 与相关部门沟通确认处理方案
## 🔄 系统集成考虑
- **审批流程**: 终止相关工作流
- **权限清理**: 清理角色权限
- **数据同步**: 确保各模块一致性
- **业务连续性**: 避免遗留问题
## 📚 快速开始
### 💡 使用指南
1. **确定变更类型**: 根据具体业务场景选择休学/退学/毕业
2. **查阅分文档**: 根据需要处理的业务模块查阅相应分文档
3. **执行处理**: 按分文档中的SQL脚本或业务逻辑进行处理
4. **验证结果**: 使用提供的验证脚本确认处理结果
5. **记录日志**: 确保所有操作都有完整的审计记录
---
## 📅 更新记录
- **2025-01-XX**: 初稿完成
- **2025-01-XX**: 添加完整SQL处理脚本
- **2025-12-XX**: 文档模块化拆分,将详细内容分离到分文档中
- **后续更新**: 根据实际业务需求持续完善
---
*本文档基于hzdyjs_xg校园管理系统数据库结构分析整理,采用模块化组织方式,详细处理内容请参考各分文档。*