This commit is contained in:
zlwu committed 2025-12-25 18:01:27 +08:00
1 parent fb6d0aa63c
commit ff1228873c
37 files changed
+11861 -1823

No files matched your search

@@ -111,21 +111,30 @@ BEGIN
v_effective_date, p_operator_id, 'system', 1
);
-- 4. 更新学生学籍状态
-- 4. 备份原始数据到his表
INSERT INTO xg_student_msg_his SELECT * FROM xg_student_msg WHERE id = p_student_id;
INSERT INTO sys_user_his SELECT * FROM sys_user WHERE user_id = p_student_id;
-- 5. 更新学生学籍状态
UPDATE xg_student_msg
SET student_status = v_new_student_status,
update_by = p_operator_id,
update_time = v_current_time
WHERE id = p_student_id AND deleted = 0;
-- 5. 处理用户账号状态
-- 6. 处理用户账号状态
IF v_disable_user_account THEN
UPDATE sys_user
SET status = '1',
update_by = p_operator_id,
update_time = v_current_time,
remark = CONCAT(COALESCE(remark, ''), ' | ', v_exit_reason, '-', v_current_time)
WHERE user_name = p_student_no AND account_type = '2' AND del_flag = '0';
update_time = v_current_time
WHERE user_id = p_student_id AND account_type = '2' AND del_flag = '0';
ELSE
UPDATE sys_user
SET status = '0',
update_by = p_operator_id,
update_time = v_current_time
WHERE user_id = p_student_id AND account_type = '2' AND del_flag = '0';
END IF;
-- 6. 处理班级干部信息(休学、退学、毕业)
@@ -156,59 +165,6 @@ BEGIN
WHERE user_id = p_student_id AND status IN (0, 1, 2) AND deleted = 0;
END IF;
-- 8. 处理经济资助 - 奖学金申请
IF p_change_type IN ('XIU_XUE', 'TUI_XUE', 'BI_YE') THEN
UPDATE jcbt_scholarship_application
SET current_status = CASE
WHEN p_change_type = 'XIU_XUE' THEN 'WITHDRAWN' -- 休学:撤回
WHEN p_change_type = 'TUI_XUE' THEN 'REJECTED' -- 退学:拒绝
WHEN p_change_type = 'BI_YE' THEN
CASE WHEN current_status = 'APPROVED' THEN 'APPROVED' -- 毕业:保持已通过
ELSE 'WITHDRAWN' -- 其他状态撤回
END
ELSE current_status
END,
update_by = p_operator_id,
update_time = v_current_time
WHERE student_id = p_student_id AND current_status NOT IN ('REJECTED') AND deleted = 0;
END IF;
-- 9. 处理经济资助 - 勤工俭学申请
IF p_change_type IN ('XIU_XUE', 'TUI_XUE', 'BI_YE') THEN
UPDATE jcbt_work_study_application
SET status = 'CANCELLED',
college_review_status = CASE
WHEN college_review_status IS NOT NULL THEN 'REJECTED'
ELSE college_review_status
END,
final_review_status = CASE
WHEN final_review_status IS NOT NULL THEN 'REJECTED'
ELSE final_review_status
END,
final_review_time = v_current_time,
final_reviewer_id = p_operator_id,
final_reviewer_name = '系统',
final_review_comment = CONCAT(v_exit_reason, ',岗位申请自动终止'),
update_by = p_operator_id,
update_time = v_current_time
WHERE student_id = p_student_id
AND status NOT IN ('CANCELLED', 'COLLEGE_REJECTED', 'FINAL_REJECTED')
AND deleted = 0;
END IF;
-- 10. 处理经济资助 - 贫困生认定
IF p_change_type IN ('XIU_XUE', 'TUI_XUE', 'BI_YE') THEN
UPDATE jcbt_poverty_application
SET application_status = CASE
WHEN application_status = 'approved' THEN 'revoked' -- 撤销已通过的认定
ELSE application_status
END,
update_by = p_operator_id,
update_time = v_current_time
WHERE student_id = p_student_id
AND application_status NOT IN ('cancel', 'invalid')
AND deleted = 0;
END IF;
-- 11. 处理宿舍住宿关系(退学、毕业)
IF p_change_type IN ('TUI_XUE', 'BI_YE') THEN
@@ -221,41 +177,6 @@ BEGIN
WHERE student_id = p_student_id AND status = '0' AND deleted = '0';
END IF;
-- 12. 取消心理咨询预约(休学、退学、毕业)
IF p_change_type IN ('XIU_XUE', 'TUI_XUE', 'BI_YE') THEN
UPDATE xljk_consultation_appointment
SET status = '2',
update_by = p_operator_id,
update_time = v_current_time
WHERE student_id = p_student_id AND status = '0'
AND appointment_date >= CURDATE() AND deleted = 0;
END IF;
-- 13. 取消学生活动报名(退学、毕业)
IF p_change_type IN ('TUI_XUE', 'BI_YE') THEN
UPDATE stgl_activity_registration
SET approval_status = '3',
approval_time = v_current_time,
approval_by = p_operator_id,
approval_remark = CONCAT(v_exit_reason, ',活动报名自动取消'),
update_by = p_operator_id,
update_time = v_current_time
WHERE student_no = p_student_no AND approval_status = '1'
AND EXISTS (SELECT 1 FROM stgl_activity a
WHERE a.id = stgl_activity_registration.activity_id
AND a.activity_start_time > v_current_time);
END IF;
-- 14. 终止实习(退学)
IF p_change_type = 'TUI_XUE' THEN
UPDATE zsjy_internship_info
SET internship_status = '3',
actual_end_date = CURDATE(),
update_by = p_operator_id,
update_time = v_current_time,
remark = CONCAT(COALESCE(remark, ''), ' | 学生退学,实习中断')
WHERE student_id = p_student_id AND internship_status = '1' AND deleted = 0;
END IF;
-- 提交事务
COMMIT;