feat: レビュー指摘対応
This commit is contained in:
parent
2be8461f5a
commit
300420031c
@ -22,10 +22,11 @@ def exec():
|
||||
db.begin()
|
||||
logger.debug('DCF施設統合マスタ作成処理開始')
|
||||
# COM施設からDCF施設統合マスタに登録
|
||||
(is_add_dcf_inst, result) = _insert_dcf_inst_merge_from_com_ci(db)
|
||||
# DCF施設統合マスタの追加のログを出力する
|
||||
if is_add_dcf_inst:
|
||||
_output_add_dcf_inst_log(result)
|
||||
(is_add_dcf_inst_merge, duplication_inst_records) = _insert_dcf_inst_merge_from_com_inst(db)
|
||||
# DCF施設統合マスタ追加のログを出力する
|
||||
if is_add_dcf_inst_merge:
|
||||
logger.info('[NOTICE]DCF施設統合マスタが追加されました。')
|
||||
_output_add_dcf_inst_merge_log(duplication_inst_records)
|
||||
logger.debug('DCF施設統合マスタ作成処理終了')
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
@ -34,8 +35,8 @@ def exec():
|
||||
db.disconnect()
|
||||
|
||||
|
||||
def _insert_dcf_inst_merge_from_com_ci(db: Database) -> tuple[bool, list[dict]]:
|
||||
# com_ciからdcf_inst_mergeにinsert
|
||||
def _insert_dcf_inst_merge_from_com_inst(db: Database) -> tuple[bool, list[dict]]:
|
||||
# com_instからdcf_inst_mergeにinsert
|
||||
# 重複コードがあるデータを取得する(処理日~システム日付を対象)
|
||||
try:
|
||||
sql = """
|
||||
@ -51,14 +52,14 @@ def _insert_dcf_inst_merge_from_com_ci(db: Database) -> tuple[bool, list[dict]]:
|
||||
WHERE
|
||||
dupci.dcf_dsf_inst_cd = ci.dup_opp_cd
|
||||
) AS dup_inst_name_kanji,
|
||||
DATE_FORMAT(DATE_ADD((SELECT syor_date FROM src05.hdke_tbl),INTERVAL 1 MONTH),'%Y%m') AS sys_update_date
|
||||
DATE_FORMAT((src05.get_syor_date() + INTERVAL 1 MONTH), '%Y%m') AS sys_update_date
|
||||
FROM
|
||||
src05.com_inst AS ci
|
||||
WHERE
|
||||
CHAR_LENGTH(ci.dup_opp_cd) > 0
|
||||
AND ci.delete_sche_reason_cd = 'D'
|
||||
AND ci.abolish_ymd IS NULL
|
||||
AND DATE_FORMAT(ci.sys_update_date, '%Y%m%d') BETWEEN (SELECT syor_date FROM src05.hdke_tbl) AND DATE_FORMAT(SYSDATE(), '%Y%m%d')
|
||||
AND ci.sys_update_date BETWEEN src05.get_syor_date() AND SYSDATE()
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
dim.dcf_inst_cd
|
||||
@ -86,31 +87,29 @@ def _insert_dcf_inst_merge_from_com_ci(db: Database) -> tuple[bool, list[dict]]:
|
||||
)
|
||||
)
|
||||
"""
|
||||
result = db.execute_select(sql)
|
||||
duplication_inst_records = db.execute_select(sql)
|
||||
logging_sql(logger, sql)
|
||||
logger.info('重複コードがあるデータの取得に成功')
|
||||
except Exception as e:
|
||||
logger.debug('重複コードがあるデータの取得に失敗')
|
||||
raise e
|
||||
|
||||
if len(result) == 0:
|
||||
if len(duplication_inst_records) == 0:
|
||||
logger.info('重複コードがあるデータはありません')
|
||||
return False, None
|
||||
return (False, None)
|
||||
|
||||
# DCF施設統合マスタ追加
|
||||
values_clauses = []
|
||||
params = {}
|
||||
clauses_no = 1
|
||||
for row in result:
|
||||
dcfInstCdArr = f'dcfInstCd{clauses_no}'
|
||||
dupOppCdArr = f'dupOppCd{clauses_no}'
|
||||
tekiyoMonthArr = f'tekiyoMonth{clauses_no}'
|
||||
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']
|
||||
params[tekiyoMonthArr] = row['sys_update_date']
|
||||
clauses_no += 1
|
||||
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}'
|
||||
tekiyo_month_arr = f'tekiyo_month{clauses_no}'
|
||||
values_clause = f'(:{dcf_inst_cd_arr}, :{dup_opp_cd_arr}, :{tekiyo_month_arr}, "Y", CURRENT_USER(), SYSDATE(), 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[tekiyo_month_arr] = row['sys_update_date']
|
||||
|
||||
insert_sql = f"""
|
||||
INSERT INTO
|
||||
@ -137,29 +136,30 @@ def _insert_dcf_inst_merge_from_com_ci(db: Database) -> tuple[bool, list[dict]]:
|
||||
logger.debug('COM施設からDCF施設統合マスタの登録に失敗')
|
||||
raise e
|
||||
|
||||
return (True, result)
|
||||
return (True, duplication_inst_records)
|
||||
|
||||
|
||||
def _output_add_dcf_inst_log(result: list[dict]):
|
||||
sys_update_date = result[0]['sys_update_date']
|
||||
setYearMonth = '{set_year}年{set_month}月'.format(
|
||||
def _output_add_dcf_inst_merge_log(duplication_inst_records: list[dict]):
|
||||
sys_update_date = duplication_inst_records[0]['sys_update_date']
|
||||
set_year_month = '{set_year}年{set_month}月'.format(
|
||||
set_year=sys_update_date[0:4],
|
||||
set_month=sys_update_date[-2:]
|
||||
)
|
||||
|
||||
add_dct_inst = 'DCF施設コード {dcf_dsf_inst_cd} {form_inst_name_kanji}, 重複時相手先コード {dup_opp_cd} {dup_inst_name_kanji}'
|
||||
add_dct_inst_list = []
|
||||
for row in result:
|
||||
add_dct_inst_list.append(add_dct_inst.format(**row))
|
||||
add_dct_inst_list = '\n'.join(add_dct_inst_list)
|
||||
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 = []
|
||||
for row in duplication_inst_records:
|
||||
add_dct_inst_merge_list.append(add_dct_inst_merge.format(**row))
|
||||
add_dct_inst_merge_list = '\n'.join(add_dct_inst_merge_list)
|
||||
|
||||
# 顧客報告用にログ出力
|
||||
logger.info(
|
||||
f"""[NOTICE]DCF施設統合マスタが追加されました。
|
||||
f"""DCF施設統合マスタが追加されました。
|
||||
**********************************************************
|
||||
適用月度 {setYearMonth}
|
||||
適用月度 {set_year_month}
|
||||
**********************************************************
|
||||
{add_dct_inst_list}
|
||||
{add_dct_inst_merge_list}
|
||||
**********************************************************
|
||||
合計 {len(result)}件"""
|
||||
合計 {len(duplication_inst_records)}件"""
|
||||
)
|
||||
return
|
||||
|
||||
@ -7,7 +7,8 @@ from src.batch.batch_functions import (
|
||||
update_batch_processing_flag_in_processing)
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.common.calendar_file import CalendarFile
|
||||
from src.batch.laundering import create_dcf_inst_merge, create_mst_inst
|
||||
from src.batch.dcf_inst_merge import create_dcf_inst_merge
|
||||
from src.batch.laundering import create_mst_inst
|
||||
from src.batch.ultmarc import ultmarc_process
|
||||
from src.error.exceptions import BatchOperationException
|
||||
from src.logging.get_logger import get_logger
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user