ix: 動くように修正
This commit is contained in:
parent
cd21cbb79a
commit
e912c5a080
@ -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)
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user