04-其他业务处理.md 2.0 KB

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批量处理脚本
-- 参数说明:
-- @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: 根据用户需求简化其他业务处理,删除心理健康、学生活动、实习等非核心业务
  • 后续更新: 如需要其他业务处理,可根据实际业务需求重新添加