diff --git a/ecs/jskult-batch/Dockerfile b/ecs/jskult-batch/Dockerfile index fc0fde90..674c6c53 100644 --- a/ecs/jskult-batch/Dockerfile +++ b/ecs/jskult-batch/Dockerfile @@ -15,6 +15,6 @@ RUN \ pip uninstall -y pipenv virtualenv-clone virtualenv COPY src ./src -COPY entrypoint.py entrypoint.py +COPY entrypoint.py entrypoint.py CMD ["python", "entrypoint.py"] diff --git a/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py b/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py index d2fc61bf..eaafccab 100644 --- a/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py +++ b/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py @@ -17,7 +17,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('DCF削除新規マスタ作成') +logger = get_logger('DCF削除新規マスタ作成/データ出力') class DcfInstMergeIO(JskultBatchEntrypoint): @@ -34,7 +34,7 @@ class DcfInstMergeIO(JskultBatchEntrypoint): return def execute(self): - logger.info("DCF削除新規マスタ作成処理を開始します。") + logger.info("DCF削除新規マスタ作成/データ出力処理を開始します。") jskult_hdke_tbl_manager = JskultHdkeTblManager() jskult_batch_run_manager = JskultBatchRunManager( @@ -101,6 +101,7 @@ class DcfInstMergeIO(JskultBatchEntrypoint): db.to_jst() # アルトマーク取込が実行されていた場合にDCF施設削除新規マスタの作成処理を実行 if jskult_batch_status_manager.is_done_ultmarc_import(): + logger.info("アルトマークデータが取り込まれているため、DCF削除新規マスタ作成処理を開始します。") db.begin() # COM_施設からDCF削除新規マスタに登録 (is_add_dcf_inst_merge, @@ -109,8 +110,11 @@ class DcfInstMergeIO(JskultBatchEntrypoint): logger.info('[NOTICE]DCF施設削除新規マスタが追加されました。') self._output_add_dcf_inst_merge_log( duplication_inst_records) + logger.info("DCF削除新規マスタ作成処理が正常終了しました。") db.commit() - # CSV出力 + + # DCF施設削除新規マスタ出力 + logger.info('DCF施設削除新規マスタ出力を開始します。') dcf_inst_merge_all_records = self._select_dcf_inst_merge_all(db) file_path = self._make_csv_data( self.environment.DCF_INST_MERGE_SEND_FILE_NAME, @@ -119,9 +123,10 @@ class DcfInstMergeIO(JskultBatchEntrypoint): # CSVをS3にアップロード self._upload_dcf_inst_merge_csv_file( self.environment.DCF_INST_MERGE_SEND_FILE_NAME, process_date, file_path) + logger.info("DCF施設削除新規マスタ出力が正常終了しました。") # 処理が全て正常終了した際に、バッチ実行管理テーブルに「success」で登録 - logger.info("DCF削除新規マスタ作成処理を正常終了します。") + logger.info("DCF削除新規マスタ作成/データ出力処理を終了します。") jskult_batch_run_manager.batch_success() jskult_batch_status_manager.set_process_status( constants.PROCESS_STATUS_DONE) @@ -146,13 +151,20 @@ class DcfInstMergeIO(JskultBatchEntrypoint): SELECT ci.dcf_dsf_inst_cd AS dcf_dsf_inst_cd, ci.form_inst_name_kanji AS form_inst_name_kanji, - ci.delete_sche_reason_cd AS delete_sche_reason_cd, ci.dup_opp_cd AS dup_opp_cd, - ci.sys_update_date AS sys_update_date + ( + SELECT + dupci.form_inst_name_kanji + FROM + src05.com_inst AS dupci + WHERE + dupci.dcf_dsf_inst_cd = ci.dup_opp_cd + ) AS dup_inst_name_kanji, + DATE_FORMAT((src07.get_syor_date() + INTERVAL 1 MONTH), '%Y%m') AS start_month FROM src05.com_inst AS ci WHERE - ci.dup_opp_cd IS NOT NULL + (ci.dup_opp_cd IS NOT NULL OR CHAR_LENGTH(ci.dup_opp_cd) > 0) AND ci.delete_sche_reason_cd = 'D' AND @@ -207,21 +219,23 @@ class DcfInstMergeIO(JskultBatchEntrypoint): for clauses_no, row in enumerate(duplication_inst_records, start=1): dcf_inst_cd_arr = f"dcf_inst_cd{clauses_no}" dup_opp_cd_arr = f"dup_opp_cd{clauses_no}" + start_month_arr = f'start_month{clauses_no}' values_clause = f"""(:{dcf_inst_cd_arr}, :{dup_opp_cd_arr}, - DATE_FORMAT((src07.get_syor_date() + INTERVAL 1 MONTH), + :{start_month_arr}, NULL, NULL, NULL, "Y", - batchuser, + CURRENT_USER(), SYSDATE(), - batchuser, + CURRENT_USER(), SYSDATE() )""" values_clauses.append(values_clause) params[dcf_inst_cd_arr] = row['dcf_dsf_inst_cd'] params[dup_opp_cd_arr] = row['dup_opp_cd'] + params[start_month_arr] = row['start_month'] insert_sql = f""" INSERT INTO src07.dcf_inst_merge ( @@ -245,11 +259,11 @@ class DcfInstMergeIO(JskultBatchEntrypoint): except Exception as e: raise BatchOperationException(e) - def _output_add_dcf_inst_merge_log(duplication_inst_records: list[dict]): - sys_update_date = duplication_inst_records[0]['sys_update_date'] + def _output_add_dcf_inst_merge_log(self, duplication_inst_records: list[dict]): + start_month = duplication_inst_records[0]['start_month'] set_year_month = '{set_year}年{set_month}月'.format( - set_year=sys_update_date[0:4], - set_month=sys_update_date[-2:] + set_year=start_month[0:4], + set_month=start_month[-2:] ) add_dct_inst_merge = 'DCF施設コード {dcf_dsf_inst_cd} {form_inst_name_kanji},  重複時相手先コード {dup_opp_cd} {dup_inst_name_kanji}' add_dct_inst_merge_list = []