施設情報セットの実装
This commit is contained in:
parent
45ccc48b97
commit
3d50744e2c
@ -84,13 +84,15 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
db.connect()
|
||||
db.begin()
|
||||
# 生物由来ロット分解データの未確定データを削除する
|
||||
self._delete_not_confirm_data_in_bio_sales_lot(db)
|
||||
self._delete_not_confirm_data_in_trn_result_data_bio_lot(db)
|
||||
# 生物由来ロット分解データを作成する
|
||||
self._insert_bio_sales_lot(db)
|
||||
self._insert_trn_result_data_bio_lot(db)
|
||||
# 生物由来ロット分解データの不要レコードを削除する
|
||||
self._delete_empty_lot_record(db)
|
||||
# 製造ロット管理番号マスタから有効期限を生物由来ロット分解データにセットする
|
||||
self._set_expr_dt_from_lot_num_mst(db)
|
||||
# 施設情報を生物由来ロット分解データにセットする
|
||||
self._set_inst_info_from_com_inst_or_com_pharm_or_mst_inst_merck(db)
|
||||
db.commit()
|
||||
logger.info('生物由来卸販売ロット分解処理終了')
|
||||
return
|
||||
@ -122,7 +124,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
INNER JOIN src07.trn_result_data_bio AS bio
|
||||
ON bio.account_ym = lot.account_ym
|
||||
AND bio.seq_no = lot.seq_no
|
||||
AND IFNULL(DATE(bio.upd_date), DATE(bio.ins_date)) >= src07.get_syor_date()
|
||||
AND IFNULL(bio.upd_date, bio.ins_date) >= src07.get_syor_date()
|
||||
"""
|
||||
res = db.execute(sql)
|
||||
except Exception as e:
|
||||
@ -166,6 +168,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
bio.cls_whlslr_nm AS cls_whlslr_nm,
|
||||
bio.cls_prod_nm AS cls_prod_nm,
|
||||
bio.cnvs_prod_cd AS cnvs_prod_cd,
|
||||
-- 3レコードに分解する
|
||||
CASE conv.conv_cd
|
||||
WHEN 1 THEN bio.cnvs_lot_sales_qty_1
|
||||
WHEN 2 THEN bio.cnvs_lot_sales_qty_2
|
||||
@ -173,6 +176,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
END AS cnvs_lot_sales_qty,
|
||||
bio.cnvs_inst_cd AS cnvs_inst_cd,
|
||||
bio.cls_inst_nm AS cls_inst_nm,
|
||||
-- COM_施設 or COM_薬局 or メルク独自施設マスタから後ほどセット
|
||||
NULL AS inst_addr,
|
||||
NULL AS inst_tel,
|
||||
bio.result_cd AS result_cd,
|
||||
@ -192,14 +196,14 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
WHEN '3' THEN 'VAN-Web'
|
||||
WHEN 'S' THEN 'SCSK-VAN'
|
||||
END AS if_kind,
|
||||
-- 製品コード、ロット番号でロットマスタよりセット
|
||||
bio.ck_last_dt_txt AS ck_last_dt_txt
|
||||
-- 製品コード、ロット番号でロットマスタより後ほどセット
|
||||
NULL AS ck_last_dt_txt
|
||||
FROM
|
||||
src07.trn_result_data_bio bio
|
||||
-- 生物由来変換マスタ
|
||||
CROSS JOIN src07.bio_conv conv
|
||||
WHERE
|
||||
IFNULL(DATE(bio.upd_date), DATE(bio.ins_date)) >= src07.get_syor_date()
|
||||
IFNULL(bio.upd_date, bio.ins_date) >= src07.get_syor_date()
|
||||
"""
|
||||
db.execute(sql)
|
||||
|
||||
@ -210,7 +214,7 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
|
||||
|
||||
def _delete_empty_lot_record(self, db: Database):
|
||||
logger.info('生物由来ロット分解データの製造番号が空のレコードを削除開始')
|
||||
logger.info('生物由来ロット分解データのロット番号が空のレコードを削除開始')
|
||||
try:
|
||||
sql = """
|
||||
DELETE FROM src07.trn_result_data_bio_lot lot
|
||||
@ -220,9 +224,9 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
"""
|
||||
res = db.execute(sql)
|
||||
except Exception as e:
|
||||
logger.info('生物由来ロット分解データの製造番号が空のレコードを削除に失敗')
|
||||
logger.info('生物由来ロット分解データのロット番号が空のレコードを削除に失敗')
|
||||
raise e
|
||||
logger.info('生物由来ロット分解データの製造番号が空のレコードを削除に成功')
|
||||
logger.info('生物由来ロット分解データのロット番号が空のレコードを削除に成功')
|
||||
|
||||
|
||||
def _set_inst_info_from_com_inst_or_com_pharm_or_mst_inst_merck(self, db: Database):
|
||||
@ -230,71 +234,57 @@ class TrnResultDataBioLot(JskultBatchEntrypoint):
|
||||
try:
|
||||
sql = """
|
||||
UPDATE
|
||||
src07.trn_result_data_bio_lot lot
|
||||
SET
|
||||
-- 施設住所
|
||||
inst_addr = (
|
||||
SELECT
|
||||
CASE LEFT(bio.cnvs_inst_cd, 2)
|
||||
WHEN '00' THEN ci.inst_addr
|
||||
WHEN '03' THEN cp.inst_addr
|
||||
ELSE mim.addr2_nm_kj
|
||||
END AS inst_addr
|
||||
FROM src07.trn_result_data_bio bio
|
||||
src07.trn_result_data_bio_lot bio
|
||||
-- COM_施設
|
||||
LEFT OUTER JOIN src05.com_inst ci
|
||||
ON bio.cnvs_inst_cd = ci.dcf_dsf_inst_cd
|
||||
ON bio.cnvs_inst_cd = ci.dcf_dsf_inst_cd
|
||||
-- COM_薬局
|
||||
LEFT OUTER JOIN src05.com_pharm cp
|
||||
ON bio.cnvs_inst_cd = cp.dcf_dsf_inst_cd
|
||||
ON bio.cnvs_inst_cd = cp.dcf_dsf_inst_cd
|
||||
-- 独自施設マスタ
|
||||
LEFT OUTER JOIN src07.mst_inst_merck mim
|
||||
ON bio.cnvs_inst_cd = mim.inst_cd
|
||||
|
||||
|
||||
),
|
||||
-- 施設電話番号
|
||||
inst_tel = (
|
||||
SELECT
|
||||
CASE LEFT(bio.cnvs_inst_cd, 2)
|
||||
WHEN '00' THEN ci.inst_phone_number
|
||||
WHEN '03' THEN cm.inst_phone_number
|
||||
ELSE mim.tel_no
|
||||
END AS inst_tel
|
||||
FROM src07.trn_result_data_bio bio
|
||||
-- COM_施設
|
||||
LEFT OUTER JOIN src05.com_inst ci
|
||||
ON bio.cnvs_inst_cd = ci.dcf_dsf_inst_cd
|
||||
-- COM_薬局
|
||||
LEFT OUTER JOIN src05.com_pharm cp
|
||||
ON bio.cnvs_inst_cd = cp.dcf_dsf_inst_cd
|
||||
-- 独自施設マスタ
|
||||
LEFT OUTER JOIN src07.mst_inst_merck mim
|
||||
ON bio.cnvs_inst_cd = mim.inst_cd
|
||||
)
|
||||
ON bio.cnvs_inst_cd = mim.inst_cd
|
||||
AND DATE_FORMAT(bio.cnvs_sales_dt, '%Y%m') BETWEEN mim.eff_start_ym
|
||||
AND mim.eff_end_ym
|
||||
-- 施設住所
|
||||
SET lot.inst_addr = (
|
||||
CASE LEFT(bio.cnvs_inst_cd, 2)
|
||||
WHEN '00' THEN ci.inst_addr
|
||||
WHEN '03' THEN cp.inst_addr
|
||||
ELSE mim.addr2_nm_kj
|
||||
END
|
||||
),
|
||||
-- 施設電話番号
|
||||
lot.inst_tel = (
|
||||
CASE LEFT(bio.cnvs_inst_cd, 2)
|
||||
WHEN '00' THEN ci.inst_phone_number
|
||||
WHEN '03' THEN cm.inst_phone_number
|
||||
ELSE mim.tel_no
|
||||
END
|
||||
)
|
||||
"""
|
||||
res = db.execute(sql)
|
||||
except Exception as e:
|
||||
logger.info('COM_施設 or COM_薬局 or メルク独自施設マスタから施設情報を生物由来ロット分解データにセット開始')
|
||||
logger.info('COM_施設 or COM_薬局 or メルク独自施設マスタから施設情報を生物由来ロット分解データにセット失敗')
|
||||
raise e
|
||||
logger.info('COM_施設 or COM_薬局 or メルク独自施設マスタから施設情報を生物由来ロット分解データにセット開始')
|
||||
logger.info('COM_施設 or COM_薬局 or メルク独自施設マスタから施設情報を生物由来ロット分解データにセット成功')
|
||||
|
||||
|
||||
def _set_expr_dt_from_lot_num_mst(self, db: Database):
|
||||
# 製造ロット管理番号マスタから有効期限をセット
|
||||
logger.info('製造ロット管理番号マスタから有効期限をセット開始')
|
||||
def _set_ck_last_dt_txt_from_customer_lotno_all(self, db: Database):
|
||||
# ロットマスタから有効期限をセット
|
||||
logger.info('ロットマスタから有効期限をセット開始')
|
||||
try:
|
||||
sql = """
|
||||
UPDATE
|
||||
src07.bio_sales_lot bio
|
||||
LEFT OUTER JOIN src05.lot_num_mst lot
|
||||
ON bio.mkr_cd = lot.ser_num
|
||||
AND bio.rec_lot_num = lot.lot_num
|
||||
src07.trn_result_data_bio_lot bio
|
||||
LEFT OUTER JOIN src07.customer_lotno_all cla
|
||||
ON bio.cnvs_prod_cd = cla.material_cd
|
||||
AND bio.cnvs_lot_no = cla.lot_no_txt
|
||||
SET
|
||||
bio.expr_dt = lot.expr_dt
|
||||
bio.ck_last_dt_txt = cla.ck_last_dt_txt
|
||||
"""
|
||||
res = db.execute(sql)
|
||||
except Exception as e:
|
||||
logger.info('製造ロット管理番号マスタから有効期限をセットに失敗')
|
||||
logger.info('ロットマスタから有効期限をセット失敗')
|
||||
raise e
|
||||
logger.info('製造ロット管理番号マスタから有効期限をセットに成功')
|
||||
logger.info('ロットマスタから有効期限をセット成功')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user