UPDATE dms_wenjian_bupingheng_dengji SET zhixing_shijian = #{now}, f_version = COALESCE(f_version, 0) + 1 WHERE f_tenant_id = #{tenantId} AND f_id = #{id} AND f_delete_mark IS NULL AND zhixing_shijian IS NULL UPDATE dms_wenjian_bupingheng_dengji_zixiang SET xin_dayin_renwu_id = #{taskId} WHERE f_tenant_id = #{tenantId} AND f_id = #{id} AND f_foreign_id = #{documentId} AND f_delete_mark IS NULL AND (xin_dayin_renwu_id IS NULL OR btrim(xin_dayin_renwu_id) = '') UPDATE dms_wenjian_dayin_jilu SET biz_status = 'yizuofei', f_last_modify_user_id = #{userId}, f_last_modify_time = #{now} WHERE f_tenant_id = #{tenantId} AND f_id = #{id} AND biz_status IN ('daifafang', 'daiqianshou') AND f_delete_mark IS NULL UPDATE dms_wenjian_fenfa_renwu d SET biz_status = CASE WHEN signed.f_id IS NULL AND recycled.task_status IS NULL THEN 'yiquxiao' ELSE 'yiwancheng' END, jieshou_ren_id = COALESCE(signed.qianshou_ren_id, d.jieshou_ren_id), fafang_ren_id = COALESCE(signed.fafang_ren_id, d.fafang_ren_id), fafang_bumen_id = COALESCE(signed.fafang_bumen_id, d.fafang_bumen_id), fafang_shijian = COALESCE(signed.fafang_shijian, d.fafang_shijian), f_last_modify_user_id = #{userId}, f_last_modify_time = #{now} FROM (SELECT 1) seed LEFT JOIN LATERAL ( SELECT p.f_id, p.qianshou_ren_id, p.fafang_ren_id, p.fafang_bumen_id, p.fafang_shijian FROM dms_wenjian_dayin_jilu p WHERE p.f_tenant_id = #{tenantId} AND p.dayin_renwu_id = #{taskId} AND p.biz_status <> 'yizuofei' AND p.qianshou_shijian IS NOT NULL AND p.f_delete_mark IS NULL ORDER BY p.qianshou_shijian DESC, p.f_id LIMIT 1 ) signed ON TRUE LEFT JOIN LATERAL ( SELECT t.biz_status AS task_status FROM dms_wenjian_dayin_renwu t WHERE t.f_tenant_id = #{tenantId} AND t.f_id = #{taskId} AND t.f_delete_mark IS NULL AND t.laiyuan_leixing IN ('wenjian_xinzeng_shenhe', 'wenjian_xiuding_shenhe') AND EXISTS ( SELECT 1 FROM dms_wenjian_dayin_jilu p WHERE p.f_tenant_id = t.f_tenant_id AND p.dayin_renwu_id = t.f_id AND p.f_delete_mark IS NULL AND p.qianshou_shijian IS NULL AND p.biz_status IN ('daixiaohui', 'yixiaohui', 'daiguidang', 'yiguidang') AND EXISTS ( SELECT 1 FROM dms_wenjian_dayin_queren q WHERE q.f_tenant_id = p.f_tenant_id AND q.dayin_renwu_id = p.dayin_renwu_id AND COALESCE(NULLIF(q.jieguo_neirong, ''), '[]')::jsonb @> jsonb_build_array(jsonb_build_object('id', p.f_id)) ) ) ) recycled ON TRUE WHERE d.f_tenant_id = #{tenantId} AND d.dayin_renwu_id = #{taskId} AND d.biz_status IN ('daifafang', 'daiqianshou') AND d.f_delete_mark IS NULL AND (recycled.task_status IS NULL OR recycled.task_status = 'yidayin') AND NOT EXISTS ( SELECT 1 FROM dms_wenjian_dayin_jilu p WHERE p.f_tenant_id = d.f_tenant_id AND p.dayin_renwu_id = d.dayin_renwu_id AND p.biz_status IN ('daifafang', 'daiqianshou') AND p.f_delete_mark IS NULL )