feat: レビュー指摘対応

This commit is contained in:
高木要 2023-05-02 13:22:37 +09:00
parent 1a13839e72
commit 091837fe68

View File

@ -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