From 20907bc4bdd102d9ef191ee17ff96852cea8c397 Mon Sep 17 00:00:00 2001 From: "mori.k" Date: Wed, 28 May 2025 20:54:33 +0900 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E7=89=A9=E7=94=B1=E6=9D=A5=E3=83=AD?= =?UTF-8?q?=E3=83=83=E3=83=88=E5=88=86=E8=A7=A3=E3=83=87=E3=83=BC=E3=82=BF?= =?UTF-8?q?=E3=81=AE=E4=BD=9C=E6=88=90=E3=81=AE=E5=A4=96=E9=83=A8=E7=B5=90?= =?UTF-8?q?=E5=90=88=E4=BB=A5=E5=A4=96=E3=81=BE=E3=81=A7=E3=81=AE=E3=82=B3?= =?UTF-8?q?=E3=83=9F=E3=83=83=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/batch/trn_result_data_bio_lot.py | 256 ++++-------------- 1 file changed, 60 insertions(+), 196 deletions(-) diff --git a/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py b/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py index 68e31531..3dd1a7bb 100644 --- a/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py +++ b/ecs/jskult-batch/src/batch/trn_result_data_bio_lot.py @@ -135,211 +135,75 @@ class TrnResultDataBioLot(JskultBatchEntrypoint): logger.info('生物由来ロット分解データの作成開始') try: sql = """ - INSERT INTO src07.bio_sales_lot + INSERT INTO src07.trn_result_data_bio_lot SELECT - bio.slip_mgt_num AS slip_mgt_num, + bio.account_ym AS account_ym, + bio.seq_no AS seq_no, conv.conv_cd AS conv_cd, - bio.rec_whs_cd AS rec_whs_cd, - bio.rec_whs_sub_cd AS rec_whs_sub_cd, - bio.rec_whs_org_cd AS rec_whs_org_cd, - bio.rec_comm_cd AS rec_comm_cd, - bio.rec_tran_kbn AS rec_tran_kbn, - bio.rev_hsdnymd_srk AS rev_hsdnymd_srk, - bio.rec_urag_num AS rec_urag_num, - bio.rec_comm_name AS rec_comm_name, - bio.rec_nonyu_fcl_name AS rec_nonyu_fcl_name, - bio.rec_nonyu_fcl_addr AS rec_nonyu_fcl_addr, + bio.orig_whlslr_cd AS orig_whlslr_cd, + bio.orig_whlslr_sub_cd AS orig_whlslr_sub_cd, + bio.edit_whlslr_org_cd AS edit_whlslr_org_cd, + bio.orig_univ_product_cd AS orig_univ_product_cd, + bio.edit_deal_div_cd AS edit_deal_div_cd, + bio.cnvs_sales_dt AS cnvs_sales_dt, + bio.orig_slip_no AS orig_slip_no, + bio.orig_prod_nm AS orig_prod_nm, + bio.edit_endusr_cd AS edit_endusr_cd, + bio.orig_endusr_nm AS orig_endusr_nm, + bio.orig_jd45_addr_txt AS orig_jd45_addr_txt, -- 3レコードに分解する CASE conv.conv_cd - WHEN 1 THEN bio.rec_lot_num1 - WHEN 2 THEN bio.rec_lot_num2 - WHEN 3 THEN bio.rec_lot_num3 - END AS rec_lot_num, - bio.rec_ymd AS rec_ymd, - bio.v_tran_cd AS v_tran_cd, - bio.tran_kbn_name AS tran_kbn_name, - bio.whs_org_cd AS whs_org_cd, - bio.v_whsorg_cd AS v_whsorg_cd, - bio.whs_org_name AS whs_org_name, - bio.v_whs_cd AS v_whs_cd, - bio.whs_name AS whs_name, - bio.nonyu_fcl_cd AS nonyu_fcl_cd, - bio.v_inst_cd AS v_inst_cd, - bio.v_inst_kn AS v_inst_kn, - bio.v_inst_name AS v_inst_name, - bio.v_inst_addr AS v_inst_addr, - bio.comm_cd AS comm_cd, - bio.product_name AS product_name, - bio.whs_rep_comm_name AS whs_rep_comm_name, - bio.whs_rep_nonyu_fcl_name AS whs_rep_nonyu_fcl_name, - bio.whs_rep_nonyu_fcl_addr AS whs_rep_nonyu_fcl_addr, - /* 製品名と製品コードは後ほどV製品マスタからセットする */ - -- 製品名 - NULL AS mkr_inf_1, - -- 製品コード - NULL AS mkr_cd, - -- 数量 - -- Veeva取引区分の先頭が「2」の場合、マイナス表示にする - CASE conv.conv_cd - WHEN 1 THEN - CASE - WHEN (LEFT(bio.v_tran_cd, 1) = 2 AND bio.qty1 >= 1) THEN -bio.qty1 - ELSE bio.qty1 - END - WHEN 2 THEN - CASE - WHEN (LEFT(bio.v_tran_cd, 1) = 2 AND bio.qty2 >= 1) THEN -bio.qty2 - ELSE bio.qty2 - END - WHEN 3 THEN - CASE - WHEN (LEFT(bio.v_tran_cd, 1) = 2 AND bio.qty3 >= 1) THEN -bio.qty3 - ELSE bio.qty3 - END - END AS qty, - bio.slip_org_kbn AS slip_org_kbn, - bio.bef_slip_mgt_num AS bef_slip_mgt_num, - CASE conv.conv_cd - WHEN 1 THEN bio.err_flg11 - WHEN 2 THEN bio.err_flg12 - WHEN 3 THEN bio.err_flg13 - END AS lot_no_err_flg, - CASE bio.err_flg20 - WHEN 'M' THEN '*' - ELSE NULL - END AS iko_flg, - CASE bio.rec_sts_kbn - WHEN '0' THEN bio.rec_sts_kbn - WHEN '1' THEN - CASE conv.conv_cd - WHEN 1 THEN bio.err_flg11 - WHEN 2 THEN bio.err_flg12 - WHEN 3 THEN bio.err_flg13 - END - END AS rec_sts_kbn, - CASE - WHEN bio.bef_slip_mgt_num IS NOT NULL THEN bio.ins_dt - ELSE NULL - END AS ins_dt, - CASE - WHEN bio.bef_slip_mgt_num IS NOT NULL THEN bio.ins_usr - ELSE NULL - END AS ins_usr, - bio.dwh_upd_dt AS dwh_upd_dt, - /* 施設情報は後ほどセットする */ - -- 施設コード - NULL AS inst_cd, - -- 正式施設名(漢字) - NULL AS inst_name_form, - -- 施設住所 - NULL AS address, - -- 施設電話番号 - NULL AS tel_num, - CASE conv.conv_cd - WHEN 1 THEN - CASE bio.err_flg11 - WHEN '0' THEN '正常' - WHEN '1' THEN 'ロットエラー' - WHEN '2' THEN 'ロットエラー' - WHEN '3' THEN 'エラー(解消済)' - WHEN '4' THEN 'ロット不明' - WHEN '5' THEN 'エラー(解消済)' - WHEN '6' THEN 'ロット不明' - WHEN '7' THEN '除外' - WHEN '8' THEN '除外' - WHEN 'Z' THEN '除外' - END - WHEN 2 THEN - CASE bio.err_flg12 - WHEN '0' THEN '正常' - WHEN '1' THEN 'ロットエラー' - WHEN '2' THEN 'ロットエラー' - WHEN '3' THEN 'エラー(解消済)' - WHEN '4' THEN 'ロット不明' - WHEN '5' THEN 'エラー(解消済)' - WHEN '6' THEN 'ロット不明' - WHEN '7' THEN '除外' - WHEN '8' THEN '除外' - WHEN 'Z' THEN '除外' - END - WHEN 3 THEN - CASE bio.err_flg13 - WHEN '0' THEN '正常' - WHEN '1' THEN 'ロットエラー' - WHEN '2' THEN 'ロットエラー' - WHEN '3' THEN 'エラー(解消済)' - WHEN '4' THEN 'ロット不明' - WHEN '5' THEN 'エラー(解消済)' - WHEN '6' THEN 'ロット不明' - WHEN '7' THEN '除外' - WHEN '8' THEN '除外' - WHEN 'Z' THEN '除外' - END + WHEN 1 THEN bio.cnvs_lot_no_1 + WHEN 2 THEN bio.cnvs_lot_no_2 + WHEN 3 THEN bio.cnvs_lot_no_3 + END AS cnvs_lot_no, + bio.load_dt AS load_dt, + bio.cnvs_deal_div_cd AS cnvs_deal_div_cd, + bio.cls_deal_div_nm AS cls_deal_div_nm, + bio.cnvs_depo_cd + bio.cls_depo_nm AS cls_depo_nm, + bio.cnvs_whlslr_cd AS cnvs_whlslr_cd, + bio.cls_whlslr_nm AS cls_whlslr_nm, + bio.cls_prod_nm AS cls_prod_nm, + bio.cnvs_prod_cd AS nvs_prod_cd, + bio.cnvs_lot_sales_qty_1 AS cnvs_lot_sales_qty_1, + bio.cnvs_inst_cd AS cnvs_inst_cd, + bio.cls_inst_nm AS cls_inst_nm, + CASE LEFT(bio.cnvs_inst_cd, 2) + WHEN '00' THEN src05.com_inst.inst_addr + WHEN '03' THEN src05.com_pharm.inst_addr + ELSE src07.mst_inst_merck.addr2_nm_kj + END AS inst_addr, + CASE LEFT(bio.cnvs_inst_cd, 2) + WHEN '00' THEN src05.com_inst.inst_phone_number + WHEN '03' THEN src05.com_pharm.inst_phone_number + WHEN src07.mst_inst_merck.tel_no + END AS inst_tel AS inst_tel, + bio.result_cd AS result_cd, + bio.src_cd AS src_cd, + -- 判定結果CDより値を設定する + CASE bio.result_cd + WHEN '1:正常' THEN '正常' + WHEN '2:卸間転送除外対象データ' THEN '卸間転送除外対象' + WHEN 'E:事前想定したエラーが発生したデータ' THEN 'エラー' + WHEN 'D:レコード重複エラーが発生したデータ' THEN 'エラー(重複)' + WHEN 'Z:想定外のエラーが発生したデータ' THEN 'エラー(想定外)' END AS data_kbn, - CASE bio.slip_org_kbn - WHEN 'J' THEN 'JD-NET' - WHEN 'N' THEN 'NHI' - WHEN 'H' THEN '手入力' - END AS data_kind, - CASE conv.conv_cd - WHEN 1 THEN - CASE bio.err_flg11 - WHEN '0' THEN '正常' - WHEN '1' THEN 'ロットエラー' - WHEN '2' THEN '日付エラー' - WHEN '3' THEN 'ロットエラー(解消済)' - WHEN '4' THEN 'ロットエラー(調査不能)' - WHEN '5' THEN '日付エラー(解消済)' - WHEN '6' THEN '日付エラー(調査不能)' - WHEN '7' THEN '除外(卸都合)' - WHEN '8' THEN '除外(再送信)' - WHEN 'Z' THEN '過去データ' - END - WHEN 2 THEN - CASE bio.err_flg12 - WHEN '0' THEN '正常' - WHEN '1' THEN 'ロットエラー' - WHEN '2' THEN '日付エラー' - WHEN '3' THEN 'ロットエラー(解消済)' - WHEN '4' THEN 'ロットエラー(調査不能)' - WHEN '5' THEN '日付エラー(解消済)' - WHEN '6' THEN '日付エラー(調査不能)' - WHEN '7' THEN '除外(卸都合)' - WHEN '8' THEN '除外(再送信)' - WHEN 'Z' THEN '過去データ' - END - WHEN 3 THEN - CASE bio.err_flg13 - WHEN '0' THEN '正常' - WHEN '1' THEN 'ロットエラー' - WHEN '2' THEN '日付エラー' - WHEN '3' THEN 'ロットエラー(解消済)' - WHEN '4' THEN 'ロットエラー(調査不能)' - WHEN '5' THEN '日付エラー(解消済)' - WHEN '6' THEN '日付エラー(調査不能)' - WHEN '7' THEN '除外(卸都合)' - WHEN '8' THEN '除外(再送信)' - WHEN 'Z' THEN '過去データ' - END - END AS err_dtl_kind, - NULL AS expr_dt + -- SRC_種類より値を設定する + CASE bio.result_cd + WHEN '1:VAN' THEN 'VAN' + WHEN '2:手入力' THEN '手入力' + WHEN '3:VAN-Web' THEN 'VAN-Web' + WHEN 'S:SCSK-VAN' THEN 'SCSK-VAN' + END AS if_kind, + -- 製品コード、ロット番号でロットマスタよりセット + bio.ck_last_dt_txt AS ck_last_dt_txt FROM - src05.bio_sales bio + src07.trn_result_data_bio bio -- 生物由来変換マスタ CROSS JOIN src07.bio_conv conv WHERE - bio.err_flg1 = '0' - AND bio.err_flg2 = '0' - AND bio.err_flg3 = '0' - AND bio.err_flg4 = '0' - AND bio.err_flg5 = '0' - AND bio.err_flg6 = '0' - AND bio.err_flg7 = '0' - AND bio.err_flg8 = '0' - AND bio.err_flg9 = '0' - AND bio.err_flg10 = '0' - AND bio.rec_sts_kbn <> '99' - AND DATE(bio.dwh_upd_dt) >= src07.get_syor_date() + DATE(bio.last_upd_dtt) >= src07.get_syor_date() """ res = db.execute(sql)