From ceaeffa02c99b45c21eeaa1708b20a4663cdaf4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=9C=A8=E8=A6=81?= Date: Fri, 21 Apr 2023 13:38:00 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=BD=E8=A8=AD=E6=8B=85=E5=BD=93?= =?UTF-8?q?=E8=80=85=E3=83=9E=E3=82=B9=E3=82=BF=E6=B4=97=E6=9B=BF(?= =?UTF-8?q?=E4=BB=AE=E8=A3=BD=E9=80=A0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laundering/emp_chg_inst_laundering.py | 79 +++++++------------ 1 file changed, 27 insertions(+), 52 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py index e9d77529..aabf4e10 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py @@ -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})')