166 lines
6.5 KiB
Markdown
166 lines
6.5 KiB
Markdown
# 07-快速执行脚本
|
|
|
|
## 📋 概述
|
|
|
|
本分文档提供快速执行的简化SQL脚本,适用于紧急处理或批量操作场景。这些脚本去除了复杂的事务处理和日志记录,专注于核心数据更新操作。
|
|
|
|
## ⚡ 快速执行脚本
|
|
|
|
### 休学处理快速脚本
|
|
|
|
```sql
|
|
-- 休学处理:保留账号,暂停业务
|
|
SET @student_id = 123456789;
|
|
SET @student_no = '20240001';
|
|
SET @operator_id = 1;
|
|
|
|
UPDATE xg_student_msg SET student_status = '2', update_by = @operator_id, update_time = NOW() WHERE id = @student_id;
|
|
UPDATE xg_class_pos_msg SET is_current = 0, cadre_status = '6', dismissal_date = CURDATE(), dismissal_reason = '学生休学' WHERE student_id = @student_id AND is_current = 1;
|
|
UPDATE club_member SET member_status = '4' WHERE user_id = @student_id AND member_status IN ('0', '1', '2');
|
|
UPDATE jcbt_scholarship_application SET current_status = 'WITHDRAWN' WHERE student_id = @student_id AND current_status IN ('PENDING', 'APPROVED');
|
|
UPDATE jcbt_work_study_application SET status = 'CANCELLED' WHERE student_id = @student_id AND status NOT IN ('CANCELLED', 'COLLEGE_REJECTED', 'FINAL_REJECTED');
|
|
UPDATE xljk_consultation_appointment SET status = '2' WHERE student_id = @student_id AND status = '0' AND appointment_date >= CURDATE();
|
|
UPDATE stgl_activity_registration SET approval_status = 2 WHERE student_no = @student_no AND approval_status = 1;
|
|
UPDATE zsjy_internship_info SET internship_status = '3', actual_end_date = CURDATE() WHERE student_id = @student_id AND internship_status = '1';
|
|
```
|
|
|
|
### 退学处理快速脚本
|
|
|
|
```sql
|
|
-- 退学处理:禁用账号,终止所有业务
|
|
SET @student_id = 123456789;
|
|
SET @student_no = '20240001';
|
|
SET @operator_id = 1;
|
|
|
|
UPDATE xg_student_msg SET student_status = '4', update_by = @operator_id, update_time = NOW() WHERE id = @student_id;
|
|
UPDATE sys_user SET status = '1' WHERE user_name = @student_no AND account_type = '2';
|
|
UPDATE xg_class_pos_msg SET is_current = 0, cadre_status = '4', dismissal_date = CURDATE() WHERE student_id = @student_id AND is_current = 1;
|
|
UPDATE club_member SET member_status = '4' WHERE user_id = @student_id AND member_status IN ('0', '1', '2');
|
|
UPDATE jcbt_scholarship_application SET current_status = 'WITHDRAWN' WHERE student_id = @student_id AND current_status IN ('PENDING', 'APPROVED');
|
|
UPDATE jcbt_work_study_application SET status = 'CANCELLED' WHERE student_id = @student_id AND status NOT IN ('CANCELLED', 'COLLEGE_REJECTED', 'FINAL_REJECTED');
|
|
UPDATE xg_dorm_bed_student SET status = '1', checkout_time = NOW() WHERE student_id = @student_id AND status = '0';
|
|
UPDATE xljk_consultation_appointment SET status = '2' WHERE student_id = @student_id AND status = '0' AND appointment_date >= CURDATE();
|
|
UPDATE stgl_activity_registration SET approval_status = 2 WHERE student_no = @student_no AND approval_status = 1;
|
|
UPDATE zsjy_internship_info SET internship_status = '3', actual_end_date = CURDATE() WHERE student_id = @student_id AND internship_status = '1';
|
|
```
|
|
|
|
### 毕业处理快速脚本
|
|
|
|
```sql
|
|
-- 毕业处理:归档所有业务
|
|
SET @student_id = 123456789;
|
|
SET @student_no = '20240001';
|
|
SET @operator_id = 1;
|
|
|
|
UPDATE xg_student_msg SET student_status = '5', update_by = @operator_id, update_time = NOW() WHERE id = @student_id;
|
|
UPDATE sys_user SET status = '1' WHERE user_name = @student_no AND account_type = '2';
|
|
UPDATE xg_class_pos_msg SET is_current = 0, cadre_status = '4', dismissal_date = CURDATE() WHERE student_id = @student_id AND is_current = 1;
|
|
UPDATE club_member SET member_status = '4' WHERE user_id = @student_id AND member_status IN ('0', '1', '2');
|
|
UPDATE xg_dorm_bed_student SET status = '1', checkout_time = NOW() WHERE student_id = @student_id AND status = '0';
|
|
```
|
|
|
|
## 🔧 批量处理脚本
|
|
|
|
### 批量休学处理
|
|
|
|
```sql
|
|
-- 批量休学处理脚本
|
|
-- 使用前请将学生信息填入临时表 student_leave_batch
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS student_leave_batch;
|
|
CREATE TEMPORARY TABLE student_leave_batch (
|
|
student_id BIGINT PRIMARY KEY,
|
|
student_no VARCHAR(32),
|
|
leave_date DATE DEFAULT CURDATE()
|
|
);
|
|
|
|
-- 插入待处理的學生信息
|
|
-- INSERT INTO student_leave_batch (student_id, student_no) VALUES (123, '20240001'), (456, '20240002');
|
|
|
|
-- 批量更新学生状态
|
|
UPDATE xg_student_msg
|
|
SET student_status = '2',
|
|
update_by = 1,
|
|
update_time = NOW()
|
|
WHERE id IN (SELECT student_id FROM student_leave_batch)
|
|
AND deleted = 0;
|
|
|
|
-- 批量处理班级干部
|
|
UPDATE xg_class_pos_msg
|
|
SET is_current = 0,
|
|
cadre_status = '6',
|
|
dismissal_date = CURDATE(),
|
|
dismissal_reason = '学生休学',
|
|
update_by = 1,
|
|
update_time = NOW()
|
|
WHERE student_id IN (SELECT student_id FROM student_leave_batch)
|
|
AND is_current = 1
|
|
AND deleted = 0;
|
|
|
|
-- 批量处理社团成员
|
|
UPDATE club_member
|
|
SET member_status = '4',
|
|
update_by = 1,
|
|
update_time = NOW()
|
|
WHERE user_id IN (SELECT student_id FROM student_leave_batch)
|
|
AND member_status IN ('0', '1', '2')
|
|
AND deleted = 0;
|
|
|
|
-- 批量处理奖学金申请
|
|
UPDATE jcbt_scholarship_application
|
|
SET current_status = 'WITHDRAWN',
|
|
update_by = 1,
|
|
update_time = NOW()
|
|
WHERE student_id IN (SELECT student_id FROM student_leave_batch)
|
|
AND current_status IN ('PENDING', 'APPROVED')
|
|
AND deleted = 0;
|
|
|
|
-- 显示处理结果
|
|
SELECT '休学处理完成' as result,
|
|
COUNT(*) as processed_count
|
|
FROM student_leave_batch;
|
|
```
|
|
|
|
## ⚠️ 使用注意事项
|
|
|
|
### 快速脚本特点
|
|
- **简化处理**: 去除了复杂的事务管理和详细日志记录
|
|
- **快速执行**: 适用于紧急情况或已知数据环境
|
|
- **手动确认**: 执行前请仔细检查参数设置
|
|
- **备份要求**: 重要操作前必须备份数据
|
|
|
|
### 参数设置要求
|
|
```sql
|
|
-- 必须设置的参数
|
|
SET @student_id = 123456789; -- 学生ID
|
|
SET @student_no = '20240001'; -- 学生学号
|
|
SET @operator_id = 1; -- 操作员ID
|
|
|
|
-- 可选参数
|
|
SET @change_date = '2025-12-24'; -- 变更日期,默认为当前日期
|
|
```
|
|
|
|
### 执行顺序建议
|
|
1. **备份数据**: 执行任何修改前备份相关表
|
|
2. **设置参数**: 确认所有参数正确设置
|
|
3. **逐步执行**: 可以分批次执行,便于问题排查
|
|
4. **验证结果**: 执行后检查各表更新结果
|
|
5. **记录日志**: 手动记录操作日志
|
|
|
|
### 错误处理
|
|
- 如果脚本执行失败,回滚事务
|
|
- 检查约束冲突和外键关系
|
|
- 确认用户权限和数据权限
|
|
- 查看数据库错误日志
|
|
|
|
---
|
|
|
|
## 📅 更新记录
|
|
|
|
- **2025-12-XX**: 分文档创建,包含快速执行脚本
|
|
- **后续更新**: 根据实际业务需求持续完善
|
|
|
|
---
|
|
|
|
*本分文档提供快速执行的简化脚本,适用于紧急处理场景,使用时请谨慎并做好数据备份。*
|