newdwh2021/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py
2023-09-16 13:56:34 +09:00

1573 lines
62 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import textwrap
class VjskReceiveFileMapper:
"""
実消化データファイルI/Fマッピング定義クラス
"""
CONDKEY_SLIP_DATA = "SLIP_DATA" # 販売実績データ
CONDKEY_HLD_MST = "HLD_MST" # V卸ホールディングスマスタ
CONDKEY_WHS_MST = "WHS_MST" # V卸マスタ
CONDKEY_MKR_ORG_HORIZON = "MKR_ORG_HORIZON" # Vメーカー卸組織展開表
CONDKEY_ORG_CNV_MST = "ORG_CNV_MST" # V卸組織変換マスタ
CONDKEY_TRAN_KBN_MST = "TRAN_KBN_MST" # V取引区分マスタ
CONDKEY_FCL_MST = "FCL_MST" # V施設マスタ
CONDKEY_PHM_PRD_MST = "PHM_PRD_MST" # V製品マスタ
CONDKEY_PHM_PRICE_MST = "PHM_PRICE_MST" # V製品価格マスタ
CONDKEY_VOP_HCO_MERGE = "VOP_HCO_MERGE" # V施設統合マスタ
CONDKEY_WHS_CUSTOMER_MST = "WHS_CUSTOMER_MST" # V卸得意先情報マスタ
CONDKEY_MDB_CONV_MST = "MDB_CONV_MST" # MDBコード変換表
CONDKEY_STOCK_SLIP_DATA = "STOCK_SLIP_DATA" # 卸在庫データ
CONDKEY_BIO_SLIP_DATA = "BIO_SLIP_DATA" # 生物由来データ
CONDKEY_LOT_NUM_MST = "LOT_NUM_MST" # ロットマスタデータ
_KEY_DATA_NAME = "data_name"
_KEY_FILE_PREFIX = "file_prefix"
_KEY_FILE_SUFFIX = "file_suffix"
_KEY_FILE_COLUMN_SEPARATORS = "file_column_separators"
_KEY_ORG_TABLE = "org_table"
_KEY_SRC_TABLE = "src_table"
_KEY_UPSERT_SQL = "upsert_sql"
_VJSK_INTERFACE_MAPPING = {
# 販売実績データ
CONDKEY_SLIP_DATA: {
_KEY_DATA_NAME: "販売実績データ",
_KEY_FILE_PREFIX: "slip_data_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "82",
_KEY_ORG_TABLE: "org05.sales",
_KEY_SRC_TABLE: "src05.sales",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.sales (
rec_data
,rec_whs_cd
,rec_whs_sub_cd
,rec_whs_org_cd
,rec_cust_cd
,rec_comm_cd
,rec_tran_kbn
,rev_hsdnymd_wrk
,rev_hsdnymd_srk
,rec_urag_num
,rec_qty
,rec_nonyu_price
,rec_nonyu_amt
,rec_comm_name
,rec_nonyu_fcl_name
,free_item
,rec_nonyu_fcl_addr
,rec_nonyu_fcl_post
,rec_nonyu_fcl_tel
,rec_bef_hsdn_ymd
,rec_bef_slip_num
,rec_ymd
,sale_data_cat
,slip_file_name
,slip_mgt_num
,row_num
,hsdn_ymd
,exec_dt
,v_tran_cd
,tran_kbn_name
,whs_org_cd
,v_whsorg_cd
,whs_org_name
,whs_org_kn
,v_whs_cd
,whs_name
,nonyu_fcl_cd
,v_inst_cd
,v_inst_kn
,v_inst_name
,v_inst_addr
,comm_cd
,comm_name
,nonyu_qty
,nonyu_price
,nonyu_amt
,shikiri_price
,shikiri_amt
,nhi_price
,nhi_amt
,whspos_err_kbn
,htdnymd_err_kbn
,prd_exis_kbn
,fcl_exis_kbn
,bef_hsdn_ymd
,bef_slip_num
,slip_org_kbn
,err_flg1
,err_flg2
,err_flg3
,err_flg4
,err_flg5
,err_flg6
,err_flg7
,err_flg8
,err_flg9
,err_flg10
,err_flg11
,err_flg12
,err_flg13
,err_flg14
,err_flg15
,err_flg16
,err_flg17
,err_flg18
,err_flg19
,err_flg20
,kjyo_ym
,tksnbk_kbn
,fcl_exec_kbn
,rec_sts_kbn
,ins_dt
,ins_usr
,dwh_upd_dt
)
SELECT
t.rec_data
,t.rec_whs_cd
,t.rec_whs_sub_cd
,t.rec_whs_org_cd
,t.rec_cust_cd
,t.rec_comm_cd
,t.rec_tran_kbn
,t.rev_hsdnymd_wrk
,t.rev_hsdnymd_srk
,t.rec_urag_num
,t.rec_qty
,t.rec_nonyu_price
,t.rec_nonyu_amt
,t.rec_comm_name
,t.rec_nonyu_fcl_name
,t.free_item
,t.rec_nonyu_fcl_addr
,t.rec_nonyu_fcl_post
,t.rec_nonyu_fcl_tel
,t.rec_bef_hsdn_ymd
,t.rec_bef_slip_num
,t.rec_ymd
,t.sale_data_cat
,t.slip_file_name
,t.slip_mgt_num
,t.row_num
,t.hsdn_ymd
,t.exec_dt
,t.v_tran_cd
,t.tran_kbn_name
,t.whs_org_cd
,t.v_whsorg_cd
,t.whs_org_name
,t.whs_org_kn
,t.v_whs_cd
,t.whs_name
,t.nonyu_fcl_cd
,t.v_inst_cd
,t.v_inst_kn
,t.v_inst_name
,t.v_inst_addr
,t.comm_cd
,t.comm_name
,t.nonyu_qty
,t.nonyu_price
,t.nonyu_amt
,t.shikiri_price
,t.shikiri_amt
,t.nhi_price
,t.nhi_amt
,t.whspos_err_kbn
,t.htdnymd_err_kbn
,t.prd_exis_kbn
,t.fcl_exis_kbn
,t.bef_hsdn_ymd
,t.bef_slip_num
,t.slip_org_kbn
,t.err_flg1
,t.err_flg2
,t.err_flg3
,t.err_flg4
,t.err_flg5
,t.err_flg6
,t.err_flg7
,t.err_flg8
,t.err_flg9
,t.err_flg10
,t.err_flg11
,t.err_flg12
,t.err_flg13
,t.err_flg14
,t.err_flg15
,t.err_flg16
,t.err_flg17
,t.err_flg18
,t.err_flg19
,t.err_flg20
,t.kjyo_ym
,t.tksnbk_kbn
,t.fcl_exec_kbn
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,t.ins_usr
,SYSDATE()
FROM org05.sales AS t
ON DUPLICATE KEY UPDATE
rec_data=t.rec_data
,rec_whs_cd=t.rec_whs_cd
,rec_whs_sub_cd=t.rec_whs_sub_cd
,rec_whs_org_cd=t.rec_whs_org_cd
,rec_cust_cd=t.rec_cust_cd
,rec_comm_cd=t.rec_comm_cd
,rec_tran_kbn=t.rec_tran_kbn
,rev_hsdnymd_wrk=t.rev_hsdnymd_wrk
,rev_hsdnymd_srk=t.rev_hsdnymd_srk
,rec_urag_num=t.rec_urag_num
,rec_qty=t.rec_qty
,rec_nonyu_price=t.rec_nonyu_price
,rec_nonyu_amt=t.rec_nonyu_amt
,rec_comm_name=t.rec_comm_name
,rec_nonyu_fcl_name=t.rec_nonyu_fcl_name
,free_item=t.free_item
,rec_nonyu_fcl_addr=t.rec_nonyu_fcl_addr
,rec_nonyu_fcl_post=t.rec_nonyu_fcl_post
,rec_nonyu_fcl_tel=t.rec_nonyu_fcl_tel
,rec_bef_hsdn_ymd=t.rec_bef_hsdn_ymd
,rec_bef_slip_num=t.rec_bef_slip_num
,rec_ymd=t.rec_ymd
,sale_data_cat=t.sale_data_cat
,slip_file_name=t.slip_file_name
,slip_mgt_num=t.slip_mgt_num
,row_num=t.row_num
,hsdn_ymd=t.hsdn_ymd
,exec_dt=t.exec_dt
,v_tran_cd=t.v_tran_cd
,tran_kbn_name=t.tran_kbn_name
,whs_org_cd=t.whs_org_cd
,v_whsorg_cd=t.v_whsorg_cd
,whs_org_name=t.whs_org_name
,whs_org_kn=t.whs_org_kn
,v_whs_cd=t.v_whs_cd
,whs_name=t.whs_name
,nonyu_fcl_cd=t.nonyu_fcl_cd
,v_inst_cd=t.v_inst_cd
,v_inst_kn=t.v_inst_kn
,v_inst_name=t.v_inst_name
,v_inst_addr=t.v_inst_addr
,comm_cd=t.comm_cd
,comm_name=t.comm_name
,nonyu_qty=t.nonyu_qty
,nonyu_price=t.nonyu_price
,nonyu_amt=t.nonyu_amt
,shikiri_price=t.shikiri_price
,shikiri_amt=t.shikiri_amt
,nhi_price=t.nhi_price
,nhi_amt=t.nhi_amt
,whspos_err_kbn=t.whspos_err_kbn
,htdnymd_err_kbn=t.htdnymd_err_kbn
,prd_exis_kbn=t.prd_exis_kbn
,fcl_exis_kbn=t.fcl_exis_kbn
,bef_hsdn_ymd=t.bef_hsdn_ymd
,bef_slip_num=t.bef_slip_num
,slip_org_kbn=t.slip_org_kbn
,err_flg1=t.err_flg1
,err_flg2=t.err_flg2
,err_flg3=t.err_flg3
,err_flg4=t.err_flg4
,err_flg5=t.err_flg5
,err_flg6=t.err_flg6
,err_flg7=t.err_flg7
,err_flg8=t.err_flg8
,err_flg9=t.err_flg9
,err_flg10=t.err_flg10
,err_flg11=t.err_flg11
,err_flg12=t.err_flg12
,err_flg13=t.err_flg13
,err_flg14=t.err_flg14
,err_flg15=t.err_flg15
,err_flg16=t.err_flg16
,err_flg17=t.err_flg17
,err_flg18=t.err_flg18
,err_flg19=t.err_flg19
,err_flg20=t.err_flg20
,kjyo_ym=t.kjyo_ym
,tksnbk_kbn=t.tksnbk_kbn
,fcl_exec_kbn=t.fcl_exec_kbn
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,ins_usr=t.ins_usr
,dwh_upd_dT=SYSDATE()
;
""")
},
# V卸ホールディングスマスタ
CONDKEY_HLD_MST: {
_KEY_DATA_NAME: "V卸ホールディングスマスタ",
_KEY_FILE_PREFIX: "hld_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "10",
_KEY_ORG_TABLE: "org05.hld_mst_v",
_KEY_SRC_TABLE: "src05.hld_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.hld_mst_v (
v_hld_cd
,sub_num
,name
,kn_name
,abb_name
,start_date
,end_date
,dsp_odr
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.v_hld_cd
,t.sub_num
,t.name
,t.kn_name
,t.abb_name
,t.start_date
,t.end_date
,t.dsp_odr
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.hld_mst_v AS t
ON DUPLICATE KEY UPDATE
v_hld_cd=t.v_hld_cd
,sub_num=t.sub_num
,name=t.name
,kn_name=t.kn_name
,abb_name=t.abb_name
,start_date=t.start_date
,end_date=t.end_date
,dsp_odr=t.dsp_odr
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,dwh_upd_dt=SYSDATE()
;
""")
},
# V卸マスタ
CONDKEY_WHS_MST: {
_KEY_DATA_NAME: "V卸マスタ",
_KEY_FILE_PREFIX: "whs_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "15",
_KEY_ORG_TABLE: "org05.whs_mst_v",
_KEY_SRC_TABLE: "src05.whs_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.whs_mst_v (
v_whs_cd
,sub_num
,name
,kn_name
,abb_name
,postal_cd
,addr
,kn_addr
,tel_num
,v_hld_cd
,start_date
,end_date
,dsp_odr
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.v_whs_cd
,t.sub_num
,t.name
,t.kn_name
,t.abb_name
,t.postal_cd
,t.addr
,t.kn_addr
,t.tel_num
,t.v_hld_cd
,t.start_date
,t.end_date
,t.dsp_odr
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.whs_mst_v AS t
ON DUPLICATE KEY UPDATE
v_whs_cd=t.v_whs_cd
,sub_num=t.sub_num
,name=t.name
,kn_name=t.kn_name
,abb_name=t.abb_name
,postal_cd=t.postal_cd
,addr=t.addr
,kn_addr=t.kn_addr
,tel_num=t.tel_num
,v_hld_cd=t.v_hld_cd
,start_date=t.start_date
,end_date=t.end_date
,dsp_odr=t.dsp_odr
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# Vメーカー卸組織展開表
CONDKEY_MKR_ORG_HORIZON: {
_KEY_DATA_NAME: "Vメーカー卸組織展開表",
_KEY_FILE_PREFIX: "mkr_org_horizon_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "45",
_KEY_ORG_TABLE: "org05.mkr_org_horizon_v",
_KEY_SRC_TABLE: "src05.mkr_org_horizon_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.mkr_org_horizon_v (
vid_kind_1
,v_cd_1
,name_1
,dsp_odr_1
,vid_kind_2
,v_cd_2
,name_2
,dsp_odr_2
,vid_kind_3
,v_cd_3
,name_3
,dsp_odr_3
,vid_kind_4
,v_cd_4
,name_4
,dsp_odr_4
,vid_kind_5
,v_cd_5
,name_5
,dsp_odr_5
,vid_kind_6
,v_cd_6
,name_6
,dsp_odr_6
,vid_kind_7
,v_cd_7
,name_7
,dsp_odr_7
,vid_kind_8
,v_cd_8
,name_8
,dsp_odr_8
,vid_kind_9
,v_cd_9
,name_9
,dsp_odr_9
,vid_kind_10
,v_cd_10
,name_10
,dsp_odr_10
,v_whs_cd
,start_date
,end_date
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.vid_kind_1
,t.v_cd_1
,t.name_1
,t.dsp_odr_1
,t.vid_kind_2
,t.v_cd_2
,t.name_2
,t.dsp_odr_2
,t.vid_kind_3
,t.v_cd_3
,t.name_3
,t.dsp_odr_3
,t.vid_kind_4
,t.v_cd_4
,t.name_4
,t.dsp_odr_4
,t.vid_kind_5
,t.v_cd_5
,t.name_5
,t.dsp_odr_5
,t.vid_kind_6
,t.v_cd_6
,t.name_6
,t.dsp_odr_6
,t.vid_kind_7
,t.v_cd_7
,t.name_7
,t.dsp_odr_7
,t.vid_kind_8
,t.v_cd_8
,t.name_8
,t.dsp_odr_8
,t.vid_kind_9
,t.v_cd_9
,t.name_9
,t.dsp_odr_9
,t.vid_kind_10
,t.v_cd_10
,t.name_10
,t.dsp_odr_10
,t.v_whs_cd
,t.start_date
,t.end_date
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.mkr_org_horizon_v AS t
ON DUPLICATE KEY UPDATE
vid_kind_1=t.vid_kind_1
,v_cd_1=t.v_cd_1
,name_1=t.name_1
,dsp_odr_1=t.dsp_odr_1
,vid_kind_2=t.vid_kind_2
,v_cd_2=t.v_cd_2
,name_2=t.name_2
,dsp_odr_2=t.dsp_odr_2
,vid_kind_3=t.vid_kind_3
,v_cd_3=t.v_cd_3
,name_3=t.name_3
,dsp_odr_3=t.dsp_odr_3
,vid_kind_4=t.vid_kind_4
,v_cd_4=t.v_cd_4
,name_4=t.name_4
,dsp_odr_4=t.dsp_odr_4
,vid_kind_5=t.vid_kind_5
,v_cd_5=t.v_cd_5
,name_5=t.name_5
,dsp_odr_5=t.dsp_odr_5
,vid_kind_6=t.vid_kind_6
,v_cd_6=t.v_cd_6
,name_6=t.name_6
,dsp_odr_6=t.dsp_odr_6
,vid_kind_7=t.vid_kind_7
,v_cd_7=t.v_cd_7
,name_7=t.name_7
,dsp_odr_7=t.dsp_odr_7
,vid_kind_8=t.vid_kind_8
,v_cd_8=t.v_cd_8
,name_8=t.name_8
,dsp_odr_8=t.dsp_odr_8
,vid_kind_9=t.vid_kind_9
,v_cd_9=t.v_cd_9
,name_9=t.name_9
,dsp_odr_9=t.dsp_odr_9
,vid_kind_10=t.vid_kind_10
,v_cd_10=t.v_cd_10
,name_10=t.name_10
,dsp_odr_10=t.dsp_odr_10
,v_whs_cd=t.v_whs_cd
,start_date=t.start_date
,end_date=t.end_date
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# V卸組織変換マスタ
CONDKEY_ORG_CNV_MST: {
_KEY_DATA_NAME: "V卸組織変換マスタ",
_KEY_FILE_PREFIX: "org_cnv_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "10",
_KEY_ORG_TABLE: "org05.org_cnv_mst_v",
_KEY_SRC_TABLE: "src05.org_cnv_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.org_cnv_mst_v (
whs_cd
,whs_sub_cd
,org_cd
,sub_num
,v_org_cd
,start_date
,end_date
,dsp_odr
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.whs_cd
,t.whs_sub_cd
,t.org_cd
,t.sub_num
,t.v_org_cd
,t.start_date
,t.end_date
,t.dsp_odr
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.org_cnv_mst_v AS t
ON DUPLICATE KEY UPDATE
whs_cd=t.whs_cd
,whs_sub_cd=t.whs_sub_cd
,org_cd=t.org_cd
,sub_num=t.sub_num
,v_org_cd=t.v_org_cd
,start_date=t.start_date
,end_date=t.end_date
,dsp_odr=t.dsp_odr
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# V取引区分マスタ
CONDKEY_TRAN_KBN_MST: {
_KEY_DATA_NAME: "V取引区分マスタ",
_KEY_FILE_PREFIX: "tran_kbn_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "8",
_KEY_ORG_TABLE: "org05.tran_kbn_mst_v",
_KEY_SRC_TABLE: "src05.tran_kbn_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.tran_kbn_mst_v (
v_tran_cd
,sub_num
,name
,start_date
,end_date
,dsp_odr
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.v_tran_cd
,t.sub_num
,t.name
,t.start_date
,t.end_date
,t.dsp_odr
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.tran_kbn_mst_v AS t
ON DUPLICATE KEY UPDATE
v_tran_cd=t.v_tran_cd
,sub_num=t.sub_num
,name=t.name
,start_date=t.start_date
,end_date=t.end_date
,dsp_odr=t.dsp_odr
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# V施設マスタ
CONDKEY_FCL_MST: {
_KEY_DATA_NAME: "V施設マスタ",
_KEY_FILE_PREFIX: "fcl_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "23",
_KEY_ORG_TABLE: "org05.fcl_mst_v",
_KEY_SRC_TABLE: "src05.fcl_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.fcl_mst_v (
v_inst_cd
,sub_num
,start_date
,end_date
,closed_dt
,fcl_name
,fcl_kn_name
,fcl_abb_name
,fcl_abb_kn_name
,mkr_cd
,jsk_proc_kbn
,fmt_addr
,fmt_kn_addr
,postal_cd
,prft_cd
,prft_name
,city_name
,addr_line_1
,tel_num
,admin_kbn
,fcl_type
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.v_inst_cd
,t.sub_num
,t.start_date
,t.end_date
,t.closed_dt
,t.fcl_name
,t.fcl_kn_name
,t.fcl_abb_name
,t.fcl_abb_kn_name
,t.mkr_cd
,t.jsk_proc_kbn
,t.fmt_addr
,t.fmt_kn_addr
,t.postal_cd
,t.prft_cd
,t.prft_name
,t.city_name
,t.addr_line_1
,t.tel_num
,t.admin_kbn
,t.fcl_type
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.fcl_mst_v AS t
ON DUPLICATE KEY UPDATE
v_inst_cd=t.v_inst_cd
,sub_num=t.sub_num
,start_date=t.start_date
,end_date=t.end_date
,closed_dt=t.closed_dt
,fcl_name=t.fcl_name
,fcl_kn_name=t.fcl_kn_name
,fcl_abb_name=t.fcl_abb_name
,fcl_abb_kn_name=t.fcl_abb_kn_name
,mkr_cd=t.mkr_cd
,jsk_proc_kbn=t.jsk_proc_kbn
,fmt_addr=t.fmt_addr
,fmt_kn_addr=t.fmt_kn_addr
,postal_cd=t.postal_cd
,prft_cd=t.prft_cd
,prft_name=t.prft_name
,city_name=t.city_name
,addr_line_1=t.addr_line_1
,tel_num=t.tel_num
,admin_kbn=t.admin_kbn
,fcl_type=t.fcl_type
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# V製品マスタ
CONDKEY_PHM_PRD_MST: {
_KEY_DATA_NAME: "V製品マスタ",
_KEY_FILE_PREFIX: "phm_prd_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "27",
_KEY_ORG_TABLE: "org05.phm_prd_mst_v",
_KEY_SRC_TABLE: "src05.phm_prd_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.phm_prd_mst_v (
prd_cd
,sub_num
,prd_name
,prd_e_name
,mkr_cd
,mkr_inf_1
,mkr_inf_2
,phm_itm_cd
,itm_name
,itm_abb_name
,form_cd
,form_name
,vol_cd
,vol_name
,cont_cd
,cont_name
,pkg_cd
,pkg_name
,cnv_num
,jsk_start_dt
,prd_sale_kbn
,jsk_proc_kbn
,start_date
,end_date
,dsp_odr
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.prd_cd
,t.sub_num
,t.prd_name
,t.prd_e_name
,t.mkr_cd
,t.mkr_inf_1
,t.mkr_inf_2
,t.phm_itm_cd
,t.itm_name
,t.itm_abb_name
,t.form_cd
,t.form_name
,t.vol_cd
,t.vol_name
,t.cont_cd
,t.cont_name
,t.pkg_cd
,t.pkg_name
,t.cnv_num
,nullif(t.jsk_start_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,t.prd_sale_kbn
,t.jsk_proc_kbn
,t.start_date
,t.end_date
,t.dsp_odr
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.phm_prd_mst_v AS t
ON DUPLICATE KEY UPDATE
prd_cd=t.prd_cd
,sub_num=t.sub_num
,prd_name=t.prd_name
,prd_e_name=t.prd_e_name
,mkr_cd=t.mkr_cd
,mkr_inf_1=t.mkr_inf_1
,mkr_inf_2=t.mkr_inf_2
,phm_itm_cd=t.phm_itm_cd
,itm_name=t.itm_name
,itm_abb_name=t.itm_abb_name
,form_cd=t.form_cd
,form_name=t.form_name
,vol_cd=t.vol_cd
,vol_name=t.vol_name
,cont_cd=t.cont_cd
,cont_name=t.cont_name
,pkg_cd=t.pkg_cd
,pkg_name=t.pkg_name
,cnv_num=t.cnv_num
,jsk_start_dt=nullif(t.jsk_start_dt, 0)
,prd_sale_kbn=t.prd_sale_kbn
,jsk_proc_kbn=t.jsk_proc_kbn
,start_date=t.start_date
,end_date=t.end_date
,dsp_odr=t.dsp_odr
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# V製品価格マスタ
CONDKEY_PHM_PRICE_MST: {
_KEY_DATA_NAME: "V製品価格マスタ",
_KEY_FILE_PREFIX: "phm_price_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "9",
_KEY_ORG_TABLE: "org05.phm_price_mst_v",
_KEY_SRC_TABLE: "src05.phm_price_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.phm_price_mst_v (
phm_prd_cd
,phm_price_kind
,sub_num
,price
,start_date
,end_date
,dsp_odr
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.phm_prd_cd
,t.phm_price_kind
,t.sub_num
,t.price
,t.start_date
,t.end_date
,t.dsp_odr
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.phm_price_mst_v AS t
ON DUPLICATE KEY UPDATE
phm_prd_cd=t.phm_prd_cd
,phm_price_kind=t.phm_price_kind
,sub_num=t.sub_num
,price=t.price
,start_date=t.start_date
,end_date=t.end_date
,dsp_odr=t.dsp_odr
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# V施設統合マスタ
CONDKEY_VOP_HCO_MERGE: {
_KEY_DATA_NAME: "V施設統合マスタ",
_KEY_FILE_PREFIX: "vop_hco_merge_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "3",
_KEY_ORG_TABLE: "org05.vop_hco_merge_v",
_KEY_SRC_TABLE: "src05.vop_hco_merge_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.vop_hco_merge_v (
v_inst_cd
,v_inst_cd_merg
,apply_dt
,merge_reason
,dwh_upd_dt
)
SELECT
t.v_inst_cd
,t.v_inst_cd_merg
,t.apply_dt
,t.merge_reason
,SYSDATE()
FROM org05.vop_hco_merge_v AS t
ON DUPLICATE KEY UPDATE
v_inst_cd=t.v_inst_cd
,v_inst_cd_merg=t.v_inst_cd_merg
,apply_dt=t.apply_dt
,merge_reason=t.merge_reason
,dwh_upd_dt=SYSDATE()
;
""")
},
# V卸得意先情報マスタ
CONDKEY_WHS_CUSTOMER_MST: {
_KEY_DATA_NAME: "V卸得意先情報マスタ",
_KEY_FILE_PREFIX: "whs_customer_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "16",
_KEY_ORG_TABLE: "org05.whs_customer_mst_v",
_KEY_SRC_TABLE: "src05.whs_customer_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.whs_customer_mst_v (
whs_cd
,whs_sub_cd
,customer_cd
,sub_num
,start_date
,end_date
,whs_org_cd
,src_org_cd
,name
,kn_name
,addr
,kn_addr
,postal_cd
,tel_num
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.whs_cd
,t.whs_sub_cd
,t.customer_cd
,t.sub_num
,t.start_date
,t.end_date
,t.whs_org_cd
,t.src_org_cd
,t.name
,t.kn_name
,t.addr
,t.kn_addr
,t.postal_cd
,t.tel_num
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.whs_customer_mst_v AS t
ON DUPLICATE KEY UPDATE
whs_cd=t.whs_cd
,whs_sub_cd=t.whs_sub_cd
,customer_cd=t.customer_cd
,sub_num=t.sub_num
,start_date=t.start_date
,end_date=t.end_date
,whs_org_cd=t.whs_org_cd
,src_org_cd=t.src_org_cd
,name=t.name
,kn_name=t.kn_name
,addr=t.addr
,kn_addr=t.kn_addr
,postal_cd=t.postal_cd
,tel_num=t.tel_num
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# MDBコード変換表
CONDKEY_MDB_CONV_MST: {
_KEY_DATA_NAME: "MDBコード変換表",
_KEY_FILE_PREFIX: "mdb_conv_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "7",
_KEY_ORG_TABLE: "org05.mdb_cnv_mst_v",
_KEY_SRC_TABLE: "src05.mdb_cnv_mst_v",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.mdb_cnv_mst_v (
hco_vid_v
,sub_num
,mdb_cd
,reliability
,start_date
,rec_sts_kbn
,ins_dt
,upd_dt
,dwh_upd_dt
)
SELECT
t.hco_vid_v
,t.sub_num
,t.mdb_cd
,t.reliability
,t.start_date
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,SYSDATE()
FROM org05.mdb_cnv_mst_v AS t
ON DUPLICATE KEY UPDATE
hco_vid_v=t.hco_vid_v
,sub_num=t.sub_num
,mdb_cd=t.mdb_cd
,reliability=t.reliability
,start_date=t.start_date
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,upd_dt=nullif(t.upd_dt, 0)
,dwh_upd_dt=SYSDATE()
;
""")
},
# 卸在庫データ
CONDKEY_STOCK_SLIP_DATA: {
_KEY_DATA_NAME: "卸在庫データ",
_KEY_FILE_PREFIX: "stock_slip_data_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "28",
_KEY_ORG_TABLE: "org05.whole_stock",
_KEY_SRC_TABLE: "src05.whole_stock",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.whole_stock (
rec_data
,rec_whs_cd
,rec_whs_sub_cd
,rec_sto_place
,rec_stock_ymd
,rec_comm_cd
,rec_qty
,rec_stock_no_sign
,rec_jan_cd
,free_item
,rec_ymd
,sale_data_cat
,slip_file_name
,slip_mgt_num
,row_num
,exec_dt
,err_flg1
,err_flg2
,err_flg3
,err_flg4
,err_flg5
,err_flg6
,err_flg7
,err_flg8
,err_flg9
,err_flg10
,rec_sts_kbn
,ins_dt
,ins_usr
,dwh_upd_dt
)
SELECT
t.rec_data
,t.rec_whs_cd
,t.rec_whs_sub_cd
,t.rec_sto_place
,t.rec_stock_ymd
,t.rec_comm_cd
,t.rec_qty
,t.rec_stock_no_sign
,t.rec_jan_cd
,t.free_item
,t.rec_ymd
,t.sale_data_cat
,t.slip_file_name
,t.slip_mgt_num
,t.row_num
,t.exec_dt
,t.err_flg1
,t.err_flg2
,t.err_flg3
,t.err_flg4
,t.err_flg5
,t.err_flg6
,t.err_flg7
,t.err_flg8
,t.err_flg9
,t.err_flg10
,t.rec_sts_kbn
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,t.ins_usr
,SYSDATE()
FROM org05.whole_stock AS t
ON DUPLICATE KEY UPDATE
rec_data=t.rec_data
,rec_whs_cd=t.rec_whs_cd
,rec_whs_sub_cd=t.rec_whs_sub_cd
,rec_sto_place=t.rec_sto_place
,rec_stock_ymd=t.rec_stock_ymd
,rec_comm_cd=t.rec_comm_cd
,rec_qty=t.rec_qty
,rec_stock_no_sign=t.rec_stock_no_sign
,rec_jan_cd=t.rec_jan_cd
,free_item=t.free_item
,rec_ymd=t.rec_ymd
,sale_data_cat=t.sale_data_cat
,slip_file_name=t.slip_file_name
,slip_mgt_num=t.slip_mgt_num
,row_num=t.row_num
,exec_dt=t.exec_dt
,err_flg1=t.err_flg1
,err_flg2=t.err_flg2
,err_flg3=t.err_flg3
,err_flg4=t.err_flg4
,err_flg5=t.err_flg5
,err_flg6=t.err_flg6
,err_flg7=t.err_flg7
,err_flg8=t.err_flg8
,err_flg9=t.err_flg9
,err_flg10=t.err_flg10
,rec_sts_kbn=t.rec_sts_kbn
,ins_dt=nullif(t.ins_dt, 0)
,ins_usr=t.ins_usr
,dwh_upd_dt=SYSDATE()
;
""")
},
# 生物由来データ
CONDKEY_BIO_SLIP_DATA: {
_KEY_DATA_NAME: "生物由来データ",
_KEY_FILE_PREFIX: "bio_slip_data_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "77",
_KEY_ORG_TABLE: "org05.bio_sales",
_KEY_SRC_TABLE: "src05.bio_sales",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.bio_sales (
rec_data
,rec_whs_cd
,rec_whs_sub_cd
,rec_whs_org_cd
,rec_cust_cd
,rec_comm_cd
,rec_tran_kbn
,rev_hsdnymd_wrk
,rev_hsdnymd_srk
,rec_urag_num
,rec_comm_name
,rec_nonyu_fcl_name
,rec_nonyu_fcl_addr
,rec_lot_num1
,rec_qty1
,rec_lot_num2
,rec_qty2
,rec_lot_num3
,rec_qty3
,rec_ymd
,sale_data_cat
,slip_file_name
,slip_mgt_num
,row_num
,hsdn_ymd
,exec_dt
,v_tran_cd
,tran_kbn_name
,whs_org_cd
,v_whsorg_cd
,whs_org_name
,whs_org_kn
,v_whs_cd
,whs_name
,nonyu_fcl_cd
,v_inst_cd
,v_inst_name
,v_inst_kn
,v_inst_addr
,comm_cd
,product_name
,htdnymd_err_kbn
,prd_exis_kbn
,fcl_exis_kbn
,qty1
,qty2
,qty3
,slip_org_kbn
,bef_slip_mgt_num
,whs_rep_comm_name
,whs_rep_nonyu_fcl_name
,whs_rep_nonyu_fcl_addr
,err_flg1
,err_flg2
,err_flg3
,err_flg4
,err_flg5
,err_flg6
,err_flg7
,err_flg8
,err_flg9
,err_flg10
,err_flg11
,err_flg12
,err_flg13
,err_flg14
,err_flg15
,err_flg16
,err_flg17
,err_flg18
,err_flg19
,err_flg20
,kjyo_ym
,tksnbk_kbn
,fcl_exec_kbn
,rec_sts_kbn
,ins_dt
,ins_usr
,dwh_upd_dt
)
SELECT
src05.convert_empty_to_null(t.rec_data)
,src05.convert_empty_to_null(t.rec_whs_cd)
,src05.convert_empty_to_null(t.rec_whs_sub_cd)
,src05.convert_empty_to_null(t.rec_whs_org_cd)
,src05.convert_empty_to_null(t.rec_cust_cd)
,src05.convert_empty_to_null(t.rec_comm_cd)
,src05.convert_empty_to_null(t.rec_tran_kbn)
,src05.convert_empty_to_null(t.rev_hsdnymd_wrk)
,src05.convert_empty_to_null(t.rev_hsdnymd_srk)
,src05.convert_empty_to_null(t.rec_urag_num)
,src05.convert_empty_to_null(t.rec_comm_name)
,src05.convert_empty_to_null(t.rec_nonyu_fcl_name)
,src05.convert_empty_to_null(t.rec_nonyu_fcl_addr)
,src05.convert_empty_to_null(t.rec_lot_num1)
,src05.convert_empty_to_null(t.rec_qty1)
,src05.convert_empty_to_null(t.rec_lot_num2)
,src05.convert_empty_to_null(t.rec_qty2)
,src05.convert_empty_to_null(t.rec_lot_num3)
,src05.convert_empty_to_null(t.rec_qty3)
,src05.convert_empty_to_null(t.rec_ymd)
,src05.convert_empty_to_null(t.sale_data_cat)
,src05.convert_empty_to_null(t.slip_file_name)
,src05.convert_empty_to_null(t.slip_mgt_num)
,t.row_num
,src05.convert_empty_to_null(t.hsdn_ymd)
,src05.convert_empty_to_null(t.exec_dt)
,t.v_tran_cd
,src05.convert_empty_to_null(t.tran_kbn_name)
,src05.convert_empty_to_null(t.whs_org_cd)
,t.v_whsorg_cd
,src05.convert_empty_to_null(t.whs_org_name)
,src05.convert_empty_to_null(t.whs_org_kn)
,t.v_whs_cd
,src05.convert_empty_to_null(t.whs_name)
,src05.convert_empty_to_null(t.nonyu_fcl_cd)
,nullif(t.v_inst_cd,'')
,nullif(t.v_inst_name,'')
,nullif(t.v_inst_kn,'')
,nullif(t.v_inst_addr,'')
,nullif(t.comm_cd,'')
,nullif(t.product_name,'')
,nullif(t.htdnymd_err_kbn,'')
,nullif(t.prd_exis_kbn,'')
,nullif(t.fcl_exis_kbn,'')
,t.qty1
,t.qty2
,t.qty3
,t.slip_org_kbn
,src05.convert_empty_to_null(t.bef_slip_mgt_num)
,src05.convert_empty_to_null(t.whs_rep_comm_name)
,src05.convert_empty_to_null(t.whs_rep_nonyu_fcl_name)
,src05.convert_empty_to_null(t.whs_rep_nonyu_fcl_addr)
,src05.convert_empty_to_null(t.err_flg1)
,src05.convert_empty_to_null(t.err_flg2)
,src05.convert_empty_to_null(t.err_flg3)
,src05.convert_empty_to_null(t.err_flg4)
,src05.convert_empty_to_null(t.err_flg5)
,src05.convert_empty_to_null(t.err_flg6)
,src05.convert_empty_to_null(t.err_flg7)
,src05.convert_empty_to_null(t.err_flg8)
,src05.convert_empty_to_null(t.err_flg9)
,src05.convert_empty_to_null(t.err_flg10)
,src05.convert_empty_to_null(t.err_flg11)
,src05.convert_empty_to_null(t.err_flg12)
,src05.convert_empty_to_null(t.err_flg13)
,src05.convert_empty_to_null(t.err_flg14)
,src05.convert_empty_to_null(t.err_flg15)
,src05.convert_empty_to_null(t.err_flg16)
,src05.convert_empty_to_null(t.err_flg17)
,src05.convert_empty_to_null(t.err_flg18)
,src05.convert_empty_to_null(t.err_flg19)
,src05.convert_empty_to_null(t.err_flg20)
,src05.convert_empty_to_null(t.kjyo_ym)
,src05.convert_empty_to_null(t.tksnbk_kbn)
,src05.convert_empty_to_null(t.fcl_exec_kbn)
,src05.convert_empty_to_null(t.rec_sts_kbn)
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,src05.convert_empty_to_null(t.ins_usr)
,SYSDATE()
FROM org05.bio_sales AS t
ON DUPLICATE KEY UPDATE
rec_data=VALUES(rec_data)
,rec_whs_cd=VALUES(rec_whs_cd)
,rec_whs_sub_cd=VALUES(rec_whs_sub_cd)
,rec_whs_org_cd=VALUES(rec_whs_org_cd)
,rec_cust_cd=VALUES(rec_cust_cd)
,rec_comm_cd=VALUES(rec_comm_cd)
,rec_tran_kbn=VALUES(rec_tran_kbn)
,rev_hsdnymd_wrk=VALUES(rev_hsdnymd_wrk)
,rev_hsdnymd_srk=VALUES(rev_hsdnymd_srk)
,rec_urag_num=VALUES(rec_urag_num)
,rec_comm_name=VALUES(rec_comm_name)
,rec_nonyu_fcl_name=VALUES(rec_nonyu_fcl_name)
,rec_nonyu_fcl_addr=VALUES(rec_nonyu_fcl_addr)
,rec_lot_num1=VALUES(rec_lot_num1)
,rec_qty1=VALUES(rec_qty1)
,rec_lot_num2=VALUES(rec_lot_num2)
,rec_qty2=VALUES(rec_qty2)
,rec_lot_num3=VALUES(rec_lot_num3)
,rec_qty3=VALUES(rec_qty3)
,rec_ymd=VALUES(rec_ymd)
,sale_data_cat=VALUES(sale_data_cat)
,slip_file_name=VALUES(slip_file_name)
,slip_mgt_num=VALUES(slip_mgt_num)
,row_num=VALUES(row_num)
,hsdn_ymd=VALUES(hsdn_ymd)
,exec_dt=VALUES(exec_dt)
,v_tran_cd=VALUES(v_tran_cd)
,tran_kbn_name=VALUES(tran_kbn_name)
,whs_org_cd=VALUES(whs_org_cd)
,v_whsorg_cd=VALUES(v_whsorg_cd)
,whs_org_name=VALUES(whs_org_name)
,whs_org_kn=VALUES(whs_org_kn)
,v_whs_cd=VALUES(v_whs_cd)
,whs_name=VALUES(whs_name)
,nonyu_fcl_cd=VALUES(nonyu_fcl_cd)
,v_inst_cd=VALUES(v_inst_cd)
,v_inst_name=VALUES(v_inst_name)
,v_inst_kn=VALUES(v_inst_kn)
,v_inst_addr=VALUES(v_inst_addr)
,comm_cd=VALUES(comm_cd)
,product_name=VALUES(product_name)
,htdnymd_err_kbn=VALUES(htdnymd_err_kbn)
,prd_exis_kbn=VALUES(prd_exis_kbn)
,fcl_exis_kbn=VALUES(fcl_exis_kbn)
,qty1=VALUES(qty1)
,qty2=VALUES(qty2)
,qty3=VALUES(qty3)
,slip_org_kbn=VALUES(slip_org_kbn)
,bef_slip_mgt_num=VALUES(bef_slip_mgt_num)
,whs_rep_comm_name=VALUES(whs_rep_comm_name)
,whs_rep_nonyu_fcl_name=VALUES(whs_rep_nonyu_fcl_name)
,whs_rep_nonyu_fcl_addr=VALUES(whs_rep_nonyu_fcl_addr)
,err_flg1=VALUES(err_flg1)
,err_flg2=VALUES(err_flg2)
,err_flg3=VALUES(err_flg3)
,err_flg4=VALUES(err_flg4)
,err_flg5=VALUES(err_flg5)
,err_flg6=VALUES(err_flg6)
,err_flg7=VALUES(err_flg7)
,err_flg8=VALUES(err_flg8)
,err_flg9=VALUES(err_flg9)
,err_flg10=VALUES(err_flg10)
,err_flg11=VALUES(err_flg11)
,err_flg12=VALUES(err_flg12)
,err_flg13=VALUES(err_flg13)
,err_flg14=VALUES(err_flg14)
,err_flg15=VALUES(err_flg15)
,err_flg16=VALUES(err_flg16)
,err_flg17=VALUES(err_flg17)
,err_flg18=VALUES(err_flg18)
,err_flg19=VALUES(err_flg19)
,err_flg20=VALUES(err_flg20)
,kjyo_ym=VALUES(kjyo_ym)
,tksnbk_kbn=VALUES(tksnbk_kbn)
,fcl_exec_kbn=VALUES(fcl_exec_kbn)
,rec_sts_kbn=VALUES(rec_sts_kbn)
,ins_dt=VALUES(ins_dt)
,ins_usr=VALUES(ins_usr)
,dwh_upd_dt=SYSDATE()
;
""")
},
# ロットマスタデータ
CONDKEY_LOT_NUM_MST: {
_KEY_DATA_NAME: "ロットマスタデータ",
_KEY_FILE_PREFIX: "lot_num_mst_",
_KEY_FILE_SUFFIX: ".gz",
_KEY_FILE_COLUMN_SEPARATORS: "5",
_KEY_ORG_TABLE: "org05.lot_num_mst",
_KEY_SRC_TABLE: "src05.lot_num_mst",
_KEY_UPSERT_SQL: textwrap.dedent("""\
INSERT INTO src05.lot_num_mst (
ser_num
,lot_num
,expr_dt
,frst_mov_dt
,ins_dt
,ins_usr
,dwh_upd_dt
)
SELECT
t.ser_num
,t.lot_num
,t.expr_dt
,t.frst_mov_dt
,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する
,t.ins_usr
,SYSDATE()
FROM org05.lot_num_mst AS t
ON DUPLICATE KEY UPDATE
ser_num=t.ser_num
,lot_num=t.lot_num
,expr_dt=t.expr_dt
,frst_mov_dt=t.frst_mov_dt
,ins_dt=nullif(t.ins_dt, 0)
,ins_usr=t.ins_usr
,dwh_upd_dt=SYSDATE()
;
""")
},
}
def _get_interface_property(self, condkey: str, property_name: str) -> str:
ret = None
if condkey in self._VJSK_INTERFACE_MAPPING:
ret = self._VJSK_INTERFACE_MAPPING.get(condkey).get(property_name)
return ret
def get_data_name(self, condkey: str) -> str:
"""
概要
受領ファイルI/Fが想定する、ファイル論理名を取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return self._get_interface_property(condkey, self._KEY_DATA_NAME)
def get_file_prefix(self, condkey: str) -> str:
"""
概要
受領ファイルI/Fが想定する、ファイル名接頭辞を取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return self._get_interface_property(condkey, self._KEY_FILE_PREFIX)
def get_file_suffix(self, condkey: str) -> str:
"""
概要
受領ファイルI/Fが想定する、ファイル拡張子を取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return self._get_interface_property(condkey, self._KEY_FILE_SUFFIX)
def get_file_column_separators(self, condkey: str) -> int:
"""
概要
受領ファイルI/Fが想定する、1行あたりのタブ文字数を取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return int(self._get_interface_property(condkey, self._KEY_FILE_COLUMN_SEPARATORS))
def get_org_table(self, condkey: str) -> str:
"""
概要
受領ファイルI/Fが想定する、LOAD先ロードスキーマテーブル名を取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return self._get_interface_property(condkey, self._KEY_ORG_TABLE)
def get_src_table(self, condkey: str) -> str:
"""
概要
受領ファイルI/Fが想定する、登録先蓄積スキーマテーブル名を取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return self._get_interface_property(condkey, self._KEY_SRC_TABLE)
def get_upsert_sql(self, condkey: str) -> str:
"""
概要
受領ファイルI/Fが想定する、upsert (ロードスキーマ→蓄積スキーマ) CMLステートメントを取得する
引数
condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値)
"""
return self._get_interface_property(condkey, self._KEY_UPSERT_SQL)
def get_condkey_by_s3_file_path(self, s3_file_path: str) -> str:
"""
概要
S3受領バケットに受領したファイル名から、I/F想定に該当する condkey 値を取得する
引数
s3_file_path: S3受領バケットにある受領したファイルパス
"""
ret = None
filename = s3_file_path[s3_file_path.rfind("/") + 1:]
for condkey in self._VJSK_INTERFACE_MAPPING:
element = self._VJSK_INTERFACE_MAPPING.get(condkey)
if filename.startswith(element.get(self._KEY_FILE_PREFIX)) \
and filename.endswith(element.get(self._KEY_FILE_SUFFIX)):
ret = condkey
break
return ret