diff --git a/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py b/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py index f567ebae..301c9337 100644 --- a/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py +++ b/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py @@ -13,8 +13,8 @@ def exec(): """DCF施設統合マスタ作成""" # アルトマーク取込が行われていない場合は処理をスキップする - # if not batch_context.is_ultmarc_imported: - # logger.info('アルトマーク取込が行われていないため、DCF施設統合マスタ作成処理をスキップします。') + if not batch_context.is_ultmarc_imported: + logger.info('アルトマーク取込が行われていないため、DCF施設統合マスタ作成処理をスキップします。') db = Database.get_instance() try: @@ -22,8 +22,10 @@ def exec(): db.begin() logger.debug('DCF施設統合マスタ作成処理開始') # COM施設からDCF施設統合マスタに登録 - _insert_dcf_inst_merge_from_com_ci(db) - db.commit() + (success, result) = _insert_dcf_inst_merge_from_com_ci(db) + # DCF施設統合マスタが追加ログを出力する + if success: + _output_dcf_inst_merge_log(result) logger.debug('DCF施設統合マスタ作成処理終了') except Exception as e: db.rollback() @@ -32,11 +34,8 @@ def exec(): db.disconnect() -def _insert_dcf_inst_merge_from_com_ci(db: Database): +def _insert_dcf_inst_merge_from_com_ci(db: Database) -> tuple[bool, list[dict]]: # com_ciにdcf_inst_mergeにinsert - creater = 'batchuser' - enabledFlg = 'Y' - try: result = db.execute_select( """ @@ -95,16 +94,16 @@ def _insert_dcf_inst_merge_from_com_ci(db: Database): if len(result) == 0: logger.info('重複コードがあるデータはありません') - return + return False, None values_clauses = [] - params = {'enabledFlg': enabledFlg, 'creater': creater, "updater": creater} + params = {} clauses_no = 0 for row in result: dcfInstCdArr = f'dcfInstCd{clauses_no}' dupOppCdArr = f'dupOppCd{clauses_no}' tekiyoMonthArr = f'tekiyoMonth{clauses_no}' - placeholders = f'(:{dcfInstCdArr}, :{dupOppCdArr}, :{tekiyoMonthArr}, :enabledFlg, :creater, SYSDATE(), :updater, SYSDATE())' + placeholders = f'(:{dcfInstCdArr}, :{dupOppCdArr}, :{tekiyoMonthArr}, "Y", CURRENT_USER(), SYSDATE(), CURRENT_USER(), SYSDATE())' values_clauses.append(placeholders) params[dcfInstCdArr] = row['dcf_dsf_inst_cd'] params[dupOppCdArr] = row['dup_opp_cd'] @@ -130,9 +129,41 @@ def _insert_dcf_inst_merge_from_com_ci(db: Database): elapsed_time = ElapsedTime() res = db.execute(insert_sql, params) logging_sql(logger, insert_sql) + db.commit() logger.info(f'COM施設からDCF施設統合マスタに登録成功, {res.rowcount} 行更新 ({elapsed_time.of})') except Exception as e: logger.debug('COM施設からDCF施設統合マスタの登録に失敗') raise e + return (True, result) + + +def _output_dcf_inst_merge_log(result: list[dict]): + sys_update_date = result[0]['sys_update_date'] + setYearMonth = '{set_year}年{set_month}月'.format( + set_year=sys_update_date[0:4], + set_month=sys_update_date[-2:] + ) + + add_dct_inst_list = [] + for row in result: + add_dct_inst_list.append("""DCF施設コード {dcf_dsf_inst_cd} {form_inst_name_kanji},  重複時相手先コード {dup_opp_cd} {dup_inst_name_kanji}""".format( + dcf_dsf_inst_cd=row['dcf_dsf_inst_cd'], + form_inst_name_kanji=row['form_inst_name_kanji'], + dup_opp_cd=row['dup_opp_cd'], + dup_inst_name_kanji=row['dup_inst_name_kanji'] + ) + ) + + add_dct_inst_list = '\n'.join(add_dct_inst_list) + logger.info( + f"""[NOTICE]DCF施設統合マスタが追加されました。 +********************************************************** +適用月度{setYearMonth} +********************************************************** +{add_dct_inst_list} +********************************************************** +合計 {len(result)}件 + """ + ) return