diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py index 901d2b9b..a7146b42 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py @@ -4,7 +4,7 @@ from src.batch.ultmarc.utmp_tables.tables.com_inst import ComInst class ComInstMapper(UltmarcTableMapper): - """レイアウト区分101: COM_施設 登録処理: TODO""" + """レイアウト区分101: COM_施設 登録処理""" # レコード存在確認SQL(COM_施設) RECORD_EXISTS_QUERY = """\ @@ -487,6 +487,7 @@ class ComInstMapper(UltmarcTableMapper): def __make_delete_insert_trt_query(self): # 施設診療科目の削除挿入 + # 診療科目(集合項目)のいずれも入力がない場合、何もしない if sum(len(item) for item in self.record.medsbj_code) == 0: return @@ -500,13 +501,14 @@ class ComInstMapper(UltmarcTableMapper): for medsbj_code in self.record.medsbj_code: if len(medsbj_code) > 0: insert_query = self.INSERT_INST_TRT_QUERY.format( - trt_course_cd="'" + medsbj_code + "'" + trt_course_cd=f"'{medsbj_code}'" ) self.queries.append(insert_query) return def __make_upsert_spcare_query(self): # 特養医務室の追加、更新 + # DCF親施設コードがない場合、何もしない if (self.record.dcf_prnt_inst_code == "00" or len(self.record.dcf_prnt_inst_code) == 0): return diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py index 954afa88..167480d2 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py @@ -136,11 +136,10 @@ class ComInst(UltmarcTable): self.close_year_month = record[45].strip() # 診療科目1~60(csvカラム番号 46 ~ 105) - num = 46 + # rangeの第2引数の数字はループに含まれないため、+1を指定する self.medsbj_code = [] - for i in range(0, 60): - self.medsbj_code.append(str(record[num])) - num += 1 + for i in range(46, 106): + self.medsbj_code.append(str(record[i])) self.hp_kind_code = record[106].strip() self.reexam_flag = record[107].strip() @@ -158,7 +157,7 @@ class ComInst(UltmarcTable): self.bed_num_gen2 = record[119].strip() self.bed_num_rest = record[120].strip() - # smallint対策 + # smallint型のカラム値は、空文字で渡ってきた場合はNULLに変換する self.bed_num = self.bed_num if len(self.bed_num) > 0 else None self.bed_num_sum = self.bed_num_sum if len(self.bed_num_sum) > 0 else None self.bed_num_psy = self.bed_num_psy if len(self.bed_num_psy) > 0 else None diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py index 7575319c..84fc58e8 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py @@ -28,13 +28,13 @@ class TestComInstMapper: # setup self.db = database self.db.connect() - self.db.begin() + # self.db.begin() # testing yield # teardown - self.db.rollback() + # self.db.rollback() self.db.disconnect() def test_insert_record(self): @@ -280,7 +280,7 @@ class TestComInstMapper: actual_data_list.append(sp_trt_data[0]) # 期待値検査 - ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) # 動的日付項目の個別確認 line_number = 0 @@ -300,7 +300,7 @@ class TestComInstMapper: actual_data_list = self.db.execute_select(actual_select_sql) # 期待値検査 - ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) # 動的日付項目の個別確認 line_number = 0 @@ -435,7 +435,7 @@ class TestComInstMapper: actual_data_list.append(sp_trt_data[0]) # 期待値検査 - ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) # 動的日付項目の個別確認 line_number = 0 @@ -454,14 +454,14 @@ class TestComInstMapper: actual_select_sql = f"SELECT * FROM src05.com_spcare_med_office_dat WHERE dcf_chld_inst_cd IN ({','.join(primary_keys)})" actual_data_list = self.db.execute_select(actual_select_sql) # 期待値検査 - ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) # 動的日付項目の個別確認 line_number = 0 for actual_row, expect_row in zip(actual_data_list, expect_data_list): line_number += 1 for actual_col_name, expect_col_name in zip(actual_row, expect_row): - if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + if actual_col_name in ignore_columns: if expect_row[expect_col_name] is None: assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' else: