67 lines
2.4 KiB
SQL
67 lines
2.4 KiB
SQL
-- 招生录取流程数据修复脚本
|
|
-- 创建时间: 2025-07-20
|
|
-- 功能说明: 修复录取流程表与报名信息表不一致的问题,以及缺失字段数据
|
|
|
|
-- 1. 为缺少流程记录的报名信息创建流程记录
|
|
INSERT INTO zsjy_enrollment_process (
|
|
id, tenant_id, create_by, create_time, update_by, update_time, deleted,
|
|
enrollment_id, student_name, id_card, current_status, current_handler, current_handler_name,
|
|
info_audit_status, admission_status, final_audit_status, payment_status, is_completed
|
|
)
|
|
SELECT
|
|
FLOOR(RAND() * 9000000000000000000) + 1000000000000000000 as id, -- 生成一个随机的雪花ID
|
|
a.tenant_id, 1, NOW(), NULL, NULL, 0,
|
|
a.id, a.name, a.id_card, '0', 9001, '张老师',
|
|
'0', '0', '0', '0', 0
|
|
FROM zsjy_enrollment_info a
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM zsjy_enrollment_process b
|
|
WHERE a.id = b.enrollment_id
|
|
);
|
|
|
|
-- 2. 更新所有流程记录中空的处理人字段
|
|
UPDATE zsjy_enrollment_process
|
|
SET
|
|
info_audit_user = CASE
|
|
WHEN info_audit_status = '1' THEN current_handler
|
|
ELSE NULL
|
|
END,
|
|
info_audit_user_name = CASE
|
|
WHEN info_audit_status = '1' THEN current_handler_name
|
|
ELSE NULL
|
|
END,
|
|
admission_user = CASE
|
|
WHEN admission_status = '1' THEN current_handler
|
|
ELSE NULL
|
|
END,
|
|
admission_user_name = CASE
|
|
WHEN admission_status = '1' THEN current_handler_name
|
|
ELSE NULL
|
|
END,
|
|
final_audit_user = CASE
|
|
WHEN final_audit_status = '1' THEN current_handler
|
|
ELSE NULL
|
|
END,
|
|
final_audit_user_name = CASE
|
|
WHEN final_audit_status = '1' THEN current_handler_name
|
|
ELSE NULL
|
|
END
|
|
WHERE
|
|
info_audit_user IS NULL OR
|
|
admission_user IS NULL OR
|
|
final_audit_user IS NULL;
|
|
|
|
-- 3. 确保报名信息表和流程表的状态一致
|
|
-- 将报名信息表中的状态更新为流程表中的状态
|
|
UPDATE zsjy_enrollment_info a
|
|
JOIN zsjy_enrollment_process b ON a.id = b.enrollment_id
|
|
SET a.enrollment_status = b.current_status
|
|
WHERE a.enrollment_status != b.current_status;
|
|
|
|
-- 4. 查看修复结果
|
|
SELECT
|
|
(SELECT COUNT(*) FROM zsjy_enrollment_info) AS total_enrollment_info,
|
|
(SELECT COUNT(*) FROM zsjy_enrollment_process) AS total_enrollment_process,
|
|
(SELECT COUNT(*) FROM zsjy_enrollment_info a
|
|
WHERE NOT EXISTS (SELECT 1 FROM zsjy_enrollment_process b WHERE a.id = b.enrollment_id))
|
|
AS missing_process; |