Files
hzdyjs/check_admin_record.sql
T
2025-08-18 12:03:44 +08:00

90 lines
2.7 KiB
SQL

-- 检查admin科研访问美国记录状态
-- 执行时间:2025-01-08
-- 1. 检查记录表中的数据
SELECT
'记录表数据' as data_source,
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 status_display,
create_time, update_time
FROM rs_overseas_record
WHERE applicant_name = 'admin'
AND purpose = '科研访问'
AND destination LIKE '%美国%'
AND deleted = '0';
-- 2. 检查申请表中的数据
SELECT
'申请表数据' as data_source,
application_id, applicant_name, purpose, destination,
status,
CASE
WHEN status = '0' THEN '待审批'
WHEN status = '1' THEN '已通过'
WHEN status = '2' THEN '已拒绝'
ELSE '未知状态'
END as status_display,
create_time, update_time
FROM rs_overseas_application
WHERE applicant_name = 'admin'
AND purpose = '科研访问'
AND destination LIKE '%美国%'
AND deleted = '0';
-- 3. 检查联合查询结果(模拟前端查询)
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 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;