From 65ccc61f13fb3ba46df5b430941258c909c9b904 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Thu, 1 Jun 2023 15:54:15 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=9F=E7=89=A9=E7=94=B1=E6=9D=A5?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=83=88=E5=88=86=E8=A7=A3=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=81=AE=E9=9B=9B=E5=BD=A2=E3=82=92=E5=AE=9F=E8=A3=85=E3=80=82?= =?UTF-8?q?=E3=82=AF=E3=82=A8=E3=83=AA=E5=AE=9F=E8=A3=85=E3=81=AF=E3=81=93?= =?UTF-8?q?=E3=82=8C=E3=81=8B=E3=82=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../batch/bio_sales/create_bio_sales_lot.py | 57 ++++++++++++++++--- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/bio_sales/create_bio_sales_lot.py b/ecs/jskult-batch-daily/src/batch/bio_sales/create_bio_sales_lot.py index 509d7300..5e7d0233 100644 --- a/ecs/jskult-batch-daily/src/batch/bio_sales/create_bio_sales_lot.py +++ b/ecs/jskult-batch-daily/src/batch/bio_sales/create_bio_sales_lot.py @@ -1,4 +1,6 @@ from src.batch.common.batch_context import BatchContext +from src.db.database import Database +from src.error.exceptions import BatchOperationException from src.logging.get_logger import get_logger batch_context = BatchContext.get_instance() @@ -7,19 +9,56 @@ logger = get_logger('生物由来卸販売ロット分解') def exec(): """生物由来卸販売ロット分解""" - logger.debug('生物由来卸販売ロット分解:起動') + logger.debug('生物由来卸販売ロット分解処理開始') + # 営業日ではない場合、処理をスキップする if batch_context.is_not_business_day: logger.info('営業日ではないため、生物由来卸販売ロット分解処理をスキップします。') return + db = Database.get_instance() + try: + db.connect() + db.begin() + # 生物由来ロット分解データの未確定データを削除する + _delete_not_confirm_data_in_bio_sales_lot(db) + # 生物由来ロット分解データを作成する + _insert_bio_sales_lot(db) + # 生物由来ロット分解データの不要レコードを削除する + _delete_empty_lot_record(db) + # 製造ロット管理番号マスタから有効期限を生物由来ロット分解データにセットする + _set_expr_dt_from_lot_num_mst(db) + # Veeva取引区分が返品(2)の場合、数量をマイナスに反転する + _reverse_qty_if_returns(db) + db.commit() + logger.debug('生物由来卸販売ロット分解処理終了') + return + except Exception as e: + db.rollback() + raise BatchOperationException(e) + finally: + db.disconnect() - # # 非同期処理のサンプル - # import time - # for _ in range(50): - # logger.info('処理中') - # time.sleep(0.5) - # TODO: ここに処理を追記していく +def _delete_not_confirm_data_in_bio_sales_lot(db: Database): + # 生物由来ロット分解データの未確定データ削除 + pass - logger.debug('生物由来卸販売ロット分解:終了') - return + +def _insert_bio_sales_lot(db: Database): + # 生物由来ロット分解データを作成 + pass + + +def _delete_empty_lot_record(db: Database): + # 生物由来ロット分解データの製造番号が空のレコードを削除 + pass + + +def _set_expr_dt_from_lot_num_mst(db: Database): + # 製造ロット管理番号マスタから有効期限をセット + pass + + +def _reverse_qty_if_returns(db: Database): + # Veeva取引区分が返品(2)の場合、数量をマイナスに反転する + pass