Files
hzdyjs/script/fix-enrollment-process-data-complete.sql
T
2025-07-23 15:20:48 +08:00

84 lines
3.6 KiB
SQL

-- 录取流程数据修复脚本
-- 执行时间:2025-07-22
-- 目标:确保所有录取流程记录的字段都有默认值,且状态统一为"录取处理中"
-- 1. 首先获取当前管理员用户ID和姓名,用于填充默认审核人信息
SET @admin_id = 1; -- 默认管理员ID
SET @admin_name = '系统管理员'; -- 默认管理员姓名
-- 2. 将所有状态更新为"录取处理中"
UPDATE zsjy_enrollment_process
SET current_status = '2',
info_audit_status = '1',
admission_status = '0',
final_audit_status = '0'
WHERE 1=1;
-- 3. 填充所有为NULL的基本信息字段
UPDATE zsjy_enrollment_process
SET
-- 当前处理人信息
current_handler = COALESCE(current_handler, @admin_id),
current_handler_name = COALESCE(current_handler_name, @admin_name),
-- 信息审核相关字段
info_audit_user = COALESCE(info_audit_user, @admin_id),
info_audit_user_name = COALESCE(info_audit_user_name, @admin_name),
info_audit_time = COALESCE(info_audit_time, NOW()),
info_audit_opinion = COALESCE(info_audit_opinion, '系统默认审核通过'),
-- 录取处理相关字段
admission_user = COALESCE(admission_user, NULL),
admission_user_name = COALESCE(admission_user_name, NULL),
admission_time = COALESCE(admission_time, NULL),
admission_opinion = COALESCE(admission_opinion, NULL),
-- 最终确认相关字段
final_audit_user = COALESCE(final_audit_user, NULL),
final_audit_user_name = COALESCE(final_audit_user_name, NULL),
final_audit_time = COALESCE(final_audit_time, NULL),
final_audit_opinion = COALESCE(final_audit_opinion, NULL),
-- 其他状态字段
payment_status = COALESCE(payment_status, '0'),
is_completed = COALESCE(is_completed, 0),
remark = COALESCE(remark, '系统自动修复的数据')
WHERE 1=1;
-- 4. 确保报名信息审核通过同步到录取流程表
-- 4.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, info_audit_user, info_audit_user_name, info_audit_time, info_audit_opinion,
admission_status, final_audit_status, payment_status, is_completed
)
SELECT
-- 生成雪花ID
FLOOR(RAND() * 9000000000000000000) + 1000000000000000000 as id,
a.tenant_id, @admin_id, NOW(), NULL, NULL, 0,
-- 基本信息
a.id, a.name, a.id_card,
-- 流程状态信息
'2' as current_status, @admin_id as current_handler, @admin_name as current_handler_name,
'1' as info_audit_status, @admin_id as info_audit_user, @admin_name as info_audit_user_name,
NOW() as info_audit_time, '系统自动审核通过' as info_audit_opinion,
'0' as admission_status, '0' as final_audit_status, '0' as payment_status, 0 as is_completed
FROM zsjy_enrollment_info a
LEFT JOIN zsjy_enrollment_process b ON a.id = b.enrollment_id
WHERE b.enrollment_id IS NULL
AND a.enrollment_status = '2'; -- 只同步已审核通过的报名信息
-- 5. 确保数据库中的所有报名信息状态与录取流程状态一致
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;
-- 6. 输出统计信息
SELECT
SUM(CASE WHEN current_status = '2' THEN 1 ELSE 0 END) AS '录取处理中数量',
SUM(CASE WHEN info_audit_status = '1' THEN 1 ELSE 0 END) AS '信息已审核通过数量',
COUNT(*) AS '总数据条数'
FROM zsjy_enrollment_process;