From 2d8d5c27c89cca28b8ee8e0f435f35f712458d60 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 29 Nov 2023 13:54:51 +0900 Subject: [PATCH] =?UTF-8?q?"com=5Fprefc=5Fmed=5Fsp=5Foutpat=5Fmapper?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com_prefc_med_sp_outpat_mapper.py | 46 +++++++++++-------- .../com_prefc_med_sp_outpat_insert.csv | 1 + .../expect_com_prefc_med_sp_outpat_insert.csv | 1 + 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py index 149b2c76..2a1ae3ca 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py @@ -1,6 +1,9 @@ -from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ - UltmarcTableMapper -from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_sp_outpat import ComPrefcMedSpOutpat +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import ( + UltmarcTableMapper, +) +from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_sp_outpat import ( + ComPrefcMedSpOutpat, +) class ComPrefcMedSpOutpatMapper(UltmarcTableMapper): @@ -73,15 +76,18 @@ class ComPrefcMedSpOutpatMapper(UltmarcTableMapper): def __init__(self, record: list[str], db) -> None: super().__init__(record, db, ComPrefcMedSpOutpat) - program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + program_name = __name__.split(".")[-1] # 当モジュール名(現行から変わっている) # モジュール名をクエリパラメータに設定 - self.query_parameter['program_name'] = program_name + self.query_parameter["program_name"] = program_name # 読み込んだレコード値もクエリパラメータに追加 - self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + self.query_parameter = { + **self.query_parameter, + **self.record.to_sql_parameter(), + } def make_query(self): # 『修正区分がB(修正)かつ追加削除区分が1(退職)』の場合、物理削除 - if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + if self.record.maint_flag == "B" and self.record.adddel_div == "1": self.queries.append(self.PHYSICAL_DELETE_QUERY) return @@ -90,10 +96,16 @@ class ComPrefcMedSpOutpatMapper(UltmarcTableMapper): return def __make_upsert_query(self): + # 修正のレコードだった場合はNULLに変換する + if self.record.sectsub_cd == "@": + self.query_parameter["sectsub_cd"] = None + # レコードの存在確認 - record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + record_count = self.db.execute_select( + self.RECORD_EXISTS_QUERY, self.query_parameter + ) # 存在しない場合はInsert - if record_count[0]['count_num'] == 0: + if record_count[0]["count_num"] == 0: return self.INSERT_QUERY # 存在する場合ではUpdate @@ -104,22 +116,20 @@ class ComPrefcMedSpOutpatMapper(UltmarcTableMapper): # ソートキー if len(self.record.sort_key) > 0: - set_clauses.append('sort_key = :sort_key') + set_clauses.append("sort_key = :sort_key") # 分類補助コード if len(self.record.sectsub_cd) > 0: - set_clauses.append('sectsub_cd = :sectsub_cd') - if self.record.sectsub_cd == '@': - self.query_parameter['sectsub_cd'] = None + set_clauses.append("sectsub_cd = :sectsub_cd") + if self.record.sectsub_cd == "@": + self.query_parameter["sectsub_cd"] = None - update_columns = ','.join(set_clauses) + update_columns = ",".join(set_clauses) # 何も更新項目が無い場合はNoneとする(更新処理は行わない) if len(update_columns) == 0: return None else: # 末尾にカンマを付けてSET句を完成させる - update_columns += ',' - update_query = self.UPDATE_QUERY.format( - update_columns=update_columns - ) + update_columns += "," + update_query = self.UPDATE_QUERY.format(update_columns=update_columns) return update_query diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv index ae233f9b..49cdc733 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv @@ -1,3 +1,4 @@ +"136","99","9999999","88","A","あいうえお","2","20141113","20141114","123","@" "136","00","9901649","","A","テスト 小児 内分泌・腎臓外来","2","20141113","20141114","5","030" "136","00","9904439","","A","テスト アルコール症専門外来","2","20141113","20141114","1","019" "136","00","9904439","","A","テスト メンタルヘルス専門外来","2","20141113","20141114","7","019" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv index 26abd18a..86c95e0f 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv @@ -1,4 +1,5 @@ "dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"99999999988","あいうえお","123","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sp_outpat_mapper","2017/10/08 20:57:12","com_prefc_med_sp_outpat_mapper" "009901649","テスト 小児 内分泌・腎臓外来","5","030","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" "009904439","テスト アルコール症専門外来","1","019","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" "009904439","テスト メンタルヘルス専門外来","7","019","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"