UPDATE public.batch_tbcr_inner_delng SET ${compareKey} = ${makeCompareKey} WHERE sys_se = #{sysSe} and accnut_ym = #{accnutYm} and cpr_code = #{cprCode} and partn_cpr = #{partnCpr} and delng_crncy = #{delngCrncy} and ${item} UPDATE public.batch_tbcr_inner_delng SET mtch_sys = 'AUTO', ${item.matchingType} = #{item.matchingTypeVal}, ${item.matchingTypeName} = #{item.matchingTypeNameVal}, ${item.matchingNumber} = #{item.matchingNumberVal} WHERE sys_se = #{item.sys_se} and accnut_ym = #{item.accnut_ym} and sn = #{item.sn} DELETE FROM tbcr_transaction_history WHERE cons_group = #{sysSe} and account_period = #{accnutYm} INSERT INTO tbcr_transaction_history ( session_id, cons_group, ledger, account_period, seq, tran_type, own_comp, tran_comp, comp_acct_code, comp_prod_code, recon_key, tran_date, tran_currency, tran_amt, book_amt, group_amt, book_cost, document_no, remark, cons_acct_code, cons_acct_name, prod_code, adjust_type, adjust_remark, if_account_period, if_comp_code, if_file_id, if_source, equal_check, cons_own_comp, cons_tran_comp, invoice_no, lc_no, bl_no, own_biz_no, partner_biz_no, acct_date, matching_cause, match_key ) values ( #{item.SESSION_ID}, #{item.CONS_GROUP}, #{item.LEDGER}, #{item.ACCOUNT_PERIOD}, #{item.SEQ}, #{item.TRAN_TYPE}, #{item.OWN_COMP}, #{item.TRAN_COMP}, #{item.COMP_ACCT_CODE}, #{item.COMP_PROD_CODE}, #{item.RECON_KEY}, #{item.TRAN_DATE}, #{item.TRAN_CURRENCY}, #{item.TRAN_AMT}, #{item.BOOK_AMT}, #{item.GROUP_AMT}, #{item.BOOK_COST}, #{item.DOCUMENT_NO}, #{item.REMARK}, #{item.CONS_ACCT_CODE}, #{item.CONS_ACCT_NAME}, #{item.PROD_CODE}, #{item.ADJUST_TYPE}, #{item.ADJUST_REMARK}, #{item.IF_ACCOUNT_PERIOD}, #{item.IF_COMP_CODE}, #{item.IF_FILE_ID}, #{item.IF_SOURCE}, #{item.EQUAL_CHECK}, #{item.CONS_OWN_COMP}, #{item.CONS_TRAN_COMP}, #{item.INVOICE_NO}, #{item.LC_NO}, #{item.BL_NO}, #{item.OWN_BIZ_NO}, #{item.PARTNER_BIZ_NO}, #{item.ACCT_DATE}, #{item.MATCHING_CAUSE}, #{item.MATCH_KEY} ) DELETE FROM batch_tbcr_inner_delng WHERE sys_se = #{sysSe} and accnut_ym = #{accnutYm} INSERT INTO batch_tbcr_inner_delng ( sys_se , accnut_ym , sn , dta_ty , cpr_code , partn_cpr , cpr_acnt_code , cnnc_acnt_code , cnnc_acnt_nm , delng_de , elcty_de , chit_no , cmpnsp_ky , ext_key1 , ext_key2 , ext_key3 , ext_key4 , ext_key5 , delng_crncy , delng_amt , acntbk_amt , group_amt , suply_amount , sumry , org_mtch_ty , org_mtch_ky , new_mtch_ty , new_mtch_ky , compare_ky , mtch_ty , mtch_ty_nm , mtch_ky ) SELECT cons_group , account_period , seq , tran_type , own_comp , tran_comp , comp_acct_code , cons_acct_code , cons_acct_name , tran_date , acct_date , document_no , recon_key , null , invoice_no , lc_no , bl_no , null , tran_currency , tran_amt , book_amt , group_amt , book_cost , remark , matching_cause , match_key , null , null , null , null , null , null FROM tbcr_transaction_history WHERE cons_group = #{sysSe} and account_period = #{accnutYm} DELETE FROM batch_tbcr_inner_delng_ai WHERE sys_se = #{sysSe} and accnut_ym = #{accnutYm} INSERT INTO batch_tbcr_inner_delng_ai ( sys_se , accnut_ym , sn , ai_key1 , ai_key2 , ai_key3 , ai_key4 , ai_key5 , ai_key6 , ai_key7 , ai_key8 , ai_key9 , ai_key10 ) SELECT cons_group , account_period , seq , regexp_replace(document_no, '[^0-9a-zA-Z]', '',1,0) as ai_key1 , regexp_replace(recon_key, '[^0-9a-zA-Z]', '',1,0) as ai_key2 , '' as ai_key3 , '' as ai_key4 , '' as ai_key5 , '' as ai_key6 , '' as ai_key7 , '' as ai_key8 , '' as ai_key9 , '' as ai_key10 FROM tbcr_transaction_history WHERE cons_group = #{sysSe} and account_period = #{accnutYm} update batch_tbcr_inner_delng set new_mtch_ty = null, new_mtch_ky = null where sys_se = #{sysSe} AND accnut_ym = #{accnutYm} merge into batch_tbcr_inner_delng m using ( select sys_se, accnut_ym, sn, org_mtch_ty, org_mtch_ky, mtch_ty as new_mtch_ty, mtch_ky, DENSE_RANK() over (order by mtch_ty, mtch_ky) AS new_mtch_ky from batch_tbcr_inner_delng where sys_se = #{sysSe} AND accnut_ym = #{accnutYm} AND mtch_ty is not null ) t on m.sys_se = t.sys_se and m.accnut_ym = t.accnut_ym and m.sn = t.sn when matched then update set new_mtch_ty = t.new_mtch_ty, new_mtch_ky = t.new_mtch_ky UPDATE public.batch_tbcr_inner_delng SET mtch_sys = #{item.mtch_sys}, mtch_ty = #{item.mtch_ty}, mtch_ty_nm = #{item.mtch_ty_nm}, mtch_ky = #{item.mtch_ky} WHERE sys_se = #{item.sys_se} and accnut_ym = #{item.accnut_ym} and sn = #{item.sn} INSERT INTO public.batch_user_job_status ( user_job_group, user_job_id, user_job_name, start_time, status ) VALUES ( #{user_job_group}, #{user_job_id}, #{user_job_name}, now(), 'Started' ) UPDATE public.batch_user_job_status SET end_time = now(), status = 'Finished', exit_code = #{exit_code}, exit_message = #{exit_message} WHERE user_job_id = #{user_job_id} update batch_tbcr_inner_delng set MTCH_SYS = 'EXCLUSION' , MTCH_TY = 'ZERO' , MTCH_TY_NM = 'ZERO' where sys_se = #{sysSe} and accnut_ym = #{accnutYm} and mtch_ty is null and delng_amt = 0 merge into batch_tbcr_inner_delng a using ( with ht_data as ( select count(*) over(partition by sys_se, accnut_ym, dta_ty, cpr_code, partn_cpr, cnnc_acnt_code, delng_de, delng_crncy) as cnt , sum(delng_amt) over(partition by sys_se, accnut_ym, dta_ty, cpr_code, partn_cpr, cnnc_acnt_code, delng_de, delng_crncy) as sum_amt , a.* from batch_tbcr_inner_delng a where sys_se = #{sysSe} and accnut_ym = #{accnutYm} and mtch_ty is null and delng_amt != 0 ) select sys_se, accnut_ym, sn from ht_data where cnt = 2 and sum_amt = 0 ) b on ( b.sys_se = a.sys_se and b.accnut_ym = a.accnut_ym and b.sn = a.sn ) when matched then update set MTCH_SYS = 'EXCLUSION' , MTCH_TY = 'REVERSAL' , MTCH_TY_NM = 'REVERSAL'