102 lines
3.4 KiB
SQL
102 lines
3.4 KiB
SQL
-- 修复admin科研访问美国记录状态 - 执行脚本
|
|
-- 执行时间:2025-01-08
|
|
-- 目标:将admin的科研访问美国记录状态从"进行中"更新为"已完成"
|
|
|
|
-- 第一步:查询当前状态(执行前确认)
|
|
SELECT
|
|
'执行前状态检查' as check_type,
|
|
record_id, application_id, applicant_name, purpose, destination,
|
|
completion_status,
|
|
CASE
|
|
WHEN completion_status = '0' THEN '进行中'
|
|
WHEN completion_status = '1' THEN '已完成'
|
|
WHEN completion_status = '2' THEN '提前结束'
|
|
ELSE '未知状态'
|
|
END as current_status_display,
|
|
create_time, update_time
|
|
FROM rs_overseas_record
|
|
WHERE applicant_name = 'admin'
|
|
AND purpose = '科研访问'
|
|
AND destination LIKE '%美国%'
|
|
AND deleted = '0';
|
|
|
|
-- 第二步:执行更新操作
|
|
UPDATE rs_overseas_record
|
|
SET completion_status = '1', -- 设置为已完成
|
|
update_time = NOW(), -- 更新修改时间
|
|
update_by = 1 -- 设置修改人为管理员
|
|
WHERE applicant_name = 'admin'
|
|
AND purpose = '科研访问'
|
|
AND destination LIKE '%美国%'
|
|
AND deleted = '0'
|
|
AND completion_status = '0'; -- 只更新当前为"进行中"的记录
|
|
|
|
-- 第三步:查询更新后状态(执行后确认)
|
|
SELECT
|
|
'执行后状态检查' as check_type,
|
|
record_id, application_id, applicant_name, purpose, destination,
|
|
completion_status,
|
|
CASE
|
|
WHEN completion_status = '0' THEN '进行中'
|
|
WHEN completion_status = '1' THEN '已完成'
|
|
WHEN completion_status = '2' THEN '提前结束'
|
|
ELSE '未知状态'
|
|
END as updated_status_display,
|
|
create_time, update_time
|
|
FROM rs_overseas_record
|
|
WHERE applicant_name = 'admin'
|
|
AND purpose = '科研访问'
|
|
AND destination LIKE '%美国%'
|
|
AND deleted = '0';
|
|
|
|
-- 第四步:验证联合查询结果(模拟前端查询)
|
|
SELECT
|
|
'联合查询验证' as query_type,
|
|
record_id,
|
|
application_id,
|
|
applicant_name,
|
|
purpose,
|
|
destination,
|
|
completion_status,
|
|
CASE
|
|
WHEN completion_status = '0' THEN '进行中'
|
|
WHEN completion_status = '1' THEN '已完成'
|
|
WHEN completion_status = '2' THEN '提前结束'
|
|
ELSE '未知状态'
|
|
END as final_status_display,
|
|
CASE
|
|
WHEN record_id IS NOT NULL THEN '来自记录表'
|
|
ELSE '来自申请表'
|
|
END as data_source
|
|
FROM (
|
|
-- 查询已创建的出国记录
|
|
SELECT
|
|
ors.record_id, ors.application_id, ors.applicant_name, ors.purpose, ors.destination,
|
|
ors.completion_status
|
|
FROM rs_overseas_record ors
|
|
WHERE ors.deleted = '0'
|
|
AND ors.applicant_name = 'admin'
|
|
AND ors.purpose = '科研访问'
|
|
AND ors.destination LIKE '%美国%'
|
|
|
|
UNION ALL
|
|
|
|
-- 查询已通过审批但未创建记录的申请
|
|
SELECT
|
|
NULL as record_id, oa.application_id, oa.applicant_name, oa.purpose, oa.destination,
|
|
'1' as completion_status
|
|
FROM rs_overseas_application oa
|
|
WHERE oa.deleted = '0'
|
|
AND oa.status = '1'
|
|
AND oa.applicant_name = 'admin'
|
|
AND oa.purpose = '科研访问'
|
|
AND oa.destination LIKE '%美国%'
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM rs_overseas_record ors
|
|
WHERE ors.application_id = oa.application_id
|
|
AND ors.deleted = '0'
|
|
AND ors.tenant_id = '000000'
|
|
)
|
|
AND oa.tenant_id = '000000'
|
|
) combined_data
|
|
ORDER BY application_id DESC; |