COM_薬局からのinsert

This commit is contained in:
mori.k 2025-06-02 10:15:20 +09:00
parent 77d1ca41f5
commit 80da987224

View File

@ -97,10 +97,10 @@ class MstInstAll(JskultBatchEntrypoint):
logger.debug('メルク施設マスタ作成処理開始') logger.debug('メルク施設マスタ作成処理開始')
# mst_inst_allをTruncate # mst_inst_allをTruncate
self._truncate_mst_inst_all(self._db) self._truncate_mst_inst_all(self._db)
# com_pharmから、mst_inst_allへInsert
self._insert_mst_inst_all_from_com_pharm(self._db)
# com_instから、mst_inst_allへInsert # com_instから、mst_inst_allへInsert
self._insert_mst_inst_all_from_com_inst(self._db) self._insert_mst_inst_all_from_com_inst(self._db)
# com_pharmから、mst_inst_allへInsert
self._insert_mst_inst_all_from_com_pharm(self._db)
logger.debug('メルク施設マスタ作成処理終了') logger.debug('メルク施設マスタ作成処理終了')
except Exception as e: except Exception as e:
raise BatchOperationException(e) raise BatchOperationException(e)
@ -134,61 +134,52 @@ class MstInstAll(JskultBatchEntrypoint):
address, address,
postal_cd, postal_cd,
tel_num, tel_num,
bed_num,
manage_cd,
manage_name,
delete_date, delete_date,
v_inst_cd, inst_div_cd,
inst_div_name,
yobi,
creater,
create_date, create_date,
updater,
update_date update_date
) )
SELECT SELECT
fmv1.v_inst_cd, cp.dcf_dsf_inst_cd,
CASE '2',
WHEN fmv1.fcl_type IN ('A1', 'A0') THEN '3' cp.form_inst_name_kanji,
WHEN fmv1.fcl_type BETWEEN '20' AND '29' THEN '2' cp.inst_name_kanji,
END AS inst_clas_cd, cp.prefc_cd,
fmv1.fcl_name, cp.city_cd,
fmv1.fcl_abb_name,
fmv1.prft_cd,
RIGHT(fmv1.admin_kbn, 3),
mp.prefc_name, mp.prefc_name,
LEFT(mc.city_name, 40), LEFT(mc.city_name, 40),
CASE cp.inst_addr,
WHEN fmv1.fcl_type IN ('A1', 'A0') THEN LEFT(fmv1.fmt_addr, 200) cp.postal_number,
WHEN fmv1.fcl_type BETWEEN '20' AND '29' THEN CONCAT(fmv1.prft_name,fmv1.city_name,fmv1.addr_line_1) null,
END AS address, null,
fmv1.postal_cd, null,
fmv1.tel_num, LEFT(cm.manage_name, 40),
CASE cp.abolish_ymd,
WHEN cp.inst_div_cd,
fmv1.fcl_type BETWEEN '20' AND '29' THEN LEFT(fmv1.closed_dt, 10) LEFT(cid.inst_div_name, 40),
WHEN null,
fmv1.fcl_type IN ('A1', 'A0') AND fmv1.end_date != '9999-12-31' THEN DATE_FORMAT(fmv1.end_date, "%Y-%m-%d") cp.create_user,
ELSE cp.regist_date,
null cp.update_user,
END AS delete_date, cp.update_date
fmv1.v_inst_cd,
fmv1.ins_dt,
fmv1.upd_dt
FROM FROM
src05.fcl_mst_v AS fmv1 src05.com_pharm AS cp
INNER JOIN (
SELECT
v_inst_cd,
MAX(sub_num) AS sno
FROM
src05.fcl_mst_v
GROUP BY
v_inst_cd
) fmv2
ON fmv1.v_inst_cd = fmv2.v_inst_cd
AND fmv1.sub_num = fmv2.sno
LEFT OUTER JOIN src05.mst_prefc AS mp LEFT OUTER JOIN src05.mst_prefc AS mp
ON fmv1.prft_cd = mp.prefc_cd ON cp.prefc_cd = mp.prefc_cd
LEFT OUTER JOIN src05.mst_city AS mc LEFT OUTER JOIN src05.mst_city AS mc
ON LEFT(fmv1.admin_kbn, 2) = mc.prefc_cd ON cp.prefc_cd = mc.prefc_cd
AND RIGHT(fmv1.admin_kbn, 3) = mc.city_cd AND cp.city_cd = mc.city_cd
WHERE LEFT OUTER JOIN src05.com_manage AS cm
((fmv1.fcl_type IN ('A1', 'A0')) OR fmv1.fcl_type BETWEEN '20' AND '29') ON cp.manage_cd = cm.manage_cd
AND fmv1.rec_sts_kbn != '9' LEFT OUTER JOIN src05.com_inst_div AS cid
ON cp.inst_div_cd = cid.inst_div_cd
""" """
res = db.execute(sql) res = db.execute(sql)
logger.info(f'COM_薬局からメルク施設マスタに登録成功') logger.info(f'COM_薬局からメルク施設マスタに登録成功')
@ -232,6 +223,7 @@ class MstInstAll(JskultBatchEntrypoint):
delete_date, delete_date,
inst_div_cd, inst_div_cd,
inst_div_name, inst_div_name,
yobi,
creater, creater,
create_date, create_date,
updater, updater,
@ -255,6 +247,7 @@ class MstInstAll(JskultBatchEntrypoint):
ci.abolish_ymd, ci.abolish_ymd,
ci.inst_div_cd, ci.inst_div_cd,
LEFT(cid.inst_div_name, 40), LEFT(cid.inst_div_name, 40),
null,
ci.create_user, ci.create_user,
ci.regist_date, ci.regist_date,
ci.update_user, ci.update_user,
@ -272,9 +265,9 @@ class MstInstAll(JskultBatchEntrypoint):
ON ci.inst_div_cd = cid.inst_div_cd ON ci.inst_div_cd = cid.inst_div_cd
""" """
res = db.execute(sql) res = db.execute(sql)
logger.info(f'COM施設からメルク施設マスタに登録成功') logger.info(f'COM_施設からメルク施設マスタに登録成功')
except Exception as e: except Exception as e:
logger.debug("COM施設からメルク施設マスタに登録失敗") logger.debug("COM_施設からメルク施設マスタに登録失敗")
raise e raise e
return return