f_id, f_tenant_id, dayin_renwu_id, fenfa_bianhao, fafang_leixing, jieshou_ren_id, fafang_ren_id, fafang_bumen_id, fafang_shijian, beizhu_shuoming, biz_status, f_creator_user_id, f_creator_time, f_last_modify_user_id, f_last_modify_time, f_delete_mark f_id, f_tenant_id, dayin_renwu_id, dayin_xuhao, dayin_liushuihao, dayin_jishu_id, dayin_jishu_xuhao, dayin_jishu_liushuihao, dayin_ren_id, dayin_bumen_id, dayin_shijian, fafang_ren_id, fafang_bumen_id, fafang_shijian, qianshou_ren_id, qianshou_bumen_id, qianshou_shijian, biz_user_id, biz_review_user, biz_sign, biz_review_sign, beizhu_shuoming, biz_status, f_creator_user_id, f_creator_time, f_last_modify_user_id, f_last_modify_time, f_delete_mark f_id, f_tenant_id, laiyuan_leixing, laiyuan_danju_id, laiyuan_mingxi_id, wenjian_id, wenjian_bianhao, wenjian_mingcheng, banbenhao, shenhe_wancheng_riqi, peixun_wancheng_riqi, shengxiao_riqi, jieshou_bumen_id, wenjian_leibie, dayin_fenshu, beizhu_shuoming, biz_status, f_creator_user_id, f_creator_time, f_last_modify_user_id, f_last_modify_time, f_delete_mark INSERT INTO dms_wenjian_dayin_renwu ( f_id, f_tenant_id, laiyuan_leixing, laiyuan_danju_id, laiyuan_mingxi_id, wenjian_id, wenjian_bianhao, wenjian_mingcheng, banbenhao, shenhe_wancheng_riqi, peixun_wancheng_riqi, shengxiao_riqi, jieshou_bumen_id, wenjian_leibie, dayin_fenshu, beizhu_shuoming, biz_status, f_creator_user_id, f_creator_time, f_delete_mark, shifou_shoukong ) SELECT #{id}, #{tenantId}, #{laiyuanLeixing}, #{laiyuanDanjuId}, #{laiyuanMingxiId}, #{wenjianId}, #{wenjianBianhao}, #{wenjianMingcheng}, #{banbenhao}, #{shenheWanchengRiqi}, #{peixunWanchengRiqi}, #{shengxiaoRiqi}, #{jieshouBumenId}, #{wenjianLeibie}, #{dayinFenshu}, #{beizhuShuoming}, #{bizStatus}, #{creatorUserId}, #{creatorTime}, NULL, #{shifouShoukong} WHERE NOT EXISTS ( SELECT 1 FROM dms_wenjian_dayin_renwu WHERE f_tenant_id = #{tenantId} AND laiyuan_leixing = #{laiyuanLeixing} AND laiyuan_danju_id = #{laiyuanDanjuId} AND COALESCE(laiyuan_mingxi_id, '') = COALESCE(#{laiyuanMingxiId}, '') AND f_delete_mark IS NULL ) ON CONFLICT DO NOTHING INSERT INTO dms_wenjian_fenfa_renwu ( f_id, f_tenant_id, dayin_renwu_id, fenfa_bianhao, fafang_leixing, biz_status, f_creator_user_id, f_creator_time, f_delete_mark ) SELECT #{id}, #{tenantId}, #{dayinRenwuId}, #{fenfaBianhao}, #{fafangLeixing}, #{bizStatus}, #{creatorUserId}, #{creatorTime}, NULL FROM dms_wenjian_dayin_renwu p WHERE p.f_tenant_id = #{tenantId} AND p.f_id = #{dayinRenwuId} AND p.biz_status IN ('bufendayin', 'yidayin') AND p.f_delete_mark IS NULL AND NOT EXISTS ( SELECT 1 FROM dms_wenjian_fenfa_renwu d WHERE d.f_tenant_id = #{tenantId} AND d.dayin_renwu_id = #{dayinRenwuId} AND d.f_delete_mark IS NULL ) ON CONFLICT DO NOTHING INSERT INTO dms_wenjian_dayin_jilu ( f_id, f_tenant_id, dayin_renwu_id, dayin_xuhao, dayin_liushuihao, dayin_jishu_id, dayin_jishu_xuhao, dayin_jishu_liushuihao, dayin_ren_id, dayin_bumen_id, dayin_shijian, biz_status, f_creator_user_id, f_creator_time, f_delete_mark ) VALUES ( #{id}, #{tenantId}, #{dayinRenwuId}, #{dayinXuhao}, #{dayinLiushuihao}, #{dayinJishuId}, #{dayinJishuXuhao}, #{dayinJishuLiushuihao}, #{dayinRenId}, #{dayinBumenId}, #{dayinShijian}, #{bizStatus}, #{creatorUserId}, #{creatorTime}, NULL ) UPDATE dms_wenjian_dayin_jilu SET biz_status = 'yiguidang' WHERE f_delete_mark IS NULL AND dayin_liushuihao IN #{serialNumber} UPDATE dms_wenjian_dayin_renwu SET biz_status = #{bizStatus}, f_last_modify_user_id = #{userId}, f_last_modify_time = #{now} WHERE f_tenant_id = #{tenantId} AND f_id = #{id} AND biz_status <> 'yiquxiao' AND f_delete_mark IS NULL UPDATE dms_wenjian_dayin_jilu SET fafang_ren_id = #{issuerId}, fafang_bumen_id = #{issuerDepartmentId}, fafang_shijian = #{now}, beizhu_shuoming = #{remark}, qianshou_ren_id = #{receiverId}, qianshou_bumen_id = #{signerDepartmentId}, qianshou_shijian = #{now}, biz_user_id = #{issuerId}, biz_review_user = #{receiverId}, biz_sign = #{bizSign}, biz_review_sign = #{bizReviewSign}, biz_status = 'daihuishou', f_last_modify_user_id = #{issuerId}, f_last_modify_time = #{now} WHERE f_tenant_id = #{tenantId} AND f_id = #{recordId} AND biz_status IN ('daifafang', 'daiqianshou') AND f_delete_mark IS NULL UPDATE dms_wenjian_fenfa_renwu d SET jieshou_ren_id = #{receiverId}, fafang_ren_id = #{issuerId}, fafang_bumen_id = #{issuerDepartmentId}, fafang_shijian = #{now}, beizhu_shuoming = #{remark}, biz_status = 'yiwancheng', f_last_modify_user_id = #{issuerId}, f_last_modify_time = #{now} WHERE d.f_tenant_id = #{tenantId} AND d.f_id = #{id} AND d.biz_status IN ('daifafang', 'daiqianshou') AND d.f_delete_mark IS NULL AND EXISTS ( SELECT 1 FROM dms_wenjian_dayin_renwu t WHERE t.f_tenant_id = d.f_tenant_id AND t.f_id = #{printTaskId} AND t.f_id = d.dayin_renwu_id AND t.biz_status = 'yidayin' AND t.f_delete_mark IS NULL ) 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 = #{printTaskId} AND p.biz_status IN ('daifafang', 'daiqianshou') AND p.f_delete_mark IS NULL ) INSERT INTO dms_wenjian_fenfa_bupingheng ( f_id, f_tenant_id, dayin_jilu_id, cuoshi, yuanyin, biz_status, f_creator_user_id, f_creator_time, f_delete_mark ) VALUES ( #{id}, #{tenantId}, #{recordId}, #{measure}, #{reason}, 'effective', #{userId}, #{now}, NULL ) (p.biz_status IN ('daifafang', 'daiqianshou') AND t.laiyuan_leixing IN ('wenjian_xinzeng_shenhe', 'wenjian_xiuding_shenhe') 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)) )) (p.biz_status = 'daihuishou' OR ) INSERT INTO dms_wenjian_huishou ( f_id, f_tenant_id, biz_sign, chuli_fangshi, beizhu_shuoming, f_delete_mark ) VALUES ( #{id}, #{tenantId}, #{bizSign}, #{chuliFangshi}, #{beizhuShuoming}, NULL ) INSERT INTO dms_wenjian_huishou_zixiang ( f_id, f_foreign_id, f_tenant_id, dayin_jilu_id, dayin_liushuihao, wenjian_bianhao, wenjian_mingcheng, banbenhao, qianshou_bumen, qianshou_ren, qianshou_shijian, huishou_ren_id, huishou_shijian, f_delete_mark, f_delete_time, f_delete_user_id ) VALUES ( #{id}, #{foreignId}, #{tenantId}, #{dayinJiluId}, #{dayinLiushuihao}, #{wenjianBianhao}, #{wenjianMingcheng}, #{banbenhao}, #{qianshouBumen}, #{qianshouRen}, #{qianshouShijian}, #{huishouRenId}, #{huishouShijian}, NULL, NULL, NULL ) UPDATE dms_wenjian_dayin_jilu p SET biz_status = 'daixiaohui', f_last_modify_user_id = #{userId}, f_last_modify_time = #{now} WHERE f_tenant_id = #{tenantId} AND f_id IN #{recordId} AND EXISTS (SELECT 1 FROM dms_wenjian_dayin_renwu t WHERE t.f_tenant_id = p.f_tenant_id AND t.f_id = p.dayin_renwu_id AND t.f_delete_mark IS NULL AND ) AND f_delete_mark IS NULL UPDATE dms_wenjian_fenfa_renwu d SET biz_status = 'yiwancheng', f_last_modify_user_id = #{userId}, f_last_modify_time = #{now} WHERE d.f_tenant_id = #{tenantId} AND d.dayin_renwu_id = #{taskId} AND d.f_delete_mark IS NULL AND d.biz_status IN ('daifafang', 'daiqianshou') AND EXISTS (SELECT 1 FROM dms_wenjian_dayin_renwu t WHERE t.f_tenant_id = d.f_tenant_id AND t.f_id = d.dayin_renwu_id AND t.f_delete_mark IS NULL AND t.biz_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.f_delete_mark IS NULL AND p.biz_status IN ('daifafang', 'daiqianshou')) d.f_id, d.dayin_renwu_id, d.fenfa_bianhao, t.wenjian_id, t.wenjian_bianhao, t.wenjian_mingcheng, t.banbenhao, d.fafang_leixing, t.jieshou_bumen_id, o.f_full_name AS jieshou_bumen, d.jieshou_ren_id, receiver.f_real_name AS jieshou_ren, t.dayin_fenshu AS ying_fafang_fenshu, stats.yi_fafang_fenshu, t.dayin_fenshu AS ying_qianshou_fenshu, stats.yi_qianshou_fenshu, d.fafang_ren_id, issuer.f_real_name AS fafang_ren, d.fafang_bumen_id, d.fafang_shijian, signed.qianshou_ren_id, signer.f_real_name AS qianshou_ren, signed.qianshou_shijian, (signed.biz_sign IS NOT NULL AND signed.biz_sign <> '' AND signed.biz_review_sign IS NOT NULL AND signed.biz_review_sign <> '') AS biz_sign_biaoshi, d.beizhu_shuoming, d.biz_status, d.f_creator_time FROM dms_wenjian_fenfa_renwu d JOIN dms_wenjian_dayin_renwu t ON t.f_tenant_id = d.f_tenant_id AND t.f_id = d.dayin_renwu_id AND t.f_delete_mark IS NULL LEFT JOIN 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 LEFT JOIN base_user receiver ON receiver.f_tenant_id = d.f_tenant_id AND receiver.f_id = d.jieshou_ren_id AND receiver.f_delete_mark IS NULL LEFT JOIN base_user issuer ON issuer.f_tenant_id = d.f_tenant_id AND issuer.f_id = d.fafang_ren_id AND issuer.f_delete_mark IS NULL LEFT JOIN LATERAL ( SELECT COUNT(*) FILTER (WHERE p.fafang_shijian IS NOT NULL)::INTEGER AS yi_fafang_fenshu, COUNT(*) FILTER (WHERE p.qianshou_shijian IS NOT NULL)::INTEGER AS yi_qianshou_fenshu 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 <> 'yizuofei' AND p.f_delete_mark IS NULL ) stats ON TRUE LEFT JOIN LATERAL ( SELECT p.qianshou_ren_id, p.qianshou_shijian, p.biz_sign, p.biz_review_sign 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.qianshou_shijian IS NOT NULL AND p.biz_status <> 'yizuofei' AND p.f_delete_mark IS NULL ORDER BY p.qianshou_shijian DESC, p.f_id DESC LIMIT 1 ) signed ON TRUE LEFT JOIN base_user signer ON signer.f_tenant_id = d.f_tenant_id AND signer.f_id = signed.qianshou_ren_id AND signer.f_delete_mark IS NULL AND (d.fenfa_bianhao LIKE CONCAT('%', #{keyword}, '%') OR t.wenjian_bianhao LIKE CONCAT('%', #{keyword}, '%') OR t.wenjian_mingcheng LIKE CONCAT('%', #{keyword}, '%')) p.f_id, d.f_id AS fenfa_renwu_id, d.dayin_renwu_id, d.fenfa_bianhao, t.wenjian_id, t.wenjian_bianhao, t.wenjian_mingcheng, t.banbenhao, p.dayin_liushuihao, p.dayin_jishu_liushuihao, p.dayin_xuhao, p.dayin_ren_id, printer.f_real_name AS dayin_ren, p.dayin_shijian, d.fafang_leixing, t.jieshou_bumen_id, target_org.f_full_name AS jieshou_bumen, COALESCE(p.biz_review_user, d.jieshou_ren_id) AS jieshou_ren_id, receiver.f_real_name AS jieshou_ren, 1 AS ying_fafang_fenshu, CASE WHEN p.fafang_shijian IS NOT NULL THEN 1 ELSE 0 END AS yi_fafang_fenshu, 1 AS ying_qianshou_fenshu, CASE WHEN p.qianshou_shijian IS NOT NULL THEN 1 ELSE 0 END AS yi_qianshou_fenshu, p.fafang_ren_id, issuer.f_real_name AS fafang_ren, p.fafang_bumen_id, p.fafang_shijian, p.qianshou_ren_id, signer.f_real_name AS qianshou_ren, p.qianshou_shijian, (p.biz_sign IS NOT NULL AND p.biz_sign <> '' AND p.biz_review_sign IS NOT NULL AND p.biz_review_sign <> '') AS biz_sign_biaoshi, COALESCE(p.beizhu_shuoming, d.beizhu_shuoming) AS beizhu_shuoming, p.biz_status, p.f_creator_time FROM dms_wenjian_fenfa_renwu d JOIN dms_wenjian_dayin_renwu t ON t.f_tenant_id = d.f_tenant_id AND t.f_id = d.dayin_renwu_id AND t.f_delete_mark IS NULL JOIN dms_wenjian_dayin_jilu p ON p.f_tenant_id = d.f_tenant_id AND p.dayin_renwu_id = d.dayin_renwu_id LEFT JOIN base_organize target_org ON target_org.f_tenant_id = t.f_tenant_id AND target_org.f_id = t.jieshou_bumen_id AND target_org.f_delete_mark IS NULL LEFT JOIN base_user receiver ON receiver.f_tenant_id = p.f_tenant_id AND receiver.f_id = COALESCE(p.biz_review_user, d.jieshou_ren_id) AND receiver.f_delete_mark IS NULL LEFT JOIN base_user printer ON printer.f_tenant_id = p.f_tenant_id AND printer.f_id = p.dayin_ren_id AND printer.f_delete_mark IS NULL LEFT JOIN base_user issuer ON issuer.f_tenant_id = p.f_tenant_id AND issuer.f_id = p.fafang_ren_id AND issuer.f_delete_mark IS NULL LEFT JOIN base_user signer ON signer.f_tenant_id = p.f_tenant_id AND signer.f_id = p.qianshou_ren_id AND signer.f_delete_mark IS NULL AND (d.fenfa_bianhao LIKE CONCAT('%', #{keyword}, '%') OR t.wenjian_bianhao LIKE CONCAT('%', #{keyword}, '%') OR t.wenjian_mingcheng LIKE CONCAT('%', #{keyword}, '%') OR p.dayin_liushuihao LIKE CONCAT('%', #{keyword}, '%') OR target_org.f_full_name LIKE CONCAT('%', #{keyword}, '%'))