EXISTS (
SELECT 1
FROM public.dms_wenjian_ziyuan z
JOIN permission_folders f ON f.id = z.wenjian_mulu_id
WHERE z.f_tenant_id = t.f_tenant_id AND z.f_id = t.wenjian_id
AND z.f_delete_mark IS NULL
)
(t.laiyuan_leixing = 'wenjian_dayin' AND EXISTS (
SELECT 1
FROM public.dms_wenjian_dayin_shenqing a
JOIN public.dms_wenjian_dayin_shenqing_zixiang d
ON d.f_tenant_id = a.f_tenant_id AND d.f_foreign_id = a.f_id
AND d.f_id = t.laiyuan_mingxi_id AND d.f_delete_mark IS NULL
JOIN public.dms_wenjian_banben v
ON v.f_tenant_id = d.f_tenant_id AND v.f_id = d.banben_id
AND v.wenjian_id = d.wenjian_id AND v.banbenhao = d.banben_hao
AND v.f_delete_mark IS NULL
JOIN permission_versions p ON p.id = v.wenjian_zhongxin_banben_id
JOIN public.dms_wenjian_ziyuan z
ON z.f_tenant_id = t.f_tenant_id AND z.f_id = t.wenjian_id
AND z.f_delete_mark IS NULL
WHERE a.f_tenant_id = t.f_tenant_id AND a.f_id = t.laiyuan_danju_id
AND a.f_delete_mark IS NULL AND a.shenqing_ren = #{q.userId}
AND a.f_flow_state = #{q.approvedFlowState}
AND d.wenjian_id = t.wenjian_id AND d.banben_hao = t.banbenhao
))
NOT EXISTS (
SELECT 1
FROM public.dms_wenjian_banben v
JOIN public.dms_access_exclusions e
ON e.tenant_id = v.f_tenant_id
AND ((e.resource_type = 'DOCUMENT'
AND e.resource_id::text = v.wenjian_zhongxin_wenjian_id)
OR (e.resource_type = 'FILE_VERSION'
AND e.resource_id::text = v.wenjian_zhongxin_banben_id))
WHERE v.f_tenant_id = t.f_tenant_id AND v.wenjian_id = t.wenjian_id
AND v.banbenhao = t.banbenhao AND v.f_delete_mark IS NULL
AND e.user_id = #{q.userId} AND e.action_code = 'READ'
AND e.revoked_at IS NULL AND e.valid_from <= CURRENT_TIMESTAMP
AND (e.valid_to IS NULL OR CURRENT_TIMESTAMP < e.valid_to)
)
WITH permission_folders AS (
SELECT jsonb_array_elements_text(CAST(#{q.folderIdsJson} AS jsonb)) AS id
), permission_versions AS (
SELECT jsonb_array_elements_text(CAST(#{q.workflowPrintVersionIdsJson} AS jsonb)) AS id
),
visible_tasks AS (
SELECT t.*, o.f_full_name AS jieshou_bumen
FROM public.dms_wenjian_dayin_renwu t
LEFT JOIN public.base_organize o ON o.f_tenant_id = t.f_tenant_id
AND o.f_id = t.jieshou_bumen_id AND o.f_delete_mark IS NULL
WHERE t.f_tenant_id = #{q.tenantId} AND t.f_delete_mark IS NULL
AND t.biz_status IN ('daidayin', 'bufendayin')
AND t.f_id = #{q.taskId}
AND (t.wenjian_mingcheng ILIKE CONCAT('%', #{q.search}, '%')
OR t.wenjian_bianhao ILIKE CONCAT('%', #{q.search}, '%')
OR o.f_full_name ILIKE CONCAT('%', #{q.search}, '%'))
AND (
OR )
AND
)