ix: 動くように修正

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2025-05-30 18:02:38 +09:00
parent cd21cbb79a
commit e912c5a080
3 changed files with 35 additions and 32 deletions

View File

@ -100,7 +100,7 @@ class JskUltBackupBucket(S3Bucket):
class JskBackupBucket(JskUltBackupBucket):
_folder = environment.JSKULT_BACKUP_BUCKET
_folder = environment.JSK_BACKUP_FOLDER
class JskTransferListBucket(JskUltBackupBucket):
@ -133,8 +133,8 @@ class JskSendBucket(S3Bucket):
def backup_dcf_inst_merge_csv_file(self, dat_file_key: str, datetime_key: str):
# バックアップバケットにコピー
jskult_backup_bucket = JskUltBackupBucket()
jskult_backup_bucket = JskBackupBucket()
dat_key = f'{self._send_folder}/{dat_file_key}'
backup_key = f'{jskult_backup_bucket._folder}/{self._send_folder}/{datetime_key}/{dat_file_key.replace(f"{self._send_folder}/", "")}'
backup_key = f'{jskult_backup_bucket._folder}/{datetime_key}/{dat_file_key.replace(f"{self._send_folder}/", "")}'
self._s3_client.copy(self._bucket_name, dat_key,
jskult_backup_bucket._bucket_name, backup_key)

View File

@ -38,7 +38,9 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
jskult_hdke_tbl_manager = JskultHdkeTblManager()
jskult_batch_run_manager = JskultBatchRunManager(
self.environment.BATCH_MANAGE_DYNAMODB_TABLE_NAME,
self.environment.BATCH_EXECUTION_ID)
if not jskult_hdke_tbl_manager.can_run_process():
logger.error(
'日次バッチ処理中またはdump取得が正常終了していないため、DCF削除新規マスタ作成を終了します。')
@ -73,12 +75,6 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
receive_file_count
)
try:
# DCF削除新規マスタ作成、出力用にDB接続を開始。
# トランザクションも開始。
db = Database.get_instance()
db.connect()
db.to_jst()
jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_START)
try:
@ -90,13 +86,19 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
# バッチ実行管理テーブルに「retry」で登録
jskult_batch_run_manager.batch_retry()
logger.info("起動条件を満たしていないため、DCF削除新規マスタ作成処理を終了します。")
return
except MaxRunCountReachedException:
logger.info('最大起動回数に到達したため、DCF削除新規マスタ作成処理を実行します。')
jskult_batch_status_manager.set_process_status(
constants.PROCESS_STATUS_DOING)
# DCF削除新規マスタ作成、出力用にDB接続を開始。
# トランザクションも開始。
db = Database.get_instance()
db.connect()
db.to_jst()
# アルトマーク取込が実行されていた場合にDCF施設削除新規マスタの作成処理を実行
if jskult_batch_status_manager.is_done_ultmarc_import():
db.begin()
@ -116,7 +118,7 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
# CSVをS3にアップロード
self._upload_dcf_inst_merge_csv_file(
file_path, process_date, self.environment.DCF_INST_MERGE_SEND_FILE_NAME)
self.environment.DCF_INST_MERGE_SEND_FILE_NAME, process_date, file_path)
# 処理が全て正常終了した際に、バッチ実行管理テーブルに「success」で登録
logger.info("DCF削除新規マスタ作成処理を正常終了します。")
@ -154,49 +156,51 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
AND
ci.delete_sche_reason_cd = 'D'
AND
ci.delete_data IS NULL
ci.abolish_ymd IS NULL
AND
ci.sys_update_date BETWEEN src07.get_syor_date() AND NOW()
AND
NOT EXISTS (
SELECT
dim.dcf_inst_cd
1
FROM
src07.dcf_inst_merge AS dim
WHERE
dim.dcf_inst_cd = ci.dcf_dsf_inst_cd
)
AND
(ci.dcf_dsf_inst_cd EXISTS(
AND(
EXISTS(
SELECT
mia.inst_cd
1
FROM
src07.mst_inst_assn as mia
WHERE
mia.inst_cd = ci.dcf_dsf_inst_cd
)
)
OR ci.dcf_dsf_inst_cd EXISTS(
OR EXISTS(
SELECT
ap.prsb_inst_cd
1
FROM
src07.atc_pharm AS ap
WHERE
ap.prsb_inst_cd = ci.dcf_dsf_inst_cd
)
OR ci.dcf_dsf_inst_cd EXISTS(
SELECT
vtsr.inst_cd
FROM
src07.vw_tebra_sales_refreshed AS vtsr
WHERE
vtsr.inst_cd = ci.dcf_dsf_inst_cd
)
)
;
OR EXISTS(
SELECT
1
FROM
view07.vw_tebra_sales_refreshed AS vtsr
WHERE
vtsr.cnvs_inst_cd = ci.dcf_dsf_inst_cd
)
);
"""
duplication_inst_records = db.execute_select(sql)
if len(duplication_inst_records) == 0:
logger.info('施設統合対象データはありません')
return (False, None)
# DCF削除新規マスタ取り込み
values_clauses = []
params = {}
@ -279,7 +283,7 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
except Exception as e:
raise BatchOperationException(e)
def _make_csv_data(csv_file_name: str, record_inst: list):
def _make_csv_data(self, csv_file_name: str, record_inst: list):
temporary_dir = tempfile.mkdtemp()
csv_file_path = path.join(temporary_dir, csv_file_name)
head_str = ['DCF_INST_CD', 'DUP_OPP_CD', 'START_MONTH',

View File

@ -6,7 +6,6 @@ JSK_BACKUP_FOLDER=jsk/send
TRANSFER_RESULT_FOLDER=transfer_result
TRANSFER_RESULT_FILE_NAME=transfer_result.json
DCF_INST_MERGE_SEND_FILE_NAME=dcf_inst_merge.csv
JSKULT_CONFIG_BUCKET=mbj-newdwh2021-staging-config
DB_CONNECTION_MAX_RETRY_ATTEMPT=1
DB_CONNECTION_RETRY_INTERVAL_INIT=1
DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS=1