Merge pull request #497 featrue-NEWDWH2021-1876 into develop

This commit is contained in:
下田雅人 2025-06-10 11:47:14 +09:00
commit db57fd22bc
2 changed files with 28 additions and 42 deletions

View File

@ -1,9 +1,6 @@
import csv
import json import json
import os.path as path
import tempfile
from src.aws.s3 import JskSendBucket, JskTransferListBucket from src.aws.s3 import JskTransferListBucket
from src.batch.environment.mst_inst_all_environment import \ from src.batch.environment.mst_inst_all_environment import \
MstInstAllEnvironment MstInstAllEnvironment
from src.batch.jskult_batch_entrypoint import JskultBatchEntrypoint from src.batch.jskult_batch_entrypoint import JskultBatchEntrypoint
@ -15,7 +12,6 @@ from src.logging.get_logger import get_logger
from src.manager.jskult_batch_run_manager import JskultBatchRunManager from src.manager.jskult_batch_run_manager import JskultBatchRunManager
from src.manager.jskult_batch_status_manager import JskultBatchStatusManager from src.manager.jskult_batch_status_manager import JskultBatchStatusManager
from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager
from src.system_var import environment
from src.system_var import constants from src.system_var import constants
logger = get_logger('メルク施設マスタ作成') logger = get_logger('メルク施設マスタ作成')
@ -58,6 +54,7 @@ class MstInstAll(JskultBatchEntrypoint):
logger.exception(f'転送ファイル一覧の取得に失敗しました。 {e}') logger.exception(f'転送ファイル一覧の取得に失敗しました。 {e}')
# バッチ実行管理テーブルをfailedで登録 # バッチ実行管理テーブルをfailedで登録
jskult_batch_run_manager.batch_failed() jskult_batch_run_manager.batch_failed()
return
with open(transfer_list_file_path) as f: with open(transfer_list_file_path) as f:
transfer_list = json.load(f) transfer_list = json.load(f)
@ -67,10 +64,9 @@ class MstInstAll(JskultBatchEntrypoint):
transfer_list['jsk_transfer_list']) + len(transfer_list['ult_transfer_list']) transfer_list['jsk_transfer_list']) + len(transfer_list['ult_transfer_list'])
jskult_batch_status_manager = JskultBatchStatusManager( jskult_batch_status_manager = JskultBatchStatusManager(
environment.PROCESS_NAME, self.environment.PROCESS_NAME,
# TODO チケットNEWDWH2021-1847の実装で作成した定数に置き換え constants.PROCESS_TYPE_POST_PROCESS,
'post_process', self.environment.MAX_RUN_COUNT,
environment.MAX_RUN_COUNT,
receive_file_count receive_file_count
) )
try: try:
@ -86,6 +82,7 @@ class MstInstAll(JskultBatchEntrypoint):
# バッチ実行管理テーブルに「retry」で登録 # バッチ実行管理テーブルに「retry」で登録
jskult_batch_run_manager.batch_retry() jskult_batch_run_manager.batch_retry()
logger.info('起動条件を満たしていないため、メルク施設マスタ作成処理を終了します')
return return
except MaxRunCountReachedException: except MaxRunCountReachedException:
@ -130,17 +127,6 @@ class MstInstAll(JskultBatchEntrypoint):
return return
def _insert_mst_inst_all_from_com_inst(self, db: Database): def _insert_mst_inst_all_from_com_inst(self, db: Database):
# オプティマイザのderived_mergeフラグをoffにする
try:
sql = """
SET SESSION optimizer_switch = 'derived_merge=off'
"""
db.execute(sql)
logger.info("オプティマイザのderived_mergeフラグ = Off")
except Exception as e:
logger.info("オプティマイザのderived_mergeフラグの値変更に失敗")
raise e
# com_instから、mst_inst_allへInsert # com_instから、mst_inst_allへInsert
try: try:
sql = """ sql = """
@ -188,10 +174,10 @@ class MstInstAll(JskultBatchEntrypoint):
ci.inst_div_cd, ci.inst_div_cd,
LEFT(cid.inst_div_name, 40), LEFT(cid.inst_div_name, 40),
null, null,
ci.create_user, ci.regist_prgm_id,
ci.regist_date, ci.sys_regist_date,
ci.update_user, ci.update_prgm_id,
ci.update_date ci.sys_update_date
FROM FROM
src05.com_inst AS ci src05.com_inst AS ci
LEFT OUTER JOIN src05.mst_prefc AS mp LEFT OUTER JOIN src05.mst_prefc AS mp
@ -204,7 +190,7 @@ class MstInstAll(JskultBatchEntrypoint):
LEFT OUTER JOIN src05.com_inst_div AS cid LEFT OUTER JOIN src05.com_inst_div AS cid
ON ci.inst_div_cd = cid.inst_div_cd ON ci.inst_div_cd = cid.inst_div_cd
""" """
res = db.execute(sql) db.execute(sql)
logger.info("COM_施設からメルク施設マスタに登録成功") logger.info("COM_施設からメルク施設マスタに登録成功")
except Exception as e: except Exception as e:
logger.info("COM_施設からメルク施設マスタに登録失敗") logger.info("COM_施設からメルク施設マスタに登録失敗")
@ -260,10 +246,10 @@ class MstInstAll(JskultBatchEntrypoint):
cp.inst_div_cd, cp.inst_div_cd,
LEFT(cid.inst_div_name, 40), LEFT(cid.inst_div_name, 40),
null, null,
cp.create_user, cp.regist_prgm_id,
cp.regist_date, cp.sys_regist_date,
cp.update_user, cp.update_prgm_id,
cp.update_date cp.sys_update_date
FROM FROM
src05.com_pharm AS cp src05.com_pharm AS cp
LEFT OUTER JOIN src05.mst_prefc AS mp LEFT OUTER JOIN src05.mst_prefc AS mp
@ -276,7 +262,7 @@ class MstInstAll(JskultBatchEntrypoint):
LEFT OUTER JOIN src05.com_inst_div AS cid LEFT OUTER JOIN src05.com_inst_div AS cid
ON cp.inst_div_cd = cid.inst_div_cd ON cp.inst_div_cd = cid.inst_div_cd
""" """
res = db.execute(sql) db.execute(sql)
logger.info("COM_薬局からメルク施設マスタに登録成功") logger.info("COM_薬局からメルク施設マスタに登録成功")
except Exception as e: except Exception as e:
logger.info("COM_薬局からメルク施設マスタに登録失敗") logger.info("COM_薬局からメルク施設マスタに登録失敗")
@ -284,7 +270,7 @@ class MstInstAll(JskultBatchEntrypoint):
return return
def _insert_mst_inst_all_from_mst_inst_merck(self, db:Database): def _insert_mst_inst_all_from_mst_inst_merck(self, db: Database):
# mst_inst_merckから、mst_inst_allへInsert # mst_inst_merckから、mst_inst_allへInsert
try: try:
sql = """ sql = """
@ -325,7 +311,7 @@ class MstInstAll(JskultBatchEntrypoint):
mim.jis_city_cd, mim.jis_city_cd,
mjp.jis_pref_nm_kj, mjp.jis_pref_nm_kj,
LEFT(mjc.jis_city_nm_kj, 40), LEFT(mjc.jis_city_nm_kj, 40),
CONCAT(mim.addr1_nm_kj, mim.addr2_nm_kj), CONCAT_WS('', mim.addr1_nm_kj, mim.addr2_nm_kj),
mim.postal_no, mim.postal_no,
mim.tel_no, mim.tel_no,
null, null,
@ -333,15 +319,15 @@ class MstInstAll(JskultBatchEntrypoint):
null, null,
CASE mim.eff_end_ym CASE mim.eff_end_ym
WHEN '999912' THEN null WHEN '999912' THEN null
ELSE CONCAT(mim.eff_end_ym, DATE_FORMAT(LAST_DAY(STR_TO_DATE(mim.eff_end_ym, '%Y%m')), '%d')) ELSE CONCAT(LAST_DAY(STR_TO_DATE(CONCAT(mim.eff_end_ym, '01'), '%Y%m%d')))
END, END,
null, null,
null, null,
null, null,
mim.ins_user, mim.create_id,
mim.ins_date, mim.create_dtt,
mim.upd_user, mim.last_upd_id,
mim.upd_date mim.last_upd_dtt
FROM FROM
src07.mst_inst_merck AS mim src07.mst_inst_merck AS mim
INNER JOIN ( INNER JOIN (
@ -349,19 +335,19 @@ class MstInstAll(JskultBatchEntrypoint):
FROM src07.mst_inst_merck AS mim FROM src07.mst_inst_merck AS mim
GROUP BY mim.inst_cd GROUP BY mim.inst_cd
) AS mim_max_end_ym ) AS mim_max_end_ym
ON mim.inst_cd = mim_max_end_ym.inst_cd ON mim.inst_cd = mim_max_end_ym.inst_cd
AND mim.eff_end_ym = mim_max_end_ym.max_end_ym AND mim.eff_end_ym = mim_max_end_ym.max_end_ym
LEFT OUTER JOIN src07.mst_jis_pref AS mjp LEFT OUTER JOIN src07.mst_jis_pref AS mjp
ON mim.jis_pref_cd = mjp.jis_pref_cd ON mim.jis_pref_cd = mjp.jis_pref_cd
LEFT OUTER JOIN src07.mst_jis_city AS mjc LEFT OUTER JOIN src07.mst_jis_city AS mjc
ON mim.jis_pref_cd = mjc.jis_pref_cd ON mim.jis_pref_cd = mjc.jis_pref_cd
AND mim.jis_city_cd = mjc.jis_city_cd; AND mim.jis_city_cd = mjc.jis_city_cd;
""" """
res = db.execute(sql) db.execute(sql)
logger.info("メルク独自施設マスタからメルク施設マスタに登録成功") logger.info("メルク独自施設マスタからメルク施設マスタに登録成功")
except Exception as e: except Exception as e:
logger.info("メルク独自施設マスタからメルク施設マスタに登録失敗") logger.info("メルク独自施設マスタからメルク施設マスタに登録失敗")
raise e raise e
return return

View File

@ -1,6 +1,6 @@
# task environment file. # task environment file.
LOG_LEVEL=INFO LOG_LEVEL=INFO
ENTRYPOINT_MODULE_NAME=jskult-batch-mst-inst-all PROCESS_NAME=jskult-batch-mst-inst-all
TRANSFER_RESULT_FOLDER=transfer_result TRANSFER_RESULT_FOLDER=transfer_result
TRANSFER_RESULT_FILE_NAME=transfer_result.json TRANSFER_RESULT_FILE_NAME=transfer_result.json
DB_CONNECTION_MAX_RETRY_ATTEMPT=4 DB_CONNECTION_MAX_RETRY_ATTEMPT=4