From 7f7d829e3d3b2b463a29f4b53d6b7a1d8d6bd53e Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Thu, 6 Apr 2023 11:01:53 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8C=BB=E5=B8=AB=E5=8B=A4=E5=8B=99?= =?UTF-8?q?=E5=85=88=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AE=E5=8F=96?= =?UTF-8?q?=E3=82=8A=E8=BE=BC=E3=81=BF=E8=BF=BD=E5=8A=A0(=E5=8B=95?= =?UTF-8?q?=E4=BD=9C=E7=A2=BA=E8=AA=8D=E4=B8=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/batch/common/batch_config.py | 10 + .../src/batch/datachange/emp_chg_inst_lau.py | 8 +- .../table_mapper/concrete/com_alma_mapper.py | 8 +- .../concrete/com_dr_wrkplace_mapper.py | 241 ++++++++++++++++++ .../concrete/com_hamtec_mapper.py | 8 +- .../table_mapper/ultmarc_table_mapper.py | 17 +- .../ultmarc/utmp_tables/tables/com_alma.py | 6 +- .../utmp_tables/tables/com_dr_wrkplace.py | 49 ++++ .../ultmarc/utmp_tables/tables/com_hamtec.py | 8 +- .../ultmarc_table_mapper_factory.py | 5 +- ecs/jskult-batch-daily/src/jobctrl_daily.py | 13 +- 11 files changed, 345 insertions(+), 28 deletions(-) create mode 100644 ecs/jskult-batch-daily/src/batch/common/batch_config.py create mode 100644 ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py create mode 100644 ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py diff --git a/ecs/jskult-batch-daily/src/batch/common/batch_config.py b/ecs/jskult-batch-daily/src/batch/common/batch_config.py new file mode 100644 index 00000000..cfaef528 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/common/batch_config.py @@ -0,0 +1,10 @@ +class BatchConfig: + # 処理日(yyyy/mm/dd形式) + syor_date: str + __instance = None + + @classmethod + def get_instance(cls): + if cls.__instance == None: + cls.__instance = cls() + return cls.__instance diff --git a/ecs/jskult-batch-daily/src/batch/datachange/emp_chg_inst_lau.py b/ecs/jskult-batch-daily/src/batch/datachange/emp_chg_inst_lau.py index 252b6e17..ed13f855 100644 --- a/ecs/jskult-batch-daily/src/batch/datachange/emp_chg_inst_lau.py +++ b/ecs/jskult-batch-daily/src/batch/datachange/emp_chg_inst_lau.py @@ -1,18 +1,20 @@ from src.batch.batch_functions import get_syor_date_as_date_format, logging_sql +from src.batch.common.batch_config import BatchConfig from src.db.database import Database from src.error.exceptions import BatchOperationException from src.logging.get_logger import get_logger from src.time.elapsed_time import ElapsedTime logger = get_logger('48-施設担当者マスタ洗替') +batch_config = BatchConfig.get_instance() def batch_process(): db = Database.get_instance() db.connect() logger.info('##########################') logger.info('START Changing Employee in charge of institution PGM.') - # 日付テーブルを取得 - syor_date = get_syor_date_as_date_format(db) + # 業務日付を取得 + syor_date = batch_config.syor_date # `emp_chg_inst_lau`をTruncate truncate_emp_chg_inst_lau(db) # emp_chg_inst から、`emp_chg_inst_lau`へInsert @@ -153,7 +155,7 @@ def update_dcf_inst_merge_from_emp_chg_inst_lau(db: Database, syor_date: str): muko_flg = '0' AND dcf_inst_cd_new IS NOT NULL AND enabled_flg = 'Y' - AND STR_TO_DATE(CONCAT(tekiyo_month, '01'), '%Y%m%d') <= :syor_date -- TODO: tekiyo_monthはいっぴにする + AND STR_TO_DATE(CONCAT(tekiyo_month, '01'), '%Y%m%d') <= :syor_date """, {'syor_date': syor_date} ) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py index 52008ec5..fc137ea7 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py @@ -13,7 +13,7 @@ class ComAlmaMapper(UltmarcTableMapper): WHERE alma_cd = :alma_cd """ - # データ登録・更新用のSQL + # データ登録用SQL INSERT_QUERY = """\ INSERT INTO src05.com_alma ( @@ -65,9 +65,9 @@ class ComAlmaMapper(UltmarcTableMapper): super().__init__(record, db, ComAlma) program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) # モジュール名をクエリパラメータに設定 - self.query_parameters[0]['program_name'] = program_name + self.query_parameter['program_name'] = program_name # 読み込んだレコード値もクエリパラメータに追加 - self.query_parameters[0] = {**self.query_parameters[0], **self.record.to_sql_parameter()} + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} def make_query(self): # 修正区分がC(削除)の場合、論理削除 @@ -81,7 +81,7 @@ class ComAlmaMapper(UltmarcTableMapper): def __make_upsert_query(self): # レコードの存在確認 - record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameters[0]) + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) # 存在しない場合はInsert if record_count[0]['count_num'] == 0: return self.INSERT_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py new file mode 100644 index 00000000..f058e1c4 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py @@ -0,0 +1,241 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_dr_wrkplace import ComDrWrkplace + + +class ComDrWrkplaceMapper(UltmarcTableMapper): + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_dr_wrkplace + WHERE + dcf_pcf_dr_cd = :full_dcfdr_code + AND dcf_dsf_inst_cd = :full_hp_code + """ + # COM_所属部課から所属部科カナと所属部科名を取得するSQL + GET_NAME_FROM_COM_BLNG_SEC_QUERY = """\ + SELECT + blng_sec_kana, + blng_sec_name + FROM + src05.com_blng_sec + WHERE + blng_sec_cd = :sectcode + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_dr_wrkplace ( + dcf_dsf_inst_cd, + dcf_pcf_dr_cd, + blng_sec_cd, + post_cd, + identity_cd, + aply_start_ymd, + blng_sec_name_kana, + blng_sec_name, + notdm_flg, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :full_hp_code, + :full_dcfdr_code, + :sectcode, + :postcode, + :identitycode, + :syor_date, + :sectname_kana, + :sectname, + :notdm_flg, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # 更新用SQL + UPDATE_QUERY = """\ + UPDATE src05.com_dr_wrkplace + SET + {update_columns} + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + DCF_PCF_DR_CD= :full_dcfdr_code + AND DCF_DSF_INST_CD = :full_hp_code + """ + + # 更新・削除の場合に該当のデータを履歴テーブルに退避するSQL + TO_HISTORY_QUERY = """\ + INSERT INTO src05.com_dr_wrkplace_his ( + dcf_dsf_inst_cd, + dcf_pcf_dr_cd, + blng_sec_cd, + post_cd, + identity_cd, + aply_start_ymd, + blng_sec_name_kana, + blng_sec_name, + notdm_flg, + aply_end_ymd, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + SELECT + dcf_dsf_inst_cd, + dcf_pcf_dr_cd, + ( + CASE + WHEN blng_sec_cd = '' THEN '9999' + ELSE blng_sec_cd + END + ) AS blng_sec_cd, + ( + CASE + WHEN post_cd = '' THEN '999' + ELSE post_cd + END + ) AS post_cd, + ( + CASE + WHEN identity_cd = '' THEN '999' + ELSE identity_cd + END + ) AS identity_cd, + DATE_FORMAT(aply_start_ymd, '%Y%m%d'), + blng_sec_name_kana, + blng_sec_name, + notdm_flg, + ( + CASE + WHEN DATE_FORMAT(aply_start_ymd, '%Y%m%d') > DATE_FORMAT(STR_TO_DATE(:syor_date, '%Y%m%d'), '%Y%m%d') -1 THEN DATE_FORMAT(aply_start_ymd, '%Y%m%d') + ELSE DATE_FORMAT(STR_TO_DATE(:syor_date, '%Y%m%d'), '%Y%m%d') -1 + END + ) AS aply_end_ymd, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + FROM + src05.com_dr_wrkplace + WHERE + dcf_pcf_dr_cd = :full_dcfdr_code + AND dcf_dsf_inst_cd = :full_hp_code + AND aply_start_ymd < :syor_date + """ + + # 退職レコードの場合、物理削除するSQL + PHYSICAL_DELETE_FOR_RETIREMENT_QUERY = """\ + DELETE FROM src05.com_dr_wrkplace + WHERE + dcf_pcf_dr_cd = :full_dcfdr_code + AND dcf_dsf_inst_cd = :full_hp_code + """ + + record: ComDrWrkplace + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComDrWrkplace) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 所属部科を取得し、所属部科カナと所属部科名を設定する + self.__set_sect_name_and_sect_name_kana() + # 追加/更新クエリを生成 + # 履歴へのレコード登録もあるため、リストで返る + self.queries = self.__make_queries() + return + + def __set_sect_name_and_sect_name_kana(self): + # 所属部科を取得し、所属部科カナと所属部科名を設定する + com_blng_sec_records = self.db.execute_select(self.GET_NAME_FROM_COM_BLNG_SEC_QUERY, self.query_parameter) + if len(com_blng_sec_records) == 0: + return + # 必ず1件 + com_blng_sec_record = com_blng_sec_records[0] + if com_blng_sec_record['blig_sec_kane'] != '' and com_blng_sec_record['blig_sec_kane'] is not None: + self.record.sectname_kana = com_blng_sec_record['blig_sec_kane'] + + if com_blng_sec_record['blig_sec_name'] != '' and com_blng_sec_record['blig_sec_name'] is not None: + self.record.sectname = com_blng_sec_record['blig_sec_name'] + + def __make_queries(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return [self.INSERT_QUERY] + + # 存在する場合はUpdate + # 予備/退職異動区分が1(削除:退職)の場合、退職済みのレコードとして処理 + if self.record.drretflag == '1': + # 履歴への移動と、退職レコードの物理削除 + return [self.TO_HISTORY_QUERY, self.PHYSICAL_DELETE_FOR_RETIREMENT_QUERY] + + # 履歴への移動+更新クエリ生成 + return self.__make_update_query() + + def __make_update_query(self): + make_history_query = None + # 履歴レコード作成判断となる、UPDATE SET句を作成 + set_clauses = self.__make_update_columns_with_historical() + # 何かしら更新がある場合、履歴作成クエリを作成 + if len(set_clauses) != 0: + # DM不可フラグの値をセット + # 履歴レコード作成判断とならないため、後から設定 + if self.record.notdm_flg != '': + set_clauses.append('notdm_flg = :notdm_flg') + self.query_parameter['notdm_flg'] = self.record.sectname if self.record.sectcode != '@' else 'NULL' + + make_history_query = self.TO_HISTORY_QUERY + + update_query = self.UPDATE_QUERY.format( + update_columns=','.join(set_clauses) + ) + + return [make_history_query, update_query] + + def __make_update_columns_with_historical(self): + # 履歴レコードの作成有無を判断するカラムの更新設定 + # DM不可フラグは、履歴レコードの作成判断に使わないため、この関数の外で判定する + set_clauses = [] + # 役職コード + if self.record.postcode != '': + set_clauses.append('post_cd = :postcode') + self.query_parameter['postcode'] = self.record.postcode if self.record.postcode != '@' else '' + # 大学順位 + if self.record.identitycode != '': + set_clauses.append('identity_cd = :identitycode') + self.query_parameter['identitycode'] = self.record.identitycode if self.record.identitycode != '@' else '' + # 所属部科(集合項目) + if self.record.sectcode != '': + set_clauses.append('blng_sec_cd = :sectcode') + set_clauses.append('blng_sec_name_kana = :sectname_kana') + set_clauses.append('blng_sec_name = :sectname') + self.query_parameter['sectcode'] = self.record.sectcode if self.record.sectcode != '@' else '9999' + self.query_parameter['sectname_kana'] = self.record.sectname_kana if self.record.sectcode != '@' else 'NULL' + # 全角文字なので、全角@が連携されるパターンがある + self.query_parameter['sectname'] = self.record.sectname if self.record.sectcode != '@' else 'NULL' + + # 何かしら更新がある場合、適用開始日をセットする + if len(set_clauses) != 0: + # 処理日はパラメータに設定済み + set_clauses.append("aply_start_ymd = DATE_FORMAT(:syor_date, '%Y%m%d')") + + return set_clauses diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hamtec_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hamtec_mapper.py index 1221965a..10c4f51d 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hamtec_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hamtec_mapper.py @@ -13,7 +13,7 @@ class ComHamtecMapper(UltmarcTableMapper): WHERE hamtec_cd = :hamtec_cd """ - # データ登録・更新用のSQL + # データ登録用SQL INSERT_QUERY = """\ INSERT INTO src05.com_hamtec ( @@ -68,9 +68,9 @@ class ComHamtecMapper(UltmarcTableMapper): super().__init__(record, db, ComHamtec) program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) # モジュール名をクエリパラメータに設定 - self.query_parameters[0]['program_name'] = program_name + self.query_parameter['program_name'] = program_name # 読み込んだレコード値もクエリパラメータに追加 - self.query_parameters[0] = {**self.query_parameters[0], **self.record.to_sql_parameter()} + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} def make_query(self): # 修正区分がC(削除)の場合、論理削除 @@ -84,7 +84,7 @@ class ComHamtecMapper(UltmarcTableMapper): def __make_upsert_query(self): # レコードの存在確認 - record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameters[0]) + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) # 存在しない場合はInsert if record_count[0]['count_num'] == 0: return self.INSERT_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/ultmarc_table_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/ultmarc_table_mapper.py index 80f74f04..a633d9fa 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/ultmarc_table_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/ultmarc_table_mapper.py @@ -1,15 +1,18 @@ from abc import ABCMeta, abstractmethod from datetime import datetime +from src.batch.common.batch_config import BatchConfig from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable from src.db.database import Database +# 処理日を使用するために、configを使用 +batch_config = BatchConfig.get_instance() class UltmarcTableMapper(metaclass=ABCMeta): record: UltmarcTable db: Database queries: list[str] - query_parameters: list[dict] + query_parameter: dict def __init__(self, record: list[str], db: Database, table_class: type[UltmarcTable]) -> None: self.record = table_class(record) @@ -22,10 +25,12 @@ class UltmarcTableMapper(metaclass=ABCMeta): # クエリリストを初期化 self.queries = [] # 共通クエリパラメータを設定 - self.query_parameters = [{ + self.query_parameter = { 'execute_date_str_ymd': execute_date_str_ymd, - 'execute_datetime': execute_datetime - }] + 'execute_datetime': execute_datetime, + # バッチ共通設定から処理日を取得 + 'syor_date': batch_config.syor_date + } @abstractmethod def make_query(self): @@ -35,8 +40,8 @@ class UltmarcTableMapper(metaclass=ABCMeta): if len(self.queries) == 0: raise Exception('make_queryを呼び出してから実行してください') - for i, query in enumerate(self.queries): + for query in self.queries: if query is None: continue - self.db.execute(query, self.query_parameters[i]) + self.db.execute(query, self.query_parameter) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma.py index 0ea65397..07d2af8f 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma.py @@ -2,7 +2,7 @@ from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable class ComAlma(UltmarcTable): - + """COM_出身校""" maint_flag: str # 修正区分 alma_cd: str # 出身校コード alma: str # 出身校 @@ -10,5 +10,5 @@ class ComAlma(UltmarcTable): def __init__(self, record: list[str]): super().__init__(record) self.maint_flag = record[2] - self.alma_cd = record[1] - self.alma = record[5] + self.alma_cd = record[1] + self.alma = record[5] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py new file mode 100644 index 00000000..ec501438 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py @@ -0,0 +1,49 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComDrWrkplace(UltmarcTable): + """COM_医師勤務先""" + maint_flag: str # 修正区分 + dcfdr_id: str # 個人コード(ID) + dcfdr_code: str # 個人コード(個人コード) + dcfdr_yobi: str # 個人コード(予備) + hp_id: str # 施設コード(ID) + hp_code: str # 施設コード(施設コード) + hp_yobi: str # 施設コード(予備) + drretflag: str # 予備/退職異動区分 + maintdate: str # メンテナンス年月日 + trndate: str # 予備/転送年月日 + postcode: str # 役職コード + identitycode: str # 大学職位 + sectcode: str # 所属部科コード + sectname: str # 所属部科(漢字) + sectname_kana: str # 所属部科(カナ) + notdm_flg: str # DM不可フラグ + full_dcfdr_code: str # 個人ID+個人コード+個人コード予備 + full_hp_code: str # 施設ID+施設コード+施設コード予備 + + def __init__(self, record: list[str]): + super().__init__(record) + self.maintflag = record[4] + self.dcfdr_id = record[1] + self.dcfdr_code = record[2] + self.dcfdr_yobi = record[3].strip() + self.hp_id = record[5] + self.hp_code = record[6] + self.hp_yobi = record[7].strip() + self.drretflag = record[8] + self.maintdate = record[9] + self.trndate = record[10] + self.postcode = record[11].strip() + self.identitycode = record[12].strip() + + # 所属部科の集合項目 + self.sectcode = record[13].strip() + self.sectname = record[14].strip() + self.sectname_kana = record[15].strip() + + self.notdm_flg = record[16].strip() + + # ID、コード、予備を結合してフル桁コードに変換 + self.full_dcfdr_code = ''.join([self.dcfdr_id, self.dcfdr_code, self.dcfdr_yobi]) + self.full_hp_code = ''.join([self.hp_id, self.hp_code, self.hp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hamtec.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hamtec.py index 4d8ccb0f..380e5fd3 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hamtec.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hamtec.py @@ -2,7 +2,7 @@ from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable class ComHamtec(UltmarcTable): - + """COM_高度先進医療""" maint_flag: str # 修正区分 hamtec_cd: str # 高度先進医療コード hamtec_div: str # 高度先進医療区分 @@ -10,7 +10,7 @@ class ComHamtec(UltmarcTable): def __init__(self, record: list[str]): super().__init__(record) - self.maint_flag = record[3] - self.hamtec_cd = record[1] - self.hamtec_div = record[2] + self.maint_flag = record[3] + self.hamtec_cd = record[1] + self.hamtec_div = record[2] self.hamtec_name = record[6] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py index 7f1ee24e..842b6e3a 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py @@ -1,5 +1,6 @@ from src.batch.ultmarc.utmp_tables.table_mapper.concrete import ( - com_alma_mapper, com_hamtec_mapper, com_inst_mapper, null_mapper) + com_alma_mapper, com_dr_wrkplace_mapper, com_hamtec_mapper, + com_inst_mapper, null_mapper) from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ UltmarcTableMapper from src.db.database import Database @@ -20,7 +21,7 @@ COM_TABLE_LIST = { # COM_薬局 "102": {"03": null_mapper.NullMapper}, # COM_医師勤務先 - "502": {"01": null_mapper.NullMapper}, + "502": {"01": com_dr_wrkplace_mapper.ComDrWrkplaceMapper}, # COM_専門分野 "511": {"01": null_mapper.NullMapper}, # COM_都道府県医療機能情報(基本) diff --git a/ecs/jskult-batch-daily/src/jobctrl_daily.py b/ecs/jskult-batch-daily/src/jobctrl_daily.py index 7b8cfd38..cf374ef5 100644 --- a/ecs/jskult-batch-daily/src/jobctrl_daily.py +++ b/ecs/jskult-batch-daily/src/jobctrl_daily.py @@ -1,10 +1,15 @@ from src.batch import jissekiaraigae -from src.batch.batch_functions import get_syor_date +from src.batch.batch_functions import get_syor_date_as_date_format +from src.batch.common.batch_config import BatchConfig +from src.batch.ultmarc.dat_insert import dat_insert_control from src.error.exceptions import BatchOperationException from src.logging.get_logger import get_logger logger = get_logger('日次処理コントロール') # ここを処理IDとかにするといいかもしれない +# バッチ共通設定を取得 +batch_config = BatchConfig.get_instance() + def batch_process(): try: logger.info('日次ジョブ:開始') @@ -15,10 +20,14 @@ def batch_process(): # logger.error('データベース接続エラー(異常終了)') # 検査例外を捕まえて、共通的に出せばいいと思う try: logger.info('処理日取得') - syor_date = get_syor_date() + syor_date = get_syor_date_as_date_format() except BatchOperationException as e: logger.error(f'処理日取得エラー(異常終了){e}') logger.info(f'処理日={syor_date}') + # バッチ共通設定に処理日を追加 + batch_config.syor_date = syor_date + # TODO: 本来のアルトマーク取り込み実施場所に移動させること + dat_insert_control() # 休日判定ファイルを読み込み logger.info('休日判定処理') if True: # 休日判定