diff --git a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py index f1ba07a2..07188070 100644 --- a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py @@ -821,21 +821,21 @@ class VjskReceiveFileMapper: 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 + ,medaca_common.convert_empty_to_null(t.prd_e_name) + ,medaca_common.convert_empty_to_null(t.mkr_cd) + ,medaca_common.convert_empty_to_null(t.mkr_inf_1) + ,medaca_common.convert_empty_to_null(t.mkr_inf_2) + ,medaca_common.convert_empty_to_null(t.phm_itm_cd) + ,medaca_common.convert_empty_to_null(t.itm_name) + ,medaca_common.convert_empty_to_null(t.itm_abb_name) + ,medaca_common.convert_empty_to_null(t.form_cd) + ,medaca_common.convert_empty_to_null(t.form_name) + ,medaca_common.convert_empty_to_null(t.vol_cd) + ,medaca_common.convert_empty_to_null(t.vol_name) + ,medaca_common.convert_empty_to_null(t.cont_cd) + ,medaca_common.convert_empty_to_null(t.cont_name) + ,medaca_common.convert_empty_to_null(t.pkg_cd) + ,medaca_common.convert_empty_to_null(t.pkg_name) ,t.cnv_num ,nullif(t.jsk_start_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,t.prd_sale_kbn @@ -849,34 +849,34 @@ class VjskReceiveFileMapper: ,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) + prd_cd=VALUES(prd_cd) + ,sub_num=VALUES(sub_num) + ,prd_name=VALUES(prd_name) + ,prd_e_name=VALUES(prd_e_name) + ,mkr_cd=VALUES(mkr_cd) + ,mkr_inf_1=VALUES(mkr_inf_1) + ,mkr_inf_2=VALUES(mkr_inf_2) + ,phm_itm_cd=VALUES(phm_itm_cd) + ,itm_name=VALUES(itm_name) + ,itm_abb_name=VALUES(itm_abb_name) + ,form_cd=VALUES(form_cd) + ,form_name=VALUES(form_name) + ,vol_cd=VALUES(vol_cd) + ,vol_name=VALUES(vol_name) + ,cont_cd=VALUES(cont_cd) + ,cont_name=VALUES(cont_name) + ,pkg_cd=VALUES(pkg_cd) + ,pkg_name=VALUES(pkg_name) + ,cnv_num=VALUES(cnv_num) + ,jsk_start_dt=VALUES(jsk_start_dt) + ,prd_sale_kbn=VALUES(prd_sale_kbn) + ,jsk_proc_kbn=VALUES(jsk_proc_kbn) + ,start_date=VALUES(start_date) + ,end_date=VALUES(end_date) + ,dsp_odr=VALUES(dsp_odr) + ,rec_sts_kbn=VALUES(rec_sts_kbn) + ,ins_dt=VALUES(ins_dt) + ,upd_dt=VALUES(upd_dt) ,dwh_upd_dt=SYSDATE() ; """) diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py index 1912de73..16d5db0c 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py @@ -749,7 +749,7 @@ class TestImportFileToDb: self.batch_context.is_vjsk_stock_import_day = True self.db.execute(f"truncate table {table_name_src}") - # assertion1 (insert 4row) + # assertion1 (insert 6row) # 処理実行 target_dict = { @@ -765,7 +765,7 @@ class TestImportFileToDb: # 突合から除外する項目 ignore_columns = ['dwh_upd_dt'] # orgテーブル結果が期待値通りかを突合 - assert_table_results(result_org, assert_list, ignore_columns) + assert_table_results(result_org, assert_list, ignore_columns, is_loaddata=True) # srcテーブル結果を取得 result_src = self.db.execute_select(f"select * from {table_name_src}") # 突合から除外する項目 @@ -789,18 +789,18 @@ class TestImportFileToDb: # 突合から除外する項目 ignore_columns = ['dwh_upd_dt'] # orgテーブル結果が期待値通りかを突合 - assert_table_results(result_org, assert_list, ignore_columns) + assert_table_results(result_org, assert_list, ignore_columns, is_loaddata=True) # srcテーブル結果(orgテーブル結果のPK値で一致するもの)を取得 result_src = self.db.execute_select( - f"select * from {table_name_src} s inner join {table_name_org} o on (s.prd_cd = o.prd_cd and s.sub_num = o.sub_num)") + f"select s.* from {table_name_src} s inner join {table_name_org} o on (s.prd_cd = o.prd_cd and s.sub_num = o.sub_num)") # 突合から除外する項目 ignore_columns = ['dwh_upd_dt'] # srcテーブル結果が期待値通りかを突合 assert_table_results(result_src, assert_list, ignore_columns) - # srcテーブル結果のレコード件数 (insert 4row + update 2row + insert 2row = 6row) + # srcテーブル結果のレコード件数 (insert 6row + update 2row + insert 2row = 8row) result_src_count = self.db.execute_select(f"select count(*) from {table_name_src} ") - assert result_src_count[0]['count(*)'] == 6 + assert result_src_count[0]['count(*)'] == 8 # teardown diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304280000.tsv b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304280000.tsv index 9c4d4d86..98d9ba16 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304280000.tsv +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304280000.tsv @@ -3,3 +3,5 @@ "496201127" "0" "セロフェン 錠剤 50mg 30TAB" "" "F21206A0" "セロフェン 錠 50MG" "SEROPHENE TAB. 50 MG. (30)" "001" "セロフェン" "SP" "F003" "錠剤" "0000" "" "V009" "50mg" "P007" "30TAB" "30" "" "0" "0" "20070401" "20190930" "150" "0" "17-11-08 16:52:41" "19-09-19 11:42:45" "496300110" "2" "ゴナールエフ 皮下注ペン 300IU 1PEN" "" "F1990608" "ゴナールエフ皮下注ペン 300" "GONAL-F PEN 300IU (1) - JPN" "005" "セロスティム" "ST" "F005" "皮下注ペン" "0000" "" "V017" "300IU" "P011" "1PEN" "1" "" "0" "0" "20190501" "20190930" "100" "9" "19-04-23 16:35:36" "19-04-23 16:40:38" "496300127" "2" "ゴナールエフ 皮下注ペン 450IU 1PEN" "" "F19D0608" "ゴナールエフ皮下注ペン450" "Gonalef Pen 450 (1)" "008" "BDマイクロファインプラス" "MF" "F005" "皮下注ペン" "0000" "" "V018" "450IU" "P011" "1PEN" "1" "" "0" "0" "20190501" "20190930" "120" "9" "19-04-23 16:37:10" "19-04-23 16:40:54" +"496300128" "1" "ゴナールエフ 皮下注ペン 450IU 1PEN" "" "F19D0608" "ゴナールエフ皮下注ペン450" "Gonalef Pen 450 (1)" "008" "BDマイクロファインプラス" "MF" "F005" "皮下注ペン" "0000" "" "V018" "450IU" "P011" "1PEN" "1" "" "0" "0" "20190501" "20190930" "120" "9" "19-04-23 16:37:10" "19-04-23 16:40:54" +"496300128" "2" "ゴナールエフ 皮下注ペン 450IU 1PEN" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "1" "" "0" "0" "20190501" "20190930" "120" "9" "19-04-23 16:37:10" "19-04-23 16:40:54" diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304290000.tsv b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304290000.tsv index 29824385..8656b6c0 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304290000.tsv +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/phm_prd_mst_202304290000.tsv @@ -1,5 +1,5 @@ "prd_cd" "sub_no" "prd_nm" "prd_e_nm" "mkr_cd" "mkr_inf_1" "mkr_inf_2" "phm_itm_cd" "itm_nm" "itm_sht_nm" "form_cd" "form_nm" "vol_cd" "vol_nm" "cont_cd" "cont_nm" "pkg_cd" "pkg_nm" "cnv_num" "jsk_start_dt" "prd_sale_kbn" "jsk_proc_kbn" "start_dt" "end_dt" "dsp_odr" "rec_sts_kbn" "ins_dt" "upd_dt" -"496300110" "2" "ゴナールエフ 皮下注ペン 300IU 1PEN" "" "F1990608" "ゴナールエフ皮下注ペン 300" "GONAL-F PEN 300IU (1) - JPN" "005" "セロスティム" "ST" "F005" "皮下注ペン" "0000" "" "V017" "300IU" "P011" "1PEN" "1" "20230601" "0" "0" "20190501" "20190930" "100" "9" "19-04-23 16:35:36" "19-04-23 16:40:38" -"496300127" "2" "ゴナールエフ 皮下注ペン 450IU 1PEN" "" "F19D0608" "ゴナールエフ皮下注ペン450" "Gonalef Pen 450 (1)" "008" "BDマイクロファインプラス" "MF" "F005" "皮下注ペン" "0000" "" "V018" "450IU" "P011" "1PEN" "1" "20230602" "0" "0" "20190501" "20190930" "120" "9" "19-04-23 16:37:10" "19-04-23 16:40:54" +"496300128" "1" "ゴナールエフ 皮下注ペン 450IU 1PEN" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "1" "" "0" "0" "20190501" "20190930" "120" "9" "19-04-23 16:37:10" "19-04-23 16:40:54" +"496300128" "2" "ゴナールエフ 皮下注ペン 450IU 1PEN" "" "F19D0608" "ゴナールエフ皮下注ペン450" "Gonalef Pen 450 (1)" "008" "BDマイクロファインプラス" "MF" "F005" "皮下注ペン" "0000" "" "V018" "450IU" "P011" "1PEN" "1" "" "0" "0" "20190501" "20190930" "120" "9" "19-04-23 16:37:10" "19-04-23 16:40:54" "496300134" "2" "ゴナールエフ 皮下注ペン 900IU 1PEN" "" "F19B0608" "ゴナールエフ皮下注ペン900" "Gonalef Pen 900 (1)" "008" "BDマイクロファインプラス" "MF" "F005" "皮下注ペン" "0000" "" "V019" "900IU" "P011" "1PEN" "1" "20230603" "0" "0" "20190501" "20190930" "110" "9" "19-04-23 16:38:36" "19-04-23 16:41:05" "496301315" "0" "プロファシー 注射剤 5000IU 10VIAL" "" "F47706A0" "プロファシー 注 5000IU" "PROFASI M AMP. 5000 IU (10)" "002" "プロファシー" "PF" "F002" "注射剤" "0000" "" "V020" "5000IU" "P005" "10VIAL" "10" "20230604" "0" "0" "20070401" "20190930" "160" "0" "17-11-08 16:52:41" "19-09-19 11:42:45"