feat: 仕様変更対応

This commit is contained in:
高木要 2023-06-30 15:15:55 +09:00
parent a808e03ea8
commit 535ae8fa48

View File

@ -55,12 +55,14 @@ def _set_disabled_dct_inst_merge(db: Database):
_update_dcf_inst_cd_new(db, row['dcf_inst_cd'], row['dup_opp_cd'], '戻し')
def _select_ult_ident_presc_ta_cd(db: Database, dcf_inst_cd: str) -> list[dict]:
# 納入先処方元マスタから、DCF施設コードに対応した領域コードの取得
def _select_ult_ident_presc_dcf_inst_cd(db: Database, dcf_inst_cd: str) -> list[dict]:
# 納入先処方元マスタから、DCF施設コードに対応したコードの取得
try:
sql = """
SELECT
ta_cd
ta_cd,
ult_ident_cd,
ratio
FROM
src05.ult_ident_presc
WHERE
@ -70,9 +72,9 @@ def _select_ult_ident_presc_ta_cd(db: Database, dcf_inst_cd: str) -> list[dict]:
params = {'dcf_inst_cd': dcf_inst_cd}
ult_ident_presc_ta_cd_records = db.execute_select(sql, params)
logging_sql(logger, sql)
logger.info('納入先処方元マスタから領域コードの取得に成功')
logger.info('納入先処方元マスタからDCF施設コードに対応したレコードの取得に成功')
except Exception as e:
logger.debug('納入先処方元マスタから領域コードの取得に失敗')
logger.debug('納入先処方元マスタからDCF施設コードに対応したレコードの取得に失敗')
raise e
return ult_ident_presc_ta_cd_records
@ -83,11 +85,12 @@ def _add_ult_ident_presc(db: Database, enabled_dst_inst_merge_records: list[dict
logger.info('納入先処方元マスタの登録 開始')
for data_inst_cnt, enabled_merge_record in enumerate(enabled_dst_inst_merge_records, start=1):
tekiyo_month_first_day = _get_first_day_of_month(enabled_merge_record['tekiyo_month'])
ult_ident_presc_ta_cd_records = _select_ult_ident_presc_ta_cd(db, enabled_merge_record['dcf_inst_cd'])
for ult_ident_presc_ta_cd_record in ult_ident_presc_ta_cd_records:
ult_ident_presc_records = _select_ult_ident_presc(db, enabled_merge_record['dcf_inst_cd'],
ult_ident_presc_source_records = _select_ult_ident_presc_dcf_inst_cd(db, enabled_merge_record['dcf_inst_cd'])
for ult_ident_presc_source_record in ult_ident_presc_source_records:
ult_ident_presc_records = _select_ult_ident_presc(db,
enabled_merge_record['dcf_inst_cd'],
enabled_merge_record['dup_opp_cd'],
ult_ident_presc_ta_cd_record['ta_cd'])
ult_ident_presc_source_record)
for data_cnt, ult_ident_presc_row in enumerate(ult_ident_presc_records, start=1):
logger.info(f'{data_inst_cnt}件目の移行施設の{data_cnt}レコード目処理 開始')
# 処方元コード=重複時相手先コードが発生した場合
@ -554,7 +557,8 @@ def _select_emp_chg_inst(db: Database, dcf_inst_cd: str, dup_opp_cd: str, ta_cd:
return emp_chg_inst_records
def _select_ult_ident_presc(db: Database, dcf_inst_cd: str, dup_opp_cd: str, ta_cd: str) -> list[dict]:
def _select_ult_ident_presc(db: Database, dcf_inst_cd: str, dup_opp_cd: str,
ult_ident_presc_row: dict) -> list[dict]:
# ult_ident_prescからSELECT
try:
sql = """
@ -572,6 +576,8 @@ def _select_ult_ident_presc(db: Database, dcf_inst_cd: str, dup_opp_cd: str, ta_
WHERE
uipopp.presc_cd = :dup_opp_cd
AND uipopp.ta_cd = :ta_cd
AND uipopp.ult_ident_cd = :ult_ident_cd
AND uipopp.ratio = :ratio
) AS opp_count
FROM
src05.ult_ident_presc AS uip
@ -580,7 +586,13 @@ def _select_ult_ident_presc(db: Database, dcf_inst_cd: str, dup_opp_cd: str, ta_
AND uip.ta_cd = :ta_cd
AND (SELECT ht.syor_date FROM src05.hdke_tbl AS ht) < uip.end_date
"""
params = {'dcf_inst_cd': dcf_inst_cd, 'dup_opp_cd': dup_opp_cd, 'ta_cd': ta_cd}
params = {
'dcf_inst_cd': dcf_inst_cd,
'dup_opp_cd': dup_opp_cd,
'ta_cd': ult_ident_presc_row['ta_cd'],
'ult_ident_cd': ult_ident_presc_row['ult_ident_cd'],
'ratio': ult_ident_presc_row['ratio']
}
ult_ident_presc_records = db.execute_select(sql, params)
logging_sql(logger, sql)
logger.info('納入先処方元マスタの取得 成功')