146 lines
4.6 KiB
SQL
146 lines
4.6 KiB
SQL
-- 调试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; |