73 lines
3.3 KiB
Python
73 lines
3.3 KiB
Python
"""実消化&アルトマーク アルトマーク取込/データ出力処理"""
|
||
|
||
from src.batch.common.batch_context import BatchContext
|
||
from src.batch.ultmarc import import_ultmarc_process, output_dcf_dsf_data
|
||
from src.error.exceptions import BatchOperationException
|
||
from src.logging.get_logger import get_logger
|
||
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('アルトマーク取込/データ出力')
|
||
|
||
# バッチ共通設定を取得
|
||
batch_context = BatchContext.get_instance()
|
||
|
||
|
||
def exec():
|
||
|
||
logger.info('アルトマーク取込/データ出力:開始')
|
||
|
||
hdke_tbl_manager = JskultHdkeTblManager()
|
||
batch_status_manager = JskultBatchStatusManager(
|
||
constants.PROCESS_NAME_ULTMARC_IO,
|
||
constants.PROCESS_TYPE_DATA_IMPORT,
|
||
0, # 最大起動回数は使用しないため、0をセット
|
||
0, # 受信ファイル数は使用しないため、0をセット
|
||
)
|
||
# バッチステータスを処理開始に変更
|
||
batch_status_manager.set_process_status(constants.PROCESS_STATUS_START)
|
||
try:
|
||
if not hdke_tbl_manager.can_run_process():
|
||
logger.error('日次バッチ処理中またはdump取得が正常終了していないため、日次バッチ処理を終了します。')
|
||
return constants.BATCH_EXIT_CODE_SUCCESS
|
||
except BatchOperationException as e:
|
||
logger.exception(f'日付テーブルチェック処理エラー(異常終了){e}')
|
||
# バッチステータスをエラーに変更
|
||
batch_status_manager.set_process_status(constants.PROCESS_STATUS_ERROR)
|
||
return constants.BATCH_EXIT_CODE_SUCCESS
|
||
|
||
_, _, syor_date = hdke_tbl_manager.get_batch_statuses()
|
||
logger.info(f'処理日={syor_date}')
|
||
# バッチ共通設定に処理日を追加
|
||
batch_context.syor_date = syor_date
|
||
|
||
# バッチステータスを処理中を変更
|
||
batch_status_manager.set_process_status(constants.PROCESS_STATUS_DOING)
|
||
|
||
try:
|
||
logger.info('アルトマーク取込:起動')
|
||
import_ultmarc_process.exec_import()
|
||
logger.info('アルトマーク取込:終了')
|
||
except BatchOperationException as e:
|
||
logger.exception(f'アルトマーク取込処理エラー(異常終了){e}')
|
||
# バッチステータスをエラーに変更
|
||
batch_status_manager.set_process_status(constants.PROCESS_STATUS_ERROR)
|
||
return constants.BATCH_EXIT_CODE_SUCCESS
|
||
|
||
try:
|
||
logger.info('実消化用DCF/DSFデータ作成処理:起動')
|
||
output_dcf_dsf_data.exec()
|
||
logger.info('実消化用DCF/DSFデータ作成処理:終了')
|
||
except BatchOperationException as e:
|
||
logger.exception(f'実消化用施設DCF/DSF作成処理エラー(異常終了){e}')
|
||
# バッチステータスをエラーに変更
|
||
batch_status_manager.set_process_status(constants.PROCESS_STATUS_ERROR)
|
||
return constants.BATCH_EXIT_CODE_SUCCESS
|
||
|
||
# バッチステータスを処理済に変更
|
||
batch_status_manager.set_process_status(constants.PROCESS_STATUS_DONE)
|
||
|
||
logger.info('アルトマーク取込/データ出力:終了')
|
||
return constants.BATCH_EXIT_CODE_SUCCESS
|