# 学生退学、休学、毕业处理总览 ## 📋 概述 本文档基于校园管理系统(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校园管理系统数据库结构分析整理,采用模块化组织方式,详细处理内容请参考各分文档。*