feat: 施設担当者マスタ洗替(仮製造)

This commit is contained in:
高木要 2023-04-21 13:38:00 +09:00
parent e326347496
commit ceaeffa02c

View File

@ -21,10 +21,10 @@ def exec():
_truncate_emp_chg_inst_lau(db)
# emp_chg_inst から、`emp_chg_inst_lau`へInsert
_insert_into_emp_chg_inst_lau_from_emp_chg_inst(db)
# vop_hco_merge_vから、emp_chg_inst_lauをUpdate
_update_emp_chg_inst_lau_from_vop_hco_merge_v(db, syor_date)
# dcf_inst_mergeから、emp_chg_inst_lauをUpdate
_update_dcf_inst_merge_from_emp_chg_inst_lau(db, syor_date)
# v_inst_merge_tから、emp_chg_inst_lauをUpdate
_update_emp_chg_inst_lau_from_v_inst_merge_t(db, syor_date)
# v_inst_merge_tから、emp_chg_inst_lauをUpdate
_update_v_inst_merge_t_from_emp_chg_inst_lau(db, syor_date)
logger.debug('##########################')
logger.debug('End All Processing PGM.')
except Exception as e:
@ -81,8 +81,8 @@ def _insert_into_emp_chg_inst_lau_from_emp_chg_inst(db: Database):
return
def _update_emp_chg_inst_lau_from_vop_hco_merge_v(db: Database, syor_date: str):
# vop_hco_merge_vはデータが作られないため、この洗い替え処理は基本空振りする
def _update_emp_chg_inst_lau_from_v_inst_merge_t(db: Database, syor_date: str):
# v_inst_merge_tはデータが作られないため、この洗い替え処理は基本空振りする
logger.debug("##########################")
try:
select_result = db.execute_select(
@ -90,35 +90,29 @@ def _update_emp_chg_inst_lau_from_vop_hco_merge_v(db: Database, syor_date: str):
SELECT
COUNT(v_inst_cd) AS row_count
FROM
src05.vop_hco_merge_v
WHERE
STR_TO_DATE(apply_dt, '%Y-%m-%d') <= :syor_date
""",
{'syor_date': syor_date}
internal05.v_inst_merge_t
"""
)
except Exception as e:
logger.debug("Error! `vop_hco_merge_v` Table count error!")
logger.debug("Error! `v_inst_merge_t` Table count error!")
raise e
count = [row for row in select_result][0]['row_count']
if count == 0:
logger.info('vop_hco_merge_v Table Data is not exists!')
logger.info('v_inst_merge_t Table Data is not exists!')
return
logger.info('vop_hco_merge_v Table Data is exists!')
# vop_hco_merge_v から、emp_chg_inst_lauをUpdateします
logger.info('v_inst_merge_t Table Data is exists!')
# v_inst_merge_t から、emp_chg_inst_lauをUpdateします
result = db.execute_select(
"""
SELECT
v_inst_cd,
v_inst_cd_merg
FROM
src05.vop_hco_merge_v
WHERE
STR_TO_DATE(apply_dt, '%Y-%m-%d') <= :syor_date
internal05.v_inst_merge_t
ORDER BY
STR_TO_DATE(apply_dt, '%Y-%m-%d') ASC
""",
{'syor_date': syor_date}
"""
)
for row in result:
v_inst_cd = row['v_inst_cd']
@ -147,9 +141,9 @@ def _update_emp_chg_inst_lau_from_vop_hco_merge_v(db: Database, syor_date: str):
return
def _update_dcf_inst_merge_from_emp_chg_inst_lau(db: Database, syor_date: str):
# dcf_inst_mergeから、emp_chg_inst_lauをUpdate
# Get count from DCF_INST_MERGE
def _update_v_inst_merge_t_from_emp_chg_inst_lau(db: Database, syor_date: str):
# inst_merge_tから、emp_chg_inst_lauをUpdate
# Get count from INST_MERGE_T
logger.debug("##########################")
try:
select_result = db.execute_select(
@ -157,26 +151,20 @@ def _update_dcf_inst_merge_from_emp_chg_inst_lau(db: Database, syor_date: str):
SELECT
COUNT(dcf_inst_cd) AS row_count
FROM
src05.dcf_inst_merge
WHERE
muko_flg = '0'
AND dcf_inst_cd_new IS NOT NULL
AND enabled_flg = 'Y'
AND STR_TO_DATE(CONCAT(tekiyo_month, '01'), '%Y%m%d') <= :syor_date
""",
{'syor_date': syor_date}
internal05.inst_merge_t
"""
)
except Exception as e:
logger.debug("Error! Getting Count of dcf_inst_merge was failed!")
logger.debug("Error! Getting Count of internal05.inst_merge_t was failed!")
raise e
count = [row for row in select_result][0]['row_count']
if count == 0:
logger.info('dcf_inst_merge Table Data is not exists!')
logger.info('inst_merge_t Table Data is not exists!')
return
logger.debug('dcf_inst_merge Table Data is exists!')
# dcf_inst_mergeから、emp_chg_inst_lauをUpdate
logger.debug('inst_merge_t Table Data is exists!')
# inst_merge_tから、emp_chg_inst_lauをUpdate
logger.debug("##########################")
logger.debug("#### UPDATE DATA #########")
logger.debug("##########################")
@ -184,28 +172,15 @@ def _update_dcf_inst_merge_from_emp_chg_inst_lau(db: Database, syor_date: str):
elapsed_time = ElapsedTime()
update_sql = """
UPDATE
src05.emp_chg_inst_lau el,
(
SELECT
dcf_inst_cd,
dcf_inst_cd_new
FROM
src05.dcf_inst_merge
WHERE
muko_flg = '0'
AND dcf_inst_cd_new IS NOT NULL
AND enabled_flg = 'Y'
AND STR_TO_DATE(CONCAT(tekiyo_month, '01'), '%Y%m%d') <= :syor_date
) dm
src05.emp_chg_inst_lau el, internal05.inst_merge_t imt
SET
el.inst_cd = dm.dcf_inst_cd_new,
el.inst_cd = imt.dcf_inst_cd_new,
el.lua_ope_dt = SYSDATE()
WHERE
el.inst_cd = dm.dcf_inst_cd
el.inst_cd = imt.dcf_inst_cd
"""
res = db.execute(
update_sql,
{'syor_date': syor_date}
update_sql
)
logging_sql(logger, update_sql)
logger.info(f'Query OK, {res.rowcount} rows affected ({elapsed_time.of})')