From ca07205c5cd1e3ab1545f018a037df9ef511100a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E9=96=93?= Date: Fri, 28 Jul 2023 09:16:11 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BB=AE=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/controller/bio_download.py | 24 +--- .../src/model/db/bio_sales_view.py | 110 +++++++++++++----- .../src/model/view/bio_disp_model.py | 6 - .../src/model/view/bio_view_model.py | 11 ++ .../repositories/bio_sales_view_repository.py | 75 ++++++++---- .../src/services/bio_view_service.py | 3 + ecs/jskult-webapp/src/system_var/constants.py | 6 +- .../src/templates/bioSearchList.html | 57 ++++----- 8 files changed, 182 insertions(+), 110 deletions(-) diff --git a/ecs/jskult-webapp/src/controller/bio_download.py b/ecs/jskult-webapp/src/controller/bio_download.py index 8ff711c8..61d326b4 100644 --- a/ecs/jskult-webapp/src/controller/bio_download.py +++ b/ecs/jskult-webapp/src/controller/bio_download.py @@ -61,8 +61,7 @@ async def download_bio_data( return {'status': 'ok', 'download_url': None} # ファイルに打ち出すカラムを抽出 - # TODO: SQLクエリを修正するため、この処理は不要になる - extract_df = _extract_output_df(search_result_df) + extract_df = search_result_df[constants.BIO_EXTRACT_COLUMNS] # ファイルを書き出し(Excel or CSV) local_file_path = _write_bio_data_to_file(bio_service, download_param, extract_df, download_file_name) @@ -116,27 +115,6 @@ def _search_bio_data(bio_service: BioViewService, search_param: BioModel, user_i return search_result_df, query -def _extract_output_df(search_result_df: pd.DataFrame) -> pd.DataFrame: - extract_df = search_result_df[constants.BIO_EXTRACT_COLUMNS] - - # 値を変換 - # データ種別の正式名を設定 - extract_df.loc[:, 'slip_org_kbn'] = extract_df['slip_org_kbn'].apply( - lambda key: constants.SLIP_ORG_KBN_FULL_NAME.get(key)) - # データ区分の区分の日本語名を設定 - extract_df.loc[:, 'data_kbn'] = extract_df['data_kbn'].apply(lambda key: constants.DATA_KBN_JP_NAME.get(key)) - # ロット番号エラーフラグの日本語名を設定 - extract_df.loc[:, 'lot_num_err_flg'] = extract_df['lot_num_err_flg'].apply( - lambda key: constants.LOT_NO_ERR_FLG_JP_NAME.get(key)) - # 訂正前伝票管理番号がセットされているときのみ修正日時、修正者、エラー詳細種別をセット - extract_df.loc[:, 'ins_dt'] = extract_df['bef_slip_mgt_num'].apply( - lambda bef_slip_mgt_num: extract_df['ins_dt'] if bef_slip_mgt_num is not None else '') - extract_df.loc[:, 'ins_usr'] = extract_df['bef_slip_mgt_num'].apply( - lambda bef_slip_mgt_num: extract_df['ins_usr'] if bef_slip_mgt_num is not None else '') - - return extract_df - - def _write_bio_data_to_file( bio_service: BioViewService, download_param: BioDownloadModel, diff --git a/ecs/jskult-webapp/src/model/db/bio_sales_view.py b/ecs/jskult-webapp/src/model/db/bio_sales_view.py index 325ccbbc..8b28f225 100644 --- a/ecs/jskult-webapp/src/model/db/bio_sales_view.py +++ b/ecs/jskult-webapp/src/model/db/bio_sales_view.py @@ -5,70 +5,120 @@ from src.model.db.base_db_model import BaseDBModel class BioSalesViewModel(BaseDBModel): - conv_cd: Optional[int] - rec_data: Optional[str] + # conv_cd: Optional[int] + # rec_data: Optional[str] + # rec_whs_cd: Optional[str] + # rec_whs_sub_cd: Optional[str] + # rec_whs_org_cd: Optional[str] + # rec_cust_cd: Optional[str] + # rec_comm_cd: Optional[str] + # rec_tran_kbn: Optional[str] + # rev_hsdnymd_wrk: Optional[str] + # rev_hsdnymd_srk: Optional[str] + # rec_urag_num: Optional[str] + # rec_comm_name: Optional[str] + # rec_nonyu_fcl_name: Optional[str] + # rec_nonyu_fcl_addr: Optional[str] + # rec_lot_num: Optional[str] + # qty: Optional[str] + # rec_ymd: Optional[str] + # sale_data_cat: Optional[str] + # slip_file_name: Optional[str] + # slip_mgt_num: Optional[str] + # row_num: Optional[int] + # hsdn_ymd: Optional[str] + # exec_dt: Optional[str] + # v_tran_cd: Optional[int] + # tran_kbn_name: Optional[str] + # whs_org_cd: Optional[str] + # v_whsorg_cd: Optional[str] + # whs_org_name: Optional[str] + # whs_org_kn: Optional[str] + # v_whs_cd: Optional[int] + # whs_name: Optional[str] + # nonyu_fcl_cd: Optional[str] + # v_inst_cd: Optional[str] + # v_inst_kn: Optional[str] + # v_inst_nm: Optional[str] + # v_inst_addr: Optional[str] + # comm_cd: Optional[str] + # product_name: Optional[str] + # whs_rep_comm_name: Optional[str] + # whs_rep_nonyu_fcl_name: Optional[str] + # whs_rep_nonyu_fcl_addr: Optional[str] + # mkr_inf_1: Optional[str] + # mkr_cd: Optional[str] + # htdnymd_err_kbn: Optional[str] + # prd_exis_kbn: Optional[str] + # fcl_exis_kbn: Optional[str] + # amt: Optional[int] + # slip_org_kbn: Optional[str] + # bef_slip_mgt_num: Optional[str] + # lot_no_err_flg: Optional[str] + # iko_flg: Optional[str] + # kjyo_ym: Optional[str] + # tksnbk_kbn: Optional[str] + # fcl_exec_kbn: Optional[str] + # rec_sts_kbn: Optional[str] + # ins_dt: Optional[datetime] + # ins_usr: Optional[str] + # dcf_inst_cd: Optional[str] + # inst_cd: Optional[str] + # inst_name_form: Optional[str] + # address: Optional[str] + # tel_num: Optional[str] + # data_kbn: Optional[str] + # ser_no: Optional[str] + # lot_num: Optional[str] + # expr_dt: Optional[date] + # amt_fugo: Optional[str] + slip_mgt_num: Optional[str] + conv_cdR: Optional[int] rec_whs_cd: Optional[str] rec_whs_sub_cd: Optional[str] rec_whs_org_cd: Optional[str] - rec_cust_cd: Optional[str] rec_comm_cd: Optional[str] rec_tran_kbn: Optional[str] - rev_hsdnymd_wrk: Optional[str] rev_hsdnymd_srk: Optional[str] rec_urag_num: Optional[str] rec_comm_name: Optional[str] rec_nonyu_fcl_name: Optional[str] rec_nonyu_fcl_addr: Optional[str] rec_lot_num: Optional[str] - rec_qty: Optional[str] rec_ymd: Optional[str] - sale_data_cat: Optional[str] - slip_file_name: Optional[str] - slip_mgt_num: Optional[str] - row_num: Optional[int] - hsdn_ymd: Optional[str] - exec_dt: Optional[str] v_tran_cd: Optional[int] tran_kbn_name: Optional[str] whs_org_cd: Optional[str] - v_whsorg_cd: Optional[str] + v_whsorg_cd: Optional[int] whs_org_name: Optional[str] - whs_org_kn: Optional[str] v_whs_cd: Optional[int] whs_name: Optional[str] nonyu_fcl_cd: Optional[str] v_inst_cd: Optional[str] v_inst_kn: Optional[str] - v_inst_nm: Optional[str] + v_inst_name: Optional[str] v_inst_addr: Optional[str] comm_cd: Optional[str] product_name: Optional[str] - whs_rep_comm_nm: Optional[str] - whs_rep_nnskfcl_nm: Optional[str] - whs_rep_nnsk_fcl_addr: Optional[str] + whs_rep_comm_name: Optional[str] + whs_rep_nonyu_fcl_name: Optional[str] + whs_rep_nonyu_fcl_addr: Optional[str] mkr_inf_1: Optional[str] mkr_cd: Optional[str] - htdnymd_err_kbn: Optional[str] - prd_exis_kbn: Optional[str] - fcl_exis_kbn: Optional[str] - amt: Optional[int] + qty: Optional[int] slip_org_kbn: Optional[str] bef_slip_mgt_num: Optional[str] lot_no_err_flg: Optional[str] iko_flg: Optional[str] - kjyo_ym: Optional[str] - tksnbk_kbn: Optional[str] - fcl_exec_kbn: Optional[str] rec_sts_kbn: Optional[str] - ins_dt: Optional[datetime] + ins_dt: Optional[str] ins_usr: Optional[str] - dcf_inst_cd: Optional[str] + dwh_upd_dt: Optional[datetime] inst_cd: Optional[str] inst_name_form: Optional[str] address: Optional[str] - tel_no: Optional[str] + tel_num: Optional[str] data_kbn: Optional[str] - ser_no: Optional[str] - lot_num: Optional[str] + data_kind: Optional[str] + err_dtl_kind: Optional[str] expr_dt: Optional[date] - amt_fugo: Optional[str] diff --git a/ecs/jskult-webapp/src/model/view/bio_disp_model.py b/ecs/jskult-webapp/src/model/view/bio_disp_model.py index e78d4f29..2ebf2c00 100644 --- a/ecs/jskult-webapp/src/model/view/bio_disp_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_disp_model.py @@ -1,5 +1,4 @@ from src.model.db.bio_sales_view import BioSalesViewModel -from src.system_var import constants from src.util.sanitize import sanitize @@ -8,11 +7,6 @@ class BisDisplayModel(BioSalesViewModel): def __init__(self, param: BioSalesViewModel) -> None: super().__init__(**param.dict()) - # 区分・フラグの正式名称を設定 - self.slip_org_kbn = constants.SLIP_ORG_KBN_FULL_NAME.get(self.slip_org_kbn) - self.data_kbn = constants.DATA_KBN_JP_NAME.get(self.data_kbn) - self.lot_no_err_flg = constants.LOT_NO_ERR_FLG_JP_NAME.get(self.lot_no_err_flg) - # 訂正前伝票管理番号がセットされているときのみ修正日時、修正者、エラー詳細種別をセット if (self.bef_slip_mgt_num is None): self.ins_dt = "" diff --git a/ecs/jskult-webapp/src/model/view/bio_view_model.py b/ecs/jskult-webapp/src/model/view/bio_view_model.py index 8f5e4875..1cd4f4a1 100644 --- a/ecs/jskult-webapp/src/model/view/bio_view_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_view_model.py @@ -55,6 +55,17 @@ class BioViewModel(BaseModel): return obj.isoformat() if hasattr(obj, 'isoformat') else obj return json.dumps([model.dict() for model in self.bio_data], ensure_ascii=False, default=date_handler) + def make_whs_name(self): + if not self.is_form_submitted(): + return '' + if self.form_data.rec_whs_cd is None: + return '' + + form_wholesaler_full_name = \ + f'{self.form_data.rec_whs_cd}-{self.form_data.rec_whs_sub_cd}:{self.form_data.whs_name}' + + return form_wholesaler_full_name + def is_selected_whs_name(self, selected_wholesaler): if not self.is_form_submitted(): return '' diff --git a/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py b/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py index 46eb2b91..0b3a52a5 100644 --- a/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py +++ b/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py @@ -12,30 +12,65 @@ logger = get_logger('生物由来参照') class BioSalesViewRepository(BaseRepository): FETCH_SQL = """\ SELECT - ( - CASE - WHEN LEFT(bs.v_tran_cd, 1) = 2 - AND bs.qty >= 1 THEN CONCAT('-', bs.qty) - ELSE bs.qty - END - ) AS amt_fugo, - bs.*, - ln.ser_num, - ln.lot_num, - ln.expr_dt + slip_mgt_num, + conv_cd, + rec_whs_cd, + rec_whs_sub_cd, + rec_whs_org_cd, + rec_comm_cd, + rec_tran_kbn, + rev_hsdnymd_srk, + rec_urag_num, + rec_comm_name, + rec_nonyu_fcl_name, + rec_nonyu_fcl_addr, + rec_lot_num, + rec_ymd, + v_tran_cd, + tran_kbn_name, + whs_org_cd, + v_whsorg_cd, + whs_org_name, + v_whs_cd, + whs_name, + nonyu_fcl_cd, + v_inst_cd, + v_inst_kn, + v_inst_name, + v_inst_addr, + comm_cd, + product_name, + whs_rep_comm_name, + whs_rep_nonyu_fcl_name, + whs_rep_nonyu_fcl_addr, + mkr_inf_1, + mkr_cd, + qty, + slip_org_kbn, + bef_slip_mgt_num, + lot_no_err_flg, + iko_flg, + rec_sts_kbn, + ins_dt, + ins_usr, + dwh_upd_dt, + inst_cd, + inst_name_form, + address, + tel_num, + data_kbn, + data_kind, + err_dtl_kind, + expr_dt FROM - src05.bio_sales_view bs - LEFT OUTER JOIN - src05.lot_num_mst ln - ON bs.mkr_cd = ln.ser_num - AND bs.rec_lot_num = ln.lot_num + src05.bio_sales_lot WHERE {where_clause} ORDER BY - bs.rec_whs_cd, - bs.rec_whs_sub_cd, - bs.rev_hsdnymd_srk, - bs.slip_mgt_num + rec_whs_cd, + rec_whs_sub_cd, + rev_hsdnymd_srk, + slip_mgt_num ASC\ """ diff --git a/ecs/jskult-webapp/src/services/bio_view_service.py b/ecs/jskult-webapp/src/services/bio_view_service.py index d1102598..73cc06f5 100644 --- a/ecs/jskult-webapp/src/services/bio_view_service.py +++ b/ecs/jskult-webapp/src/services/bio_view_service.py @@ -119,6 +119,9 @@ class BioViewService(BaseService): logger.info(parameter_message) access_logger.info(parameter_message) + # ログファイルクローズ + access_log_handler.close() + # S3にアップロード self.upload_bio_access_log_file(access_log_file_path) diff --git a/ecs/jskult-webapp/src/system_var/constants.py b/ecs/jskult-webapp/src/system_var/constants.py index a50d498e..8ea7c38e 100644 --- a/ecs/jskult-webapp/src/system_var/constants.py +++ b/ecs/jskult-webapp/src/system_var/constants.py @@ -9,7 +9,7 @@ BIO_TEMPORARY_FILE_DIR_PATH = path.join(path.curdir, 'src', 'data') BIO_EXCEL_TEMPLATE_FILE_PATH = path.join(BIO_TEMPORARY_FILE_DIR_PATH, 'BioData_template.xlsx') BIO_EXTRACT_COLUMNS = [ - 'slip_org_kbn', + 'data_kind', 'slip_mgt_num', 'rec_ymd', 'rec_whs_cd', @@ -30,10 +30,10 @@ BIO_EXTRACT_COLUMNS = [ 'rec_nonyu_fcl_addr', 'whs_rep_nonyu_fcl_addr', 'rec_lot_num', - 'amt_fugo', + 'qty', 'expr_dt', 'data_kbn', - 'lot_num_err_flg', + 'err_dtl_kind', 'bef_slip_mgt_num', 'ins_usr', 'ins_dt', diff --git a/ecs/jskult-webapp/src/templates/bioSearchList.html b/ecs/jskult-webapp/src/templates/bioSearchList.html index ae7a3d7c..89436d67 100644 --- a/ecs/jskult-webapp/src/templates/bioSearchList.html +++ b/ecs/jskult-webapp/src/templates/bioSearchList.html @@ -6,15 +6,15 @@ {% endwith %} - @@ -55,13 +55,11 @@ @@ -96,16 +94,14 @@ 発伝年月日: - ~ - @@ -186,6 +182,18 @@ {% endif %} +
+ + + + + + + + + + +