| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- -- 修复项目申报表中申请人ID为空的问题
- -- 日期: 2025-08-01
- -- 说明: 检查并修复cw_project_application表中applicant_id和department_id为空的记录
- -- 1. 查看当前有问题的记录
- SELECT
- id,
- application_no,
- project_name,
- applicant_id,
- applicant_name,
- department_id,
- department_name,
- create_by,
- approval_status
- FROM cw_project_application
- WHERE applicant_id IS NULL
- OR applicant_id = 0
- OR department_id IS NULL
- OR department_id = 0
- ORDER BY create_time DESC;
- -- 2. 修复applicant_id为空的记录(使用create_by作为申请人ID)
- UPDATE cw_project_application
- SET applicant_id = create_by
- WHERE (applicant_id IS NULL OR applicant_id = 0)
- AND create_by IS NOT NULL
- AND create_by > 0;
- -- 3. 修复applicant_name为空的记录(从sys_user表获取用户名)
- UPDATE cw_project_application cpa
- INNER JOIN sys_user su ON cpa.applicant_id = su.user_id
- SET cpa.applicant_name = su.user_name
- WHERE (cpa.applicant_name IS NULL OR cpa.applicant_name = '')
- AND cpa.applicant_id IS NOT NULL;
- -- 4. 修复department_id为空的记录(从sys_user表获取部门ID)
- UPDATE cw_project_application cpa
- INNER JOIN sys_user su ON cpa.applicant_id = su.user_id
- SET cpa.department_id = su.dept_id
- WHERE (cpa.department_id IS NULL OR cpa.department_id = 0)
- AND cpa.applicant_id IS NOT NULL
- AND su.dept_id IS NOT NULL;
- -- 5. 修复department_name为空的记录(从sys_dept表获取部门名称)
- UPDATE cw_project_application cpa
- INNER JOIN sys_dept sd ON cpa.department_id = sd.dept_id
- SET cpa.department_name = sd.dept_name
- WHERE (cpa.department_name IS NULL OR cpa.department_name = '')
- AND cpa.department_id IS NOT NULL;
- -- 6. 对于仍然无法修复的记录,设置为系统管理员(ID=1)
- UPDATE cw_project_application
- SET applicant_id = 1,
- applicant_name = 'admin',
- department_id = 103,
- department_name = '研发部门'
- WHERE applicant_id IS NULL
- OR applicant_id = 0
- OR department_id IS NULL
- OR department_id = 0;
- -- 7. 验证修复结果
- SELECT
- COUNT(*) as total_records,
- COUNT(CASE WHEN applicant_id IS NULL OR applicant_id = 0 THEN 1 END) as null_applicant_id,
- COUNT(CASE WHEN department_id IS NULL OR department_id = 0 THEN 1 END) as null_department_id,
- COUNT(CASE WHEN applicant_name IS NULL OR applicant_name = '' THEN 1 END) as null_applicant_name,
- COUNT(CASE WHEN department_name IS NULL OR department_name = '' THEN 1 END) as null_department_name
- FROM cw_project_application;
- -- 8. 显示修复后的记录
- SELECT
- id,
- application_no,
- project_name,
- applicant_id,
- applicant_name,
- department_id,
- department_name,
- approval_status,
- create_time
- FROM cw_project_application
- ORDER BY create_time DESC
- LIMIT 10;
|