-- ========================================== -- 修复项目申报中申请人ID为空的问题 -- 创建时间: 2025-08-01 -- 描述: 检查并修复cw_project_application表中applicant_id为NULL的记录 -- ========================================== -- 1. 检查问题记录 SELECT id, application_no, project_name, applicant_id, applicant_name, department_id, department_name, approval_status, create_by, create_time FROM cw_project_application WHERE applicant_id IS NULL OR applicant_id = 0; -- 2. 修复方案1:将申请人ID设置为创建者ID(推荐) UPDATE cw_project_application SET applicant_id = create_by, applicant_name = ( SELECT nick_name FROM sys_user WHERE user_id = cw_project_application.create_by AND deleted = 0 LIMIT 1 ) WHERE (applicant_id IS NULL OR applicant_id = 0) AND create_by IS NOT NULL AND create_by > 0; -- 3. 修复方案2:如果创建者也为空,设置为系统管理员(ID=1) UPDATE cw_project_application SET applicant_id = 1, applicant_name = '系统管理员' WHERE (applicant_id IS NULL OR applicant_id = 0) AND (create_by IS NULL OR create_by = 0); -- 4. 修复部门信息为空的记录 UPDATE cw_project_application SET department_id = ( SELECT dept_id FROM sys_user WHERE user_id = cw_project_application.applicant_id AND deleted = 0 LIMIT 1 ), department_name = ( SELECT d.dept_name FROM sys_user u LEFT JOIN sys_dept d ON u.dept_id = d.dept_id WHERE u.user_id = cw_project_application.applicant_id AND u.deleted = 0 AND d.deleted = 0 LIMIT 1 ) WHERE (department_id IS NULL OR department_id = 0) AND applicant_id IS NOT NULL AND applicant_id > 0; -- 5. 验证修复结果 SELECT '修复后检查' as check_type, COUNT(*) as total_records, SUM(CASE WHEN applicant_id IS NULL OR applicant_id = 0 THEN 1 ELSE 0 END) as null_applicant_count, SUM(CASE WHEN department_id IS NULL OR department_id = 0 THEN 1 ELSE 0 END) as null_department_count FROM cw_project_application; -- 6. 显示修复后的记录 SELECT id, application_no, project_name, applicant_id, applicant_name, department_id, department_name, approval_status FROM cw_project_application ORDER BY create_time DESC LIMIT 10;