88 lines
2.4 KiB
SQL
88 lines
2.4 KiB
SQL
-- ==========================================
|
|
-- 修复项目申报中申请人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; |