NOT EXISTS (SELECT 1 FROM public.dms_file_expiry_cleanup c WHERE c.tenant_id=s.tenant_id AND c.file_version_id=s.file_version_id) OR EXISTS (SELECT 1 FROM public.dms_wenjian_ziyuan r JOIN public.dms_wenjian_banben b ON b.f_tenant_id=r.f_tenant_id AND b.wenjian_id=r.f_id AND b.f_id=r.dangqian_banben_id AND b.f_delete_mark IS NULL WHERE r.f_tenant_id=s.tenant_id AND r.f_delete_mark IS NULL AND b.biz_status='effective' AND b.wenjian_zhongxin_banben_id=CAST(s.file_version_id AS TEXT)) INSERT INTO public.dms_file_expiry_cleanup (tenant_id, file_version_id) VALUES (#{tenantId}, #{fileVersionId,jdbcType=OTHER,typeHandler=jnpf.dmsDatabase.DmsUuidTypeHandler}) ON CONFLICT (tenant_id, file_version_id) DO NOTHING UPDATE public.dms_file_expiry_cleanup SET search_task_id=#{item.searchTaskId}, completed_at=CASE WHEN #{done} THEN statement_timestamp() ELSE NULL END, attempts=attempts+1, last_error=#{error}, updated_at=statement_timestamp(), next_attempt_at=statement_timestamp() + (#{delay} * INTERVAL '1 second') WHERE tenant_id=#{item.tenantId} AND file_version_id=#{item.fileVersionId,jdbcType=OTHER,typeHandler=jnpf.dmsDatabase.DmsUuidTypeHandler}