From 5c7489ebe566d98f23a6ff6dbe393557cfae39bc Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Sat, 16 Sep 2023 14:46:41 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=B8=E5=9C=A8=E5=BA=AB=E3=81=AE?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/batch/vjsk/vjsk_recv_file_mapper.py | 114 +++++++++--------- .../batch/vjsk/vjsk_load/test_vjsk_load.py | 12 +- .../testdata/stock_slip_data_202304280000.tsv | 2 + .../testdata/stock_slip_data_202304290000.tsv | 6 +- 4 files changed, 68 insertions(+), 66 deletions(-) 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 74d719cc..d32f281f 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 @@ -149,7 +149,7 @@ class VjskReceiveFileMapper: ,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.slip_mgt_num ,t.row_num ,src05.convert_empty_to_null(t.hsdn_ymd) ,src05.convert_empty_to_null(t.exec_dt) @@ -1124,67 +1124,67 @@ class VjskReceiveFileMapper: ,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 + 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_sto_place) + ,src05.convert_empty_to_null(t.rec_stock_ymd) + ,src05.convert_empty_to_null(t.rec_comm_cd) + ,src05.convert_empty_to_null(t.rec_qty) + ,src05.convert_empty_to_null(t.rec_stock_no_sign) + ,src05.convert_empty_to_null(t.rec_jan_cd) + ,src05.convert_empty_to_null(t.free_item) + ,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) ,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 + ,src05.convert_empty_to_null(t.exec_dt) + ,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.rec_sts_kbn) ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.ins_usr + ,src05.convert_empty_to_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 + rec_data=VALUES(rec_data) + ,rec_whs_cd=VALUES(rec_whs_cd) + ,rec_whs_sub_cd=VALUES(rec_whs_sub_cd) + ,rec_sto_place=VALUES(rec_sto_place) + ,rec_stock_ymd=VALUES(rec_stock_ymd) + ,rec_comm_cd=VALUES(rec_comm_cd) + ,rec_qty=VALUES(rec_qty) + ,rec_stock_no_sign=VALUES(rec_stock_no_sign) + ,rec_jan_cd=VALUES(rec_jan_cd) + ,free_item=VALUES(free_item) + ,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) + ,exec_dt=VALUES(exec_dt) + ,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) + ,rec_sts_kbn=VALUES(rec_sts_kbn) + ,ins_dt=VALUES(ins_dt) + ,ins_usr=VALUES(ins_usr) ,dwh_upd_dt=SYSDATE() ; """) @@ -1303,7 +1303,7 @@ class VjskReceiveFileMapper: ,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.slip_mgt_num ,t.row_num ,src05.convert_empty_to_null(t.hsdn_ymd) ,src05.convert_empty_to_null(t.exec_dt) 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 3152bf5e..109ac100 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 @@ -168,7 +168,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 = { @@ -184,7 +184,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}") # 突合から除外する項目 @@ -208,18 +208,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.slip_mgt_num = o.slip_mgt_num)") + f"select s.* from {table_name_src} s inner join {table_name_org} o on (s.slip_mgt_num = o.slip_mgt_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/stock_slip_data_202304280000.tsv b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304280000.tsv index cc6c3902..4c4d9c43 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304280000.tsv +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304280000.tsv @@ -3,3 +3,5 @@ "D4625301026 2302284963001270000040000001ゴナールエフヒカチユウペン450 1トウ40 " "253" "01" "026 " "230228" "496300127" "000004" "0" "0000" "01ゴナールエフヒカチユウペン450 1トウ40 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000060" "60" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" "D4625301026 2302284963001340000220000001ゴナールエフヒカチユウペン900 1トウ40 " "253" "01" "026 " "230228" "496300134" "000022" "0" "0000" "01ゴナールエフヒカチユウペン900 1トウ40 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000061" "61" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" "D4625301026 2302284963004170000500000001オビドレルヒカチユウシリンジ250MCG 140 " "253" "01" "026 " "230228" "496300417" "000050" "0" "0000" "01オビドレルヒカチユウシリンジ250MCG 140 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000062" "62" "202303142041" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "23-03-14 20:41:57" "SYSTEM" +"" "" "" "" "" "" "" "" "" "" "" "" "" "J2023031400000063" "63" "" "" "" "" "" "" "" "" "" "" "" "" "23-03-14 20:41:57" "" +"D4625301026 2302284963004170000500000001オビドレルヒカチユウシリンジ250MCG 140 " "253" "01" "026 " "230228" "496300417" "000050" "0" "0000" "01オビドレルヒカチユウシリンジ250MCG 140 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000064" "64" "202303142041" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "23-03-14 20:41:57" "SYSTEM" \ No newline at end of file diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304290000.tsv b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304290000.tsv index 0b180c24..bd43cb40 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304290000.tsv +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/stock_slip_data_202304290000.tsv @@ -1,5 +1,5 @@ "rec_data" "rec_whs_cd" "rec_whs_sub_cd" "rec_sto_place" "rec_stock_ymd" "rec_comm_cd" "rec_amt" "rev_stok_no_sign" "rev_jan_cd" "rec_free_item" "rec_ymd" "sale_data_cat" "slip_file_nm" "slip_mgt_no" "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" -"DAY2-301026 2302284963001340000220000001ゴナールエフヒカチユウペン900 1トウ40 " "253" "01" "026 " "230228" "496300134" "000022" "0" "0000" "01ゴナールエフヒカチユウペン900 1トウ40 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000061" "61" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" -"DAY2-301026 2302284963004170000500000001オビドレルヒカチユウシリンジ250MCG 140 " "253" "01" "026 " "230228" "496300417" "000050" "0" "0000" "01オビドレルヒカチユウシリンジ250MCG 140 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000062" "62" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" "DAY2-301027 2302284963001100000020000001ゴナールエフヒカチユウペン300 1トウ40 " "253" "01" "027 " "230228" "496300110" "000002" "0" "0000" "01ゴナールエフヒカチユウペン300 1トウ40 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000063" "63" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" -"DAY2-301027 2302284963001270000110000001ゴナールエフヒカチユウペン450 1トウ40 " "253" "01" "027 " "230228" "496300127" "000011" "0" "0000" "01ゴナールエフヒカチユウペン450 1トウ40 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000064" "64" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" +"" "" "" "" "" "" "" "" "" "" "" "" "" "J2023031400000064" "64" "" "" "" "" "" "" "" "" "" "" "" "" "23-03-14 20:41:57" "" +"DAY2-301026 2302284963001340000220000001ゴナールエフヒカチユウペン900 1トウ40 " "253" "01" "026 " "230228" "496300134" "000022" "0" "0000" "01ゴナールエフヒカチユウペン900 1トウ40 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000065" "65" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" +"DAY2-301026 2302284963004170000500000001オビドレルヒカチユウシリンジ250MCG 140 " "253" "01" "026 " "230228" "496300417" "000050" "0" "0000" "01オビドレルヒカチユウシリンジ250MCG 140 " "20230314" "J" "VJSK-STOCK_J_MERCK_2023031400.txt" "J2023031400000066" "66" "202303142041" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "23-03-14 20:41:57" "SYSTEM" \ No newline at end of file