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 ${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,
own_comp_name,
tran_comp,
tran_comp_name,
comp_acct_code,
comp_acct_name,
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.OWN_COMP_NAME},
#{item.TRAN_COMP},
#{item.TRAN_COMP_NAME},
#{item.COMP_ACCT_CODE},
#{item.COMP_ACCT_NAME},
#{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
, cpr_nm
, partn_cpr
, partn_cpr_nm
, cpr_acnt_code
, cpr_acnt_nm
, 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
, own_comp_name
, tran_comp
, tran_comp_name
, comp_acct_code
, comp_acct_name
, 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}
and ${item}
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
, case when dta_ty in ('11','21','31','33','35','37','41') then cpr_code else partn_cpr end
, case when dta_ty in ('11','21','31','33','35','37','41') then partn_cpr else cpr_code end
) 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
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}