fix: バグ修正

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2025-06-04 10:08:44 +09:00
parent af6d995e6d
commit b7c3b8ca11

View File

@ -14,7 +14,7 @@ from src.manager.jskult_batch_status_manager import JskultBatchStatusManager
from src.manager.jskult_hdke_tbl_manager import JskultHdkeTblManager
from src.system_var import constants
logger = get_logger('生物由来卸販売ロット分解')
logger = get_logger('生物由来ロット分解')
class TrnResultDataBioLot(JskultBatchEntrypoint):
@ -30,8 +30,8 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
return
def execute(self):
"""生物由来卸販売ロット分解"""
logger.info('生物由来卸販売ロット分解処理開始')
"""生物由来ロット分解"""
logger.info('生物由来ロット分解処理開始')
jskult_hdke_tbl_manager = JskultHdkeTblManager()
jskult_batch_run_manager = JskultBatchRunManager(
@ -39,7 +39,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
self.environment.BATCH_EXECUTION_ID)
if not jskult_hdke_tbl_manager.can_run_process():
logger.error(
'日次バッチ処理中またはdump取得が正常終了していないため、生物由来卸販売ロット分解処理を終了します。')
'日次バッチ処理中またはdump取得が正常終了していないため、生物由来ロット分解処理を終了します。')
# バッチ実行管理テーブルをfailedで登録
jskult_batch_run_manager.batch_failed()
return
@ -86,7 +86,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
return
except MaxRunCountReachedException:
logger.info('最大起動回数に到達したため、生物由来卸販売ロット分解処理を実行します。')
logger.info('最大起動回数に到達したため、生物由来ロット分解処理を実行します。')
jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_DOING)
@ -101,14 +101,14 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
# 生物由来ロット分解データの不要レコードを削除する
self._delete_empty_lot_record(db)
# 製造ロット管理番号マスタから有効期限を生物由来ロット分解データにセットする
self._set_expr_dt_from_lot_num_mst(db)
self._set_expr_dt_from_customer_lotno_all(db)
# 施設情報を生物由来ロット分解データにセットする
self._set_inst_info_from_com_inst_or_com_pharm_or_mst_inst_merck(
db)
db.commit()
logger.info('生物由来卸販売ロット分解処理終了')
logger.info('生物由来ロット分解処理終了')
# 処理が全て正常終了した際に、バッチ実行管理テーブルに「success」で登録
logger.info("生物由来卸販売ロット分解処理を正常終了します。")
logger.info("生物由来ロット分解処理を正常終了します。")
jskult_batch_run_manager.batch_success()
jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_DONE)
@ -121,7 +121,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
db.disconnect()
except Exception as e:
# 何らかのエラーが発生した際に、バッチ実行管理テーブルに「failed」で登録
logger.exception(f'予期せぬエラーが発生したため、生物由来卸販売ロット分解処理を終了します。{e}')
logger.exception(f'予期せぬエラーが発生したため、生物由来ロット分解処理を終了します。{e}')
jskult_batch_run_manager.batch_failed()
jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_ERROR)
@ -186,8 +186,8 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
bio.cnvs_inst_cd AS cnvs_inst_cd,
bio.cls_inst_nm AS cls_inst_nm,
-- COM_施設 or COM_薬局 or メルク独自施設マスタから後ほどセット
NULL AS inst_addr,
NULL AS inst_tel,
NULL AS address,
NULL AS tel_num,
bio.result_cd AS result_cd,
bio.src_cd AS src_cd,
-- 判定結果CDより値を設定する
@ -206,7 +206,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
WHEN 'S' THEN 'SCSK-VAN'
END AS if_kind,
-- 製品コードロット番号でロットマスタより後ほどセット
NULL AS ck_last_dt_txt
NULL AS expr_dt
FROM
src07.trn_result_data_bio bio
-- 生物由来変換マスタ
@ -254,7 +254,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
AND DATE_FORMAT(bio.cnvs_sales_dt, '%Y%m') BETWEEN mim.eff_start_ym
AND mim.eff_end_ym
-- 施設住所
SET bio.inst_addr = (
SET bio.address = (
CASE LEFT(bio.cnvs_inst_cd, 2)
WHEN '00' THEN ci.inst_addr
WHEN '03' THEN cp.inst_addr
@ -262,10 +262,10 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
END
),
-- 施設電話番号
bio.inst_tel = (
bio.tel_num = (
CASE LEFT(bio.cnvs_inst_cd, 2)
WHEN '00' THEN ci.inst_phone_number
WHEN '03' THEN cm.inst_phone_number
WHEN '03' THEN cp.inst_phone_number
ELSE mim.tel_no
END
)
@ -277,7 +277,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
raise e
logger.info('COM_施設 or COM_薬局 or メルク独自施設マスタから施設情報を生物由来ロット分解データにセット成功')
def _set_ck_last_dt_txt_from_customer_lotno_all(self, db: Database):
def _set_expr_dt_from_customer_lotno_all(self, db: Database):
# ロットマスタから有効期限をセット
logger.info('ロットマスタから有効期限をセット開始')
try:
@ -288,7 +288,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
ON bio.cnvs_prod_cd = cla.material_cd
AND bio.cnvs_lot_no = cla.lot_no_txt
SET
bio.ck_last_dt_txt = cla.ck_last_dt_txt
bio.expr_dt = cla.ck_last_dt_txt
"""
db.execute(sql)
except Exception as e: