| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- -- ==========================================
- -- 修复项目申报中申请人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;
|