From a232923909aee038b90b673eed6b7683b4fda451 Mon Sep 17 00:00:00 2001 From: "mori.k" Date: Mon, 2 Jun 2025 14:59:35 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC=E6=8C=87?= =?UTF-8?q?=E6=91=98=E5=AF=BE=E5=BF=9C=E3=81=A8set=5Fprocess=5Fstatus?= =?UTF-8?q?=E3=81=AE=E5=BC=95=E6=95=B0=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/jskult-batch/src/batch/mst_inst_all.py | 200 +++++++++++---------- 1 file changed, 105 insertions(+), 95 deletions(-) diff --git a/ecs/jskult-batch/src/batch/mst_inst_all.py b/ecs/jskult-batch/src/batch/mst_inst_all.py index 3979d30a..4b64b27a 100644 --- a/ecs/jskult-batch/src/batch/mst_inst_all.py +++ b/ecs/jskult-batch/src/batch/mst_inst_all.py @@ -16,6 +16,7 @@ from src.manager.jskult_batch_run_manager import JskultBatchRunManager from src.manager.jskult_batch_status_manager import JskultBatchStatusManager from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager from src.system_var import environment +from src.system_var import constants logger = get_logger('メルク施設マスタ作成') @@ -74,119 +75,56 @@ class MstInstAll(JskultBatchEntrypoint): ) try: - jskult_batch_status_manager.set_process_status("start") + jskult_batch_status_manager.set_process_status( + constants.PROCESS_STATUS_START) try: if not jskult_batch_status_manager.can_run_post_process(): # 後続処理の起動条件を満たしていない場合 # 処理ステータスを「処理待」に設定 - jskult_batch_status_manager.set_process_status("waiting") + jskult_batch_status_manager.set_process_status( + constants.PROCESS_STATUS_WAITING) # バッチ実行管理テーブルに「retry」で登録 jskult_batch_run_manager.batch_retry() return except MaxRunCountReachedException: - logger.info('最大起動回数に到達したため、メルク施設マスタ作成処理を実行します。') + logger.info("最大起動回数に到達したため、メルク施設マスタ作成処理を実行します。") - jskult_batch_status_manager.set_process_status("doing") + jskult_batch_status_manager.set_process_status( + constants.PROCESS_STATUS_DOING) - # アルトマーク取込が実行されていた場合にDCF施設削除新規マスタの作成処理を実行 - if jskult_batch_status_manager.is_done_ultmarc_import(): - self._db = Database.get_instance() - self._db.connect() - logger.debug('メルク施設マスタ作成処理開始') - # mst_inst_allをTruncate - self._truncate_mst_inst_all(self._db) - # com_instから、mst_inst_allへInsert - self._insert_mst_inst_all_from_com_inst(self._db) - # com_pharmから、mst_inst_allへInsert - self._insert_mst_inst_all_from_com_pharm(self._db) - logger.debug('メルク施設マスタ作成処理終了') + db = Database.get_instance() + db.connect() + logger.info("メルク施設マスタ作成処理開始") + # mst_inst_allをTruncate + self._truncate_mst_inst_all(db) + # com_instから、mst_inst_allへInsert + self._insert_mst_inst_all_from_com_inst(db) + # com_pharmから、mst_inst_allへInsert + self._insert_mst_inst_all_from_com_pharm(db) + logger.info("メルク施設マスタ作成処理終了") + + jskult_batch_run_manager.batch_success() + jskult_batch_status_manager.set_process_status( + constants.PROCESS_STATUS_DONE) except Exception as e: + logger.exception(e) + jskult_batch_run_manager.batch_failed() + jskult_batch_status_manager.set_process_status( + constants.PROCESS_STATUS_ERROR) raise BatchOperationException(e) finally: - self._db.disconnect() + db.disconnect() def _truncate_mst_inst_all(self, db: Database): try: db.execute("TRUNCATE TABLE src07.mst_inst_all") except Exception as e: - logger.debug("メルク施設マスタの全件削除に失敗") - raise e - - logger.debug("メルク施設マスタの全件削除に成功") - return - - def _insert_mst_inst_all_from_com_pharm(self, db: Database): - # com_pharmから、mst_inst_allへInsert - try: - sql = """ - INSERT INTO - src07.mst_inst_all ( - inst_cd, - inst_clas_cd, - inst_name_form, - inst_name, - pref_cd, - city_cd, - pref_name, - city_name, - address, - postal_cd, - tel_num, - bed_num, - manage_cd, - manage_name, - delete_date, - inst_div_cd, - inst_div_name, - yobi, - creater, - create_date, - updater, - update_date - ) - SELECT - cp.dcf_dsf_inst_cd, - '2', - cp.form_inst_name_kanji, - cp.inst_name_kanji, - cp.prefc_cd, - cp.city_cd, - mp.prefc_name, - LEFT(mc.city_name, 40), - cp.inst_addr, - cp.postal_number, - null, - null, - null, - LEFT(cm.manage_name, 40), - cp.abolish_ymd, - cp.inst_div_cd, - LEFT(cid.inst_div_name, 40), - null, - cp.create_user, - cp.regist_date, - cp.update_user, - cp.update_date - FROM - src05.com_pharm AS cp - LEFT OUTER JOIN src05.mst_prefc AS mp - ON cp.prefc_cd = mp.prefc_cd - LEFT OUTER JOIN src05.mst_city AS mc - ON cp.prefc_cd = mc.prefc_cd - AND cp.city_cd = mc.city_cd - LEFT OUTER JOIN src05.com_manage AS cm - ON cp.manage_cd = cm.manage_cd - LEFT OUTER JOIN src05.com_inst_div AS cid - ON cp.inst_div_cd = cid.inst_div_cd - """ - res = db.execute(sql) - logger.info(f'COM_薬局からメルク施設マスタに登録成功') - except Exception as e: - logger.debug("COM_薬局からメルク施設マスタに登録失敗") + logger.info("メルク施設マスタの全件削除に失敗") raise e + logger.info("メルク施設マスタの全件削除に成功") return def _insert_mst_inst_all_from_com_inst(self, db: Database): @@ -196,9 +134,9 @@ class MstInstAll(JskultBatchEntrypoint): SET SESSION optimizer_switch = 'derived_merge=off' """ db.execute(sql) - logger.debug("オプティマイザのderived_mergeフラグ = Off") + logger.info("オプティマイザのderived_mergeフラグ = Off") except Exception as e: - logger.debug("オプティマイザのderived_mergeフラグの値変更に失敗") + logger.info("オプティマイザのderived_mergeフラグの値変更に失敗") raise e # com_instから、mst_inst_allへInsert @@ -265,9 +203,81 @@ class MstInstAll(JskultBatchEntrypoint): ON ci.inst_div_cd = cid.inst_div_cd """ res = db.execute(sql) - logger.info(f'COM_施設からメルク施設マスタに登録成功') + logger.info("COM_施設からメルク施設マスタに登録成功") except Exception as e: - logger.debug("COM_施設からメルク施設マスタに登録失敗") + logger.info("COM_施設からメルク施設マスタに登録失敗") + raise e + + return + + def _insert_mst_inst_all_from_com_pharm(self, db: Database): + # com_pharmから、mst_inst_allへInsert + try: + sql = """ + INSERT INTO + src07.mst_inst_all ( + inst_cd, + inst_clas_cd, + inst_name_form, + inst_name, + pref_cd, + city_cd, + pref_name, + city_name, + address, + postal_cd, + tel_num, + bed_num, + manage_cd, + manage_name, + delete_date, + inst_div_cd, + inst_div_name, + yobi, + creater, + create_date, + updater, + update_date + ) + SELECT + cp.dcf_dsf_inst_cd, + '2', + cp.form_inst_name_kanji, + cp.inst_name_kanji, + cp.prefc_cd, + cp.city_cd, + mp.prefc_name, + LEFT(mc.city_name, 40), + cp.inst_addr, + cp.postal_number, + cp.inst_phone_number, + null, + null, + null, + cp.abolish_ymd, + cp.inst_div_cd, + LEFT(cid.inst_div_name, 40), + null, + cp.create_user, + cp.regist_date, + cp.update_user, + cp.update_date + FROM + src05.com_pharm AS cp + LEFT OUTER JOIN src05.mst_prefc AS mp + ON cp.prefc_cd = mp.prefc_cd + LEFT OUTER JOIN src05.mst_city AS mc + ON cp.prefc_cd = mc.prefc_cd + AND cp.city_cd = mc.city_cd + LEFT OUTER JOIN src05.com_manage AS cm + ON cp.manage_cd = cm.manage_cd + LEFT OUTER JOIN src05.com_inst_div AS cid + ON cp.inst_div_cd = cid.inst_div_cd + """ + res = db.execute(sql) + logger.info("COM_薬局からメルク施設マスタに登録成功") + except Exception as e: + logger.info("COM_薬局からメルク施設マスタに登録失敗") raise e return