# 04-其他业务处理 ## 📋 概述 本分文档详细说明学生退学、休学、毕业、复学处理中的其他业务模块处理内容,包括住宿管理和其他关联信息的变更逻辑。 ## 🏠 住宿管理 ### 1. 宿舍管理退宿处理 #### 📊 数据库表结构 ##### 床位分配表 (xg_dorm_bed_student) | 字段名 | 类型 | 说明 | 默认值 | |--------|------|------|--------| | `id` | bigint(20) | 主键ID | - | | `student_id` | bigint(20) | 学生ID | - | | `bed_id` | bigint(20) | 床位ID | - | | `status` | varchar(10) | 状态(0正常 1已退宿) | - | | `checkout_time` | datetime | 退宿时间 | NULL | #### 🔄 宿舍退宿业务流程 ##### 💾 SQL批量处理脚本 ```sql -- 参数说明: -- @student_id: 学生ID -- @change_type: 变更类型 (XIU_XUE-休学, TUI_XUE-退学, FU_XUE-复学, BI_YE-毕业) -- @operator_id: 操作员ID -- 1. 备份原始数据到his表 INSERT INTO xg_dorm_bed_student_his SELECT * FROM xg_dorm_bed_student WHERE student_id = @student_id; -- 2. 清空学生信息表的住宿信息 UPDATE xg_student_msg SET dormitory_building = NULL, dormitory_room = NULL, ext_field1 = NULL, update_time = NOW(), update_by = @operator_id WHERE id = @student_id; -- 3. 处理宿舍住宿关系(退学、毕业时退宿) UPDATE xg_dorm_bed_student SET status = '1', checkout_time = NOW(), update_time = NOW(), update_by = @operator_id WHERE student_id = @student_id AND status = '0' -- 当前在住 AND deleted = '0' AND @change_type IN ('TUI_XUE', 'BI_YE'); -- 4. 释放床位资源 UPDATE xg_dorm_bed SET bed_status = '0' WHERE id IN ( SELECT bed_id FROM xg_dorm_bed_student WHERE student_id = @student_id AND status = '1' AND deleted = '0' ) AND deleted = '0'; ``` --- ## 📅 更新记录 - **2025-12-XX**: 根据用户需求简化其他业务处理,删除心理健康、学生活动、实习等非核心业务 - **后续更新**: 如需要其他业务处理,可根据实际业务需求重新添加