独自施設マスタからのinsertの実装

This commit is contained in:
mori.k 2025-06-02 17:15:31 +09:00
parent a232923909
commit 75d4f85bb2

View File

@ -103,6 +103,8 @@ class MstInstAll(JskultBatchEntrypoint):
self._insert_mst_inst_all_from_com_inst(db)
# com_pharmから、mst_inst_allへInsert
self._insert_mst_inst_all_from_com_pharm(db)
# mst_inst_merckから、最新レコードをmst_inst_allへInsert
self._insert_mst_inst_all_from_mst_inst_merck(db)
logger.info("メルク施設マスタ作成処理終了")
jskult_batch_run_manager.batch_success()
@ -281,3 +283,85 @@ class MstInstAll(JskultBatchEntrypoint):
raise e
return
def _insert_mst_inst_all_from_mst_inst_merck(self, db:Database):
# mst_inst_merckから、mst_inst_allへInsert
try:
sql = """
INSERT INTO
src07.mst_inst_all (
inst_cd,
inst_clas_cd,
inst_name_form,
inst_name,
pref_cd,
city_cd,
pref_name,
city_name,
address,
postal_cd,
tel_num,
bed_num,
manage_cd,
manage_name,
delete_date,
inst_div_cd,
inst_div_name,
yobi,
creater,
create_date,
updater,
update_date
)
SELECT
mim.inst_cd,
CASE LEFT(mim.inst_cd, 2)
WHEN '59' THEN '3'
ELSE '2'
END,
mim.inst_nm_kj,
mim.inst_nm_kj_s,
mim.jis_pref_cd,
mim.jis_city_cd,
mjp.jis_pref_nm_kj,
LEFT(mjc.jis_city_nm_kj, 40),
CONCAT(mim.addr1_nm_kj, mim.addr2_nm_kj),
mim.postal_no,
mim.tel_no,
null,
null,
null,
CASE mim.eff_end_ym
WHEN '999912' THEN null
ELSE CONCAT(mim.eff_end_ym, DATE_FORMAT(LAST_DAY(STR_TO_DATE(mim.eff_end_ym, '%Y%m')), '%d'))
END,
null,
null,
null,
mim.ins_user,
mim.ins_date,
mim.upd_user,
mim.upd_date
FROM
src07.mst_inst_merck AS mim
JOIN (
SELECT mim.inst_cd, MAX(mim.eff_end_ym) AS max_end_ym
FROM src07.mst_inst_merck AS mim
GROUP BY mim.inst_cd
) AS mim_max_end_ym
ON mim.inst_cd = mim_max_end_ym.inst_cd
AND mim.eff_end_ym = mim_max_end_ym.max_end_ym
LEFT OUTER JOIN src07.mst_jis_pref AS mjp
ON mim.jis_pref_cd = mjp.jis_pref_cd
LEFT OUTER JOIN src07.mst_jis_city AS mjc
ON mim.jis_pref_cd = mjc.jis_pref_cd
AND mim.jis_city_cd = mjc.jis_city_cd;
"""
res = db.execute(sql)
logger.info("メルク独自施設マスタからメルク施設マスタに登録成功")
except Exception as e:
logger.info("メルク独自施設マスタからメルク施設マスタに登録失敗")
raise e
return