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