From 59b2ac98a738df7570751fb08fc6dde2e1eb7060 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Sat, 16 Sep 2023 16:54:25 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20V=E5=8D=B8=E5=BE=97=E6=84=8F=E5=85=88?= =?UTF-8?q?=E6=83=85=E5=A0=B1=E3=83=9E=E3=82=B9=E3=82=BF=E3=81=AE=E5=AF=BE?= =?UTF-8?q?=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 | 50 +++++++++---------- .../batch/vjsk/vjsk_load/test_vjsk_load.py | 20 ++++---- .../whs_customer_mst_202304280000.tsv | 2 + .../whs_customer_mst_202304290000.tsv | 4 +- 4 files changed, 39 insertions(+), 37 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 ae1f8529..e5199f38 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 @@ -1004,37 +1004,37 @@ class VjskReceiveFileMapper: ,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 + ,medaca_common.convert_empty_to_null(t.whs_org_cd) + ,medaca_common.convert_empty_to_null(t.src_org_cd) + ,medaca_common.convert_empty_to_null(t.name) + ,medaca_common.convert_empty_to_null(t.kn_name) + ,medaca_common.convert_empty_to_null(t.addr) + ,medaca_common.convert_empty_to_null(t.kn_addr) + ,medaca_common.convert_empty_to_null(t.postal_cd) + ,medaca_common.convert_empty_to_null(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) + whs_cd=VALUES(whs_cd) + ,whs_sub_cd=VALUES(whs_sub_cd) + ,customer_cd=VALUES(customer_cd) + ,sub_num=VALUES(sub_num) + ,start_date=VALUES(start_date) + ,end_date=VALUES(end_date) + ,whs_org_cd=VALUES(whs_org_cd) + ,src_org_cd=VALUES(src_org_cd) + ,name=VALUES(name) + ,kn_name=VALUES(kn_name) + ,addr=VALUES(addr) + ,kn_addr=VALUES(kn_addr) + ,postal_cd=VALUES(postal_cd) + ,tel_num=VALUES(tel_num) + ,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 87510db7..f6616bf4 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 @@ -534,7 +534,7 @@ class TestImportFileToDb: # srcテーブル結果が期待値通りかを突合 assert_table_results(result_src, assert_list, ignore_columns) - # srcテーブル結果のレコード件数 (insert 4row + update 2row + insert 2row = 8row) + # 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(*)'] == 8 @@ -605,7 +605,7 @@ class TestImportFileToDb: # srcテーブル結果が期待値通りかを突合 assert_table_results(result_src, assert_list, ignore_columns, force_cast_to_str_columns) - # srcテーブル結果のレコード件数 (insert 4row + update 2row + insert 2row = 8row) + # 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(*)'] == 8 @@ -736,7 +736,7 @@ class TestImportFileToDb: # srcテーブル結果が期待値通りかを突合 assert_table_results(result_src, assert_list, ignore_columns) - # srcテーブル結果のレコード件数 (insert 4row + update 2row + insert 2row = 8row) + # 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(*)'] == 8 @@ -877,7 +877,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 = { @@ -893,7 +893,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}") # 突合から除外する項目 @@ -917,18 +917,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.whs_cd = o.whs_cd and s.whs_sub_cd = o.whs_sub_cd and s.customer_cd = o.customer_cd and s.sub_num = o.sub_num)") + f"select s.* from {table_name_src} s inner join {table_name_org} o on (s.whs_cd = o.whs_cd and s.whs_sub_cd = o.whs_sub_cd and s.customer_cd = o.customer_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 @@ -1116,7 +1116,7 @@ class TestImportFileToDb: # srcテーブル結果が期待値通りかを突合 assert_table_results(result_src, assert_list, ignore_columns) - # srcテーブル結果のレコード件数 (insert 4row + update 2row + insert 2row = 8row) + # 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(*)'] == 8 diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304280000.tsv b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304280000.tsv index 0c23e674..5e0410dc 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304280000.tsv +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304280000.tsv @@ -3,3 +3,5 @@ "006" "01" "1005400000" "0" "20000101" "99991231" "12" "1211C3415515" "医療法人 愛恵会 佐世保愛恵病院       " "イリヨウホウジンアイケイカイサセボアイケイビ" "長崎県 佐世保市瀬戸越4丁目 2−15             " "ナガサキケン サセボシセトゴシ 4チヨウメ 2-15" "8570134" "0956493335" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" "006" "01" "1007200000" "0" "20000101" "99991231" "11" "1131A2407312" "医療法人 山祇診療所             " "イリヨウホウジンヤマズミシンリヨウジヨ" "長崎県 佐世保市山祇町 19−36               " "ナガサキケン サセボシヤマズミチョウ" "8570822" "0956313633" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" "006" "01" "1007800000" "0" "20000101" "99991231" "11" "1121A2402213" "医療法人道仁会 品川医院           " "イリヨウホウジンドウジンカイ シナガワイイン" "長崎県 佐世保市柚木町2188                 " "ナガサキケン サセボシユノキチヨウ 2188" "8570112" "0956460005" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" +"006" "01" "1009200000" "0" "20000101" "99991231" "" "" "" "" "" "" "" "" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" +"006" "01" "1009300000" "0" "20000101" "99991231" "11" "1121A2224212" "山口医院2                  " "ヤマグチイイン" "長崎県 佐世保市春日町29−14                " "ナガサキケン サセボシカスガチヨウ29-14" "8570011" "0956228610" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304290000.tsv b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304290000.tsv index e5c22a27..3b15a520 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304290000.tsv +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/whs_customer_mst_202304290000.tsv @@ -1,5 +1,5 @@ "whs_cd" "whs_sub_cd" "customer_cd" "sub_no" "start_dt" "end_dt" "org_cd" "src_org_cd" "nm" "kn_nm" "addr" "kn_addr" "zip_cd" "tel_no" "rec_sts_kbn" "ins_dt" "upd_dt" -"006" "01" "1007200000" "0" "20000101" "99991231" "11" "1131A2407312" "医療法人 山祇診療所2            " "イリヨウホウジンヤマズミシンリヨウジヨ" "長崎県 佐世保市山祇町 19−36               " "ナガサキケン サセボシヤマズミチョウ" "8570822" "0956313633" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" -"006" "01" "1007800000" "0" "20000101" "99991231" "11" "1121A2402213" "医療法人道仁会 品川医院2          " "イリヨウホウジンドウジンカイ シナガワイイン" "長崎県 佐世保市柚木町2188                 " "ナガサキケン サセボシユノキチヨウ 2188" "8570112" "0956460005" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" +"006" "01" "1009200000" "0" "20000101" "99991231" "11" "1121A2224212" "山口医院2                  " "ヤマグチイイン" "長崎県 佐世保市春日町29−14                " "ナガサキケン サセボシカスガチヨウ29-14" "8570011" "0956228610" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" +"006" "01" "1009300000" "0" "20000101" "99991231" "" "" "" "" "" "" "" "" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" "006" "01" "1008000000" "0" "20000101" "99991231" "11" "1131A2283316" "北原整形外科医院2              " "キタハラセイケイゲカ イイン" "長崎県 佐世保市瀬戸越町4丁目1298−1           " "ナガサキケン サセボシセトゴシチヨウ 1298-1" "8570135" "0956497773" "0" "23-04-14 11:53:14" "23-04-14 11:53:14" "006" "01" "1009100000" "0" "20000101" "99991231" "11" "1121A2224212" "山口医院2                  " "ヤマグチイイン" "長崎県 佐世保市春日町29−14                " "ナガサキケン サセボシカスガチヨウ29-14" "8570011" "0956228610" "0" "23-04-14 11:53:14" "23-04-14 11:53:14"