From 75d4f85bb2928e498e8caa944cdbcddb5df280eb Mon Sep 17 00:00:00 2001 From: "mori.k" Date: Mon, 2 Jun 2025 17:15:31 +0900 Subject: [PATCH] =?UTF-8?q?=E7=8B=AC=E8=87=AA=E6=96=BD=E8=A8=AD=E3=83=9E?= =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=81=8B=E3=82=89=E3=81=AEinsert=E3=81=AE?= =?UTF-8?q?=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/jskult-batch/src/batch/mst_inst_all.py | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/ecs/jskult-batch/src/batch/mst_inst_all.py b/ecs/jskult-batch/src/batch/mst_inst_all.py index 4b64b27a..7d1bae7d 100644 --- a/ecs/jskult-batch/src/batch/mst_inst_all.py +++ b/ecs/jskult-batch/src/batch/mst_inst_all.py @@ -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 \ No newline at end of file