-- 调试admin用户科研访问美国记录状态问题 -- 执行时间:2025-01-08 -- 1. 查询申请表中admin用户科研访问美国的记录 SELECT '申请表数据' as data_type, application_id, applicant_name, purpose, destination, status as application_status, CASE WHEN status = '0' THEN '待审核' WHEN status = '1' THEN '已通过' WHEN status = '2' THEN '已拒绝' ELSE '未知状态' END as status_desc, start_date, end_date, create_time, update_time FROM rs_overseas_application WHERE applicant_name = 'admin' AND purpose = '科研访问' AND destination LIKE '%美国%' AND deleted = '0' ORDER BY create_time DESC; -- 2. 查询记录表中admin用户科研访问美国的记录 SELECT '记录表数据' as data_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 completion_desc, actual_start_date, actual_end_date, create_time, update_time FROM rs_overseas_record WHERE applicant_name = 'admin' AND purpose = '科研访问' AND destination LIKE '%美国%' AND deleted = '0' ORDER BY create_time DESC; -- 3. 查询申请和记录的对应关系 SELECT '关联关系检查' as data_type, oa.application_id, oa.applicant_name, oa.purpose, oa.destination, oa.status as app_status, ors.record_id, ors.completion_status as record_status, CASE WHEN ors.record_id IS NOT NULL THEN '已创建记录' WHEN oa.status = '1' THEN '已通过但未创建记录' ELSE '其他状态' END as relationship_status FROM rs_overseas_application oa LEFT JOIN rs_overseas_record ors ON oa.application_id = ors.application_id AND ors.deleted = '0' WHERE oa.applicant_name = 'admin' AND oa.purpose = '科研访问' AND oa.destination LIKE '%美国%' AND oa.deleted = '0' ORDER BY oa.create_time DESC; -- 4. 模拟联合查询的结果(与Mapper中的逻辑一致) 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, data_source, CASE WHEN data_source = 'record' THEN '来自记录表' WHEN data_source = 'approved_application' THEN '来自已通过申请' ELSE '未知来源' END as source_desc FROM ( -- 查询已创建的出国记录 SELECT ors.record_id, ors.application_id, ors.applicant_name, ors.purpose, ors.destination, ors.completion_status, 'record' as data_source 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, 'approved_application' as data_source 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; -- 5. 检查租户ID的影响 SELECT '租户ID检查' as check_type, 'application' as table_name, application_id, applicant_name, purpose, destination, tenant_id, status FROM rs_overseas_application WHERE applicant_name = 'admin' AND purpose = '科研访问' AND destination LIKE '%美国%' AND deleted = '0' UNION ALL SELECT '租户ID检查' as check_type, 'record' as table_name, CAST(application_id AS CHAR) as application_id, applicant_name, purpose, destination, tenant_id, completion_status as status FROM rs_overseas_record WHERE applicant_name = 'admin' AND purpose = '科研访问' AND destination LIKE '%美国%' AND deleted = '0' ORDER BY application_id DESC;