From 091837fe68a4fa570f0eefe92f1a196d496c5126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=9C=A8=E8=A6=81?= Date: Tue, 2 May 2023 13:22:37 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E6=8C=87=E6=91=98=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../batch/laundering/mst_inst_laundering.py | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py index 3c870328..51a56697 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py @@ -25,8 +25,6 @@ def exec(): _truncate_mst_inst(db) # fcl_mst_vから、mst_instへInsert _insert_mst_inst_from_fcl_mst_v(db) - # オプティマイザのderived_mergeフラグをoffにする - _set_optimizer_derived_merge_off(db) # com_instから、mst_instへInsert _insert_mst_inst_from_com_inst(db) logger.debug('メルク施設マスタ作成処理終了') @@ -73,17 +71,17 @@ def _insert_mst_inst_from_fcl_mst_v(db: Database): SELECT fmv1.v_inst_cd, CASE - WHEN fmv1.fcl_type IN ('A1','A0') THEN '3' + WHEN fmv1.fcl_type IN ('A1', 'A0') THEN '3' WHEN fmv1.fcl_type BETWEEN '20' AND '29' THEN '2' END AS inst_clas_cd, fmv1.fcl_name, fmv1.fcl_abb_name, fmv1.prft_cd, - RIGHT(fmv1.admin_kbn,3), + RIGHT(fmv1.admin_kbn, 3), mp.prefc_name, - LEFT(mc.city_name,40), + LEFT(mc.city_name, 40), CASE - WHEN fmv1.fcl_type IN ('A1','A0') THEN LEFT(fmv1.fmt_addr, 200) + WHEN fmv1.fcl_type IN ('A1', 'A0') THEN LEFT(fmv1.fmt_addr, 200) WHEN fmv1.fcl_type BETWEEN '20' AND '29' THEN CONCAT(fmv1.prft_name,fmv1.city_name,fmv1.addr_line_1) END AS address, fmv1.postal_cd, @@ -108,10 +106,10 @@ def _insert_mst_inst_from_fcl_mst_v(db: Database): LEFT OUTER JOIN src05.mst_prefc AS mp ON fmv1.prft_cd = mp.prefc_cd LEFT OUTER JOIN src05.mst_city AS mc - ON LEFT(fmv1.admin_kbn,2) = mc.prefc_cd - AND RIGHT(fmv1.admin_kbn,3) = mc.city_cd + ON LEFT(fmv1.admin_kbn, 2) = mc.prefc_cd + AND RIGHT(fmv1.admin_kbn, 3) = mc.city_cd WHERE - ((fmv1.fcl_type IN ('A1','A0')) OR fmv1.fcl_type BETWEEN '20' AND '29') + ((fmv1.fcl_type IN ('A1', 'A0')) OR fmv1.fcl_type BETWEEN '20' AND '29') AND fmv1.rec_sts_kbn != '9' """ res = db.execute(sql) @@ -124,19 +122,18 @@ def _insert_mst_inst_from_fcl_mst_v(db: Database): return -def _set_optimizer_derived_merge_off(db: Database): +def _insert_mst_inst_from_com_inst(db: Database): # オプティマイザのderived_mergeフラグをoffにする try: sql = """ SET SESSION optimizer_switch = 'derived_merge=off' """ db.execute(sql) + logger.info("オプティマイザのderived_mergeフラグ = Off") except Exception as e: logger.debug("オプティマイザのderived_mergeフラグの値変更に失敗") raise e - -def _insert_mst_inst_from_com_inst(db: Database): # com_instから、mst_instへInsert try: elapsed_time = ElapsedTime() @@ -200,7 +197,7 @@ def _insert_mst_inst_from_com_inst(db: Database): ON ci.manage_cd = cm.manage_cd LEFT OUTER JOIN src05.com_inst_div AS cid ON ci.inst_div_cd = cid.inst_div_cd - LEFT OUTER JOIN ( + LEFT OUTER JOIN ( -- MDBコード変換表を使用してV施設コードを取得するためのテーブル結合 SELECT mcmv4.* FROM ( @@ -211,21 +208,21 @@ def _insert_mst_inst_from_com_inst(db: Database): INNER JOIN ( SELECT mcmv2.hco_vid_v, - MAX(mcmv2.sub_num) AS sno + MAX(mcmv2.sub_num) AS sno -- MDBコード変換データの枝番MAX FROM src05.mdb_cnv_mst_v mcmv2 WHERE - mcmv2.rec_sts_kbn != '9' + mcmv2.rec_sts_kbn != '9' -- 状態区分9(削除)以外 and 適用開始≦日付テーブル.処理日 AND src05.get_syor_date() >= mcmv2.start_date GROUP BY mcmv2.hco_vid_v ) AS mcmv3 ON mcmv1.hco_vid_v = mcmv3.hco_vid_v AND mcmv1.sub_num = mcmv3.sno - ) mcmv4 + ) AS mcmv4 INNER JOIN ( SELECT - MIN(mcmv8.hco_vid_v) AS hvv, + MIN(mcmv8.hco_vid_v) AS hvv, -- 1つのMDBコードに対し、複数のV施設コードが割り当てられている場合、最小のV施設コードを選択する mcmv8.mdb_cd FROM ( SELECT @@ -235,11 +232,11 @@ def _insert_mst_inst_from_com_inst(db: Database): INNER JOIN ( SELECT mcmv6.hco_vid_v, - MAX(mcmv6.SUB_NUM) AS sno + MAX(mcmv6.sub_num) AS sno -- MDBコード変換データの枝番MAX FROM src05.mdb_cnv_mst_v AS mcmv6 WHERE - mcmv6.rec_sts_kbn != '9' + mcmv6.rec_sts_kbn != '9' -- 状態区分9(削除)以外 and 適用開始≦日付テーブル.処理日 AND src05.get_syor_date() >= mcmv6.start_date GROUP BY mcmv6.hco_vid_v