diff --git a/ecs/jskult-webapp/src/controller/bio_api.py b/ecs/jskult-webapp/src/controller/bio_api.py index 4989a50d..a9ea8f14 100644 --- a/ecs/jskult-webapp/src/controller/bio_api.py +++ b/ecs/jskult-webapp/src/controller/bio_api.py @@ -43,8 +43,8 @@ def search_bio_data( return JSONResponse(content={'status': 'batch_processing'}, status_code=status.HTTP_403_FORBIDDEN) # 生物由来データと件数を取得 - bio_sales_lot_data = bio_service.search_bio_data(bio_form) - bio_sales_lot_count = bio_service.count_bio_data(bio_form, session) + trn_result_data_bio_lot_data = bio_service.search_bio_data(bio_form) + trn_result_data_bio_lot_count = bio_service.count_bio_data(bio_form, session) # レスポンスデータを加工 # 日付型のデータのエンコードエラーを解消するための措置 @@ -58,7 +58,7 @@ def search_bio_data( return encoded_obj data = jsonable_encoder( - bio_sales_lot_data, + trn_result_data_bio_lot_data, custom_encoder={ BioDisplayModel: custom_encode } @@ -71,13 +71,13 @@ def search_bio_data( UserSession.record_expiration_time.set(UserSession.new_record_expiration_time()), # 検索結果をキャッシュする UserSession.bio_search_condition.set(bio_form.model_dump()), - UserSession.bio_search_count.set(bio_sales_lot_count), + UserSession.bio_search_count.set(trn_result_data_bio_lot_count), ] ) set_session(session) json_response = JSONResponse(content={ 'data': data, - 'count': bio_sales_lot_count + 'count': trn_result_data_bio_lot_count }) # クッキーも書き換え diff --git a/ecs/jskult-webapp/src/controller/login.py b/ecs/jskult-webapp/src/controller/login.py index 9b2c808e..caad063b 100644 --- a/ecs/jskult-webapp/src/controller/login.py +++ b/ecs/jskult-webapp/src/controller/login.py @@ -111,9 +111,9 @@ def login( id_token=verified_token.id_token, refresh_token=verified_token.refresh_token, csrf_token=csrf_token, - bio_flg=user_record.auth_flg1, - doc_flg=user_record.auth_flg2, - inst_flg=user_record.auth_flg3, + bio_flg=user_record.bio_sales_inq_auth_flg, + doc_flg=user_record.ult_doctor_inq_auth_flg, + inst_flg=user_record.ult_inst_inq_auth_flg, master_mainte_flg=user_record.auth_flg4, user_flg=user_record.mntuser_flg ) @@ -170,9 +170,9 @@ def sso_authorize( id_token=verified_token.id_token, refresh_token=verified_token.refresh_token, csrf_token=csrf_token, - bio_flg=user_record.auth_flg1, - doc_flg=user_record.auth_flg2, - inst_flg=user_record.auth_flg3, + bio_flg=user_record.bio_sales_inq_auth_flg, + doc_flg=user_record.ult_doctor_inq_auth_flg, + inst_flg=user_record.ult_inst_inq_auth_flg, master_mainte_flg=user_record.auth_flg4, user_flg=user_record.mntuser_flg ) diff --git a/ecs/jskult-webapp/src/model/db/bio_sales_lot.py b/ecs/jskult-webapp/src/model/db/bio_sales_lot.py deleted file mode 100644 index f3e36951..00000000 --- a/ecs/jskult-webapp/src/model/db/bio_sales_lot.py +++ /dev/null @@ -1,48 +0,0 @@ -from datetime import date, datetime -from typing import Optional - -from src.model.db.base_db_model import BaseDBModel - - -class BioSalesLotDBModel(BaseDBModel): - slip_mgt_num: Optional[str] - rec_whs_cd: Optional[str] - rec_whs_sub_cd: Optional[str] - rec_whs_org_cd: Optional[str] - rec_comm_cd: Optional[str] - rec_tran_kbn: Optional[str] - rev_hsdnymd_srk: Optional[str] - rec_urag_num: Optional[str] - rec_nonyu_fcl_name: Optional[str] - rec_nonyu_fcl_addr: Optional[str] - rec_lot_num: Optional[str] - rec_ymd: Optional[str] - v_tran_cd: Optional[int] - tran_kbn_name: Optional[str] - v_whsorg_cd: Optional[int] - whs_org_name: Optional[str] - v_whs_cd: Optional[int] - whs_name: Optional[str] - nonyu_fcl_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_cd: Optional[str] - qty: Optional[int] - bef_slip_mgt_num: Optional[str] - iko_flg: Optional[str] - ins_dt: Optional[datetime] - ins_usr: Optional[str] - inst_cd: Optional[str] - inst_name_form: Optional[str] - address: Optional[str] - tel_num: Optional[str] - data_kbn: Optional[str] - data_kind: Optional[str] - err_dtl_kind: Optional[str] - expr_dt: Optional[date] - - -class BioSalesLotCountDBModel(BaseDBModel): - count: Optional[int] diff --git a/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py b/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py index 35181012..eadaf44c 100644 --- a/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py +++ b/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py @@ -4,5 +4,5 @@ from src.model.db.base_db_model import BaseDBModel class PharmacyProductMasterModel(BaseDBModel): - mkr_cd: Optional[str] - mkr_cd_name: Optional[str] + prod_pkg_cd: Optional[str] + prod_pkg_cd_name: Optional[str] diff --git a/ecs/jskult-webapp/src/model/db/trn_result_data_bio_lot.py b/ecs/jskult-webapp/src/model/db/trn_result_data_bio_lot.py new file mode 100644 index 00000000..2c96429f --- /dev/null +++ b/ecs/jskult-webapp/src/model/db/trn_result_data_bio_lot.py @@ -0,0 +1,40 @@ +from datetime import date, datetime +from typing import Optional + +from src.model.db.base_db_model import BaseDBModel + + +class TrnResultDataBioLotDBModel(BaseDBModel): + if_kind: Optional[str] + account_ym: Optional[str] + seq_no: Optional[int] + load_dt: Optional[datetime] + orig_whlslr_cd: Optional[str] + orig_whlslr_sub_cd: Optional[str] + cls_whlslr_nm: Optional[str] + edit_whlslr_org_cd: Optional[str] + orig_slip_no: Optional[str] + cnvs_sales_dt: Optional[datetime] + edit_deal_div_cd: Optional[str] + cls_deal_div_nm: Optional[str] + cnvs_prod_cd: Optional[str] + orig_univ_product_cd: Optional[str] + cls_prod_nm: Optional[str] + edit_endusr_cd: Optional[str] + orig_endusr_nm: Optional[str] + orig_jd45_addr_txt: Optional[str] + cnvs_lot_no: Optional[str] + cnvs_lot_sales_qty: Optional[int] + expr_dt: Optional[date] + data_kbn: Optional[str] + cnvs_inst_cd: Optional[str] + cls_inst_nm: Optional[str] + address: Optional[str] + tel_num: Optional[str] + cnvs_whlslr_cd: Optional[str] + cnvs_depo_cd: Optional[str] + cls_depo_nm: Optional[str] + cnvs_deal_div_cd: Optional[str] + +class BioSalesLotCountDBModel(BaseDBModel): + count: Optional[int] diff --git a/ecs/jskult-webapp/src/model/db/user_master.py b/ecs/jskult-webapp/src/model/db/user_master.py index d86253ae..bf38f61e 100644 --- a/ecs/jskult-webapp/src/model/db/user_master.py +++ b/ecs/jskult-webapp/src/model/db/user_master.py @@ -8,9 +8,9 @@ class UserMasterModel(BaseDBModel): user_id: Optional[str] mail_adr: Optional[str] user_name: Optional[str] - auth_flg1: Optional[int] - auth_flg2: Optional[int] - auth_flg3: Optional[int] + bio_sales_inq_auth_flg: Optional[int] + ult_doctor_inq_auth_flg: Optional[int] + ult_inst_inq_auth_flg: Optional[int] auth_flg4: Optional[int] auth_flg5: Optional[int] auth_flg6: Optional[int] diff --git a/ecs/jskult-webapp/src/model/request/bio.py b/ecs/jskult-webapp/src/model/request/bio.py index 3120f4ed..c79ac2b0 100644 --- a/ecs/jskult-webapp/src/model/request/bio.py +++ b/ecs/jskult-webapp/src/model/request/bio.py @@ -9,18 +9,17 @@ from src.util.string_util import is_not_empty @sanitize class BioModel(BaseModel): - rec_whs_cd: Optional[str] - rec_whs_sub_cd: Optional[str] - whs_name: Optional[str] - slip_org_kbn: Optional[str] - rec_ymd_from: Optional[str] - rec_ymd_to: Optional[str] - rec_lot_num: Optional[str] - data_kbn: Optional[str] - mkr_cd: Optional[str] - rev_hsdnymd_srk_from: Optional[str] - rev_hsdnymd_srk_to: Optional[str] - iko_flg: Optional[str] + orig_whlslr_cd: Optional[str] + orig_whlslr_sub_cd: Optional[str] + cls_whlslr_nm: Optional[str] + if_kind: Optional[str] + load_dt_from: Optional[str] + load_dt_to: Optional[str] + cnvs_lot_no: Optional[str] + result_cd: Optional[str] + cnvs_prod_cd: Optional[str] + cnvs_sales_dt_from: Optional[str] + cnvs_sales_dt_to: Optional[str] pageNumber: Optional[int] pageSize: Optional[int] @@ -29,14 +28,13 @@ class BioModel(BaseModel): cls, ctrl_wholesaler: str = Form(None), ctrl_org_kbn: str = Form(None), - ctrl_rec_ymd_from: str = Form(None), - ctrl_rec_ymd_to: str = Form(None), - ctrl_rec_lot_num: str = Form(None), - ctrl_data_kbn: str = Form(None), + ctrl_load_dt_from: str = Form(None), + ctrl_load_dt_to: str = Form(None), + ctrl_cnvs_lot_no: str = Form(None), + ctrl_result_cd: str = Form(None), ctrl_maker_cd: str = Form(None), - ctrl_rev_hsdnymd_srk_from: str = Form(None), - ctrl_rev_hsdnymd_srk_to: str = Form(None), - ikoFlg: str = Form(None), + ctrl_cnvs_sales_dt_from: str = Form(None), + ctrl_cnvs_sales_dt_to: str = Form(None), pageNumber: int = Form(None), pageSize: int = Form(None) ): @@ -45,14 +43,13 @@ class BioModel(BaseModel): cls, ctrl_wholesaler, ctrl_org_kbn, - ctrl_rec_ymd_from, - ctrl_rec_ymd_to, - ctrl_rec_lot_num, - ctrl_data_kbn, + ctrl_load_dt_from, + ctrl_load_dt_to, + ctrl_cnvs_lot_no, + ctrl_result_cd, ctrl_maker_cd, - ctrl_rev_hsdnymd_srk_from, - ctrl_rev_hsdnymd_srk_to, - ikoFlg, + ctrl_cnvs_sales_dt_from, + ctrl_cnvs_sales_dt_to, pageNumber, pageSize ) @@ -62,42 +59,39 @@ class BioModel(BaseModel): cls, ctrl_wholesaler: str = Body(None), ctrl_org_kbn: str = Body(None), - ctrl_rec_ymd_from: str = Body(None), - ctrl_rec_ymd_to: str = Body(None), - ctrl_rec_lot_num: str = Body(None), - ctrl_data_kbn: str = Body(None), + ctrl_load_dt_from: str = Body(None), + ctrl_load_dt_to: str = Body(None), + ctrl_cnvs_lot_no: str = Body(None), + ctrl_result_cd: str = Body(None), ctrl_maker_cd: str = Body(None), - ctrl_rev_hsdnymd_srk_from: str = Body(None), - ctrl_rev_hsdnymd_srk_to: str = Body(None), - ikoFlg: str = Body(None) + ctrl_cnvs_sales_dt_from: str = Body(None), + ctrl_cnvs_sales_dt_to: str = Body(None) ): return cls.__convert_request_param( cls, ctrl_wholesaler, ctrl_org_kbn, - ctrl_rec_ymd_from, - ctrl_rec_ymd_to, - ctrl_rec_lot_num, - ctrl_data_kbn, + ctrl_load_dt_from, + ctrl_load_dt_to, + ctrl_cnvs_lot_no, + ctrl_result_cd, ctrl_maker_cd, - ctrl_rev_hsdnymd_srk_from, - ctrl_rev_hsdnymd_srk_to, - ikoFlg + ctrl_cnvs_sales_dt_from, + ctrl_cnvs_sales_dt_to ) def __convert_request_param( cls, ctrl_wholesaler: str, ctrl_org_kbn: str, - ctrl_rec_ymd_from: str, - ctrl_rec_ymd_to: str, - ctrl_rec_lot_num: str, - ctrl_data_kbn: str, + ctrl_load_dt_from: str, + ctrl_load_dt_to: str, + ctrl_cnvs_lot_no: str, + ctrl_result_cd: str, ctrl_maker_cd: str, - ctrl_rev_hsdnymd_srk_from: str, - ctrl_rev_hsdnymd_srk_to: str, - ikoFlg: str, + ctrl_cnvs_sales_dt_from: str, + ctrl_cnvs_sales_dt_to: str, pageNumber: int = None, pageSize: int = None ): @@ -113,34 +107,33 @@ class BioModel(BaseModel): wholesaler_sub_code = wholesaler_without_name.split('-')[1] # 処理日 - rec_ymd_from = None - rec_ymd_to = None - if is_not_empty(ctrl_rec_ymd_from): - rec_ymd_from = ctrl_rec_ymd_from.replace('/', '') - if is_not_empty(ctrl_rec_ymd_to): - rec_ymd_to = ctrl_rec_ymd_to.replace('/', '') + load_dt_from = None + load_dt_to = None + if is_not_empty(ctrl_load_dt_from): + load_dt_from = ctrl_load_dt_from.replace('/', '') + if is_not_empty(ctrl_load_dt_to): + load_dt_to = ctrl_load_dt_to.replace('/', '') # 発伝年月日 - rev_hsdnymd_srk_from = None - rev_hsdnymd_srk_to = None - if is_not_empty(ctrl_rev_hsdnymd_srk_from): - rev_hsdnymd_srk_from = ctrl_rev_hsdnymd_srk_from.replace('/', '') - if is_not_empty(ctrl_rev_hsdnymd_srk_to): - rev_hsdnymd_srk_to = ctrl_rev_hsdnymd_srk_to.replace('/', '') + cnvs_sales_dt_from = None + cnvs_sales_dt_to = None + if is_not_empty(ctrl_cnvs_sales_dt_from): + cnvs_sales_dt_from = ctrl_cnvs_sales_dt_from.replace('/', '') + if is_not_empty(ctrl_cnvs_sales_dt_to): + cnvs_sales_dt_to = ctrl_cnvs_sales_dt_to.replace('/', '') return cls( - rec_whs_cd=wholesaler_code, - rec_whs_sub_cd=wholesaler_sub_code, - whs_name=wholesaler_name, - slip_org_kbn=ctrl_org_kbn, - rec_ymd_from=rec_ymd_from, - rec_ymd_to=rec_ymd_to, - rec_lot_num=ctrl_rec_lot_num, - data_kbn=ctrl_data_kbn, - mkr_cd=ctrl_maker_cd, - rev_hsdnymd_srk_from=rev_hsdnymd_srk_from, - rev_hsdnymd_srk_to=rev_hsdnymd_srk_to, - iko_flg=ikoFlg, + orig_whlslr_cd=wholesaler_code, + orig_whlslr_sub_cd=wholesaler_sub_code, + cls_whlslr_nm=wholesaler_name, + if_kind=ctrl_org_kbn, + load_dt_from=load_dt_from, + load_dt_to=load_dt_to, + cnvs_lot_no=ctrl_cnvs_lot_no, + result_cd=ctrl_result_cd, + cnvs_prod_cd=ctrl_maker_cd, + cnvs_sales_dt_from=cnvs_sales_dt_from, + cnvs_sales_dt_to=cnvs_sales_dt_to, pageNumber=pageNumber, pageSize=pageSize ) 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 aafa7864..c4bfc6ea 100644 --- a/ecs/jskult-webapp/src/model/view/bio_disp_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_disp_model.py @@ -1,8 +1,8 @@ -from src.model.db.bio_sales_lot import BioSalesLotDBModel +from src.model.db.trn_result_data_bio_lot import TrnResultDataBioLotDBModel from src.util.sanitize import sanitize @sanitize -class BioDisplayModel(BioSalesLotDBModel): - def __init__(self, param: BioSalesLotDBModel) -> None: +class BioDisplayModel(TrnResultDataBioLotDBModel): + def __init__(self, param: TrnResultDataBioLotDBModel) -> None: super().__init__(**param.model_dump()) 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 e0aab9ad..0600cabd 100644 --- a/ecs/jskult-webapp/src/model/view/bio_view_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_view_model.py @@ -26,9 +26,10 @@ class BioViewModel(BaseModel): return OrderedDict( { '': '', - 'J': 'JD-NET', - 'N': 'NHI', - 'H': '手入力' + '1':'VAN', + '2':'手入力', + '3':'VAN-Web', + 'S':'SCSK-VAN' } ) @@ -36,10 +37,10 @@ class BioViewModel(BaseModel): return OrderedDict( { '': '', - '0': '正常', - '1': 'ロットエラー', - '3': 'ロット不明', - '9': 'エラー(解消済み)', - '2': '除外' + '1':'正常', + '2':'卸間転送除外対象データ', + 'E':'エラー', + 'D':'エラー(重複)', + 'Z':'エラー(想定外)' } ) diff --git a/ecs/jskult-webapp/src/model/view/user_view_model.py b/ecs/jskult-webapp/src/model/view/user_view_model.py index bae3af73..332deb22 100644 --- a/ecs/jskult-webapp/src/model/view/user_view_model.py +++ b/ecs/jskult-webapp/src/model/view/user_view_model.py @@ -6,10 +6,10 @@ from src.system_var import constants class UserViewModel(BaseModel): - bio_flg: Optional[int] # AUTH_FLG1 - doc_flg: Optional[int] # AUTH_FLG2 - inst_flg: Optional[int] # AUTH_FLG3 - master_mainte_flg: Optional[int] # AUTH_FLG4 + bio_flg: Optional[int] # bio_sales_inq_auth_flg + doc_flg: Optional[int] # ult_doctor_inq_auth_flg + inst_flg: Optional[int] # ult_inst_inq_auth_flg + # TODO: 削除予定 master_mainte_flg: Optional[int] # AUTH_FLG4 def has_ult_doctor_permission(self): return self.doc_flg == constants.PERMISSION_ENABLED diff --git a/ecs/jskult-webapp/src/repositories/hdke_tbl_repository.py b/ecs/jskult-webapp/src/repositories/hdke_tbl_repository.py index b99485e9..b0a99aa3 100644 --- a/ecs/jskult-webapp/src/repositories/hdke_tbl_repository.py +++ b/ecs/jskult-webapp/src/repositories/hdke_tbl_repository.py @@ -6,7 +6,7 @@ logger = get_logger('日付テーブル取得') class HdkeTblRepository(BaseRepository): - FETCH_SQL = "SELECT bch_actf, dump_sts_kbn FROM src05.hdke_tbl" + FETCH_SQL = "SELECT bch_actf, dump_sts_kbn FROM src07.hdke_tbl" def fetch_all(self) -> list[HdkeTblModel]: try: diff --git a/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py b/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py index 4b4083c8..5b238bcf 100644 --- a/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py +++ b/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py @@ -8,24 +8,18 @@ logger = get_logger('製品取得') class PharmacyProductMasterRepository(BaseRepository): FETCH_SQL = """\ - SELECT - t1.mkr_cd, - CONCAT(IFNULL(t1.mkr_cd, ''), ' ', IFNULL(t1.mkr_inf_1, '')) AS mkr_cd_name - FROM - src05.phm_prd_mst_v t1 - INNER JOIN - ( - SELECT - prd_cd, MAX(sub_num) AS sno - FROM - src05.phm_prd_mst_v - WHERE rec_sts_kbn <> '9' - GROUP BY prd_cd - ) fmv2 - ON t1.prd_cd = fmv2.prd_cd AND t1.sub_num = fmv2.sno - WHERE - t1.mkr_cd IS NOT NULL - ORDER BY mkr_cd + SELECT + prod_pkg_cd, + CONCAT(IFNULL(prod_pkg_cd, ''), ' ', IFNULL(prod_pkg_nm_kj, '')) AS prod_pkg_cd_name + FROM ( + SELECT + *, + ROW_NUMBER() OVER (PARTITION BY prod_pkg_cd ORDER BY eff_start_ym DESC) AS rn + FROM + src07.mst_prod_pkg + ) AS ranked + WHERE + rn = 1; """ def fetch_all(self) -> list[PharmacyProductMasterModel]: diff --git a/ecs/jskult-webapp/src/repositories/bio_sales_lot_repository.py b/ecs/jskult-webapp/src/repositories/trn_result_data_bio_lot_repository.py similarity index 53% rename from ecs/jskult-webapp/src/repositories/bio_sales_lot_repository.py rename to ecs/jskult-webapp/src/repositories/trn_result_data_bio_lot_repository.py index 50296a3f..9dc7c66b 100644 --- a/ecs/jskult-webapp/src/repositories/bio_sales_lot_repository.py +++ b/ecs/jskult-webapp/src/repositories/trn_result_data_bio_lot_repository.py @@ -1,8 +1,8 @@ from src.db import sql_condition as condition from src.db.sql_condition import SQLCondition from src.logging.get_logger import get_logger -from src.model.db.bio_sales_lot import (BioSalesLotCountDBModel, - BioSalesLotDBModel) +from src.model.db.trn_result_data_bio_lot import (BioSalesLotCountDBModel, + TrnResultDataBioLotDBModel) from src.model.request.bio import BioModel from src.repositories.base_repository import BaseRepository from src.system_var import environment @@ -14,58 +14,50 @@ logger = get_logger('生物由来参照') class BioSalesLotRepository(BaseRepository): FETCH_SQL = """\ SELECT - data_kind, - slip_mgt_num, - rec_ymd, - rec_whs_cd, - rec_whs_sub_cd, - whs_name, - rec_whs_org_cd, - rec_urag_num, - rev_hsdnymd_srk, - rec_tran_kbn, - tran_kbn_name, - mkr_cd, - rec_comm_cd, - product_name, - whs_rep_comm_name, - nonyu_fcl_cd, - rec_nonyu_fcl_name, - whs_rep_nonyu_fcl_name, - rec_nonyu_fcl_addr, - whs_rep_nonyu_fcl_addr, - rec_lot_num, - qty, + if_kind, + account_ym, + seq_no, + load_dt, + orig_whlslr_cd, + orig_whlslr_sub_cd, + cls_whlslr_nm, + edit_whlslr_org_cd, + orig_slip_no, + cnvs_sales_dt, + edit_deal_div_cd, + cls_deal_div_nm, + cnvs_prod_cd, + orig_univ_product_cd, + cls_prod_nm, + edit_endusr_cd, + orig_endusr_nm, + orig_jd45_addr_txt, + cnvs_lot_no, + cnvs_lot_sales_qty, expr_dt, data_kbn, - err_dtl_kind, - bef_slip_mgt_num, - ins_usr, - ins_dt, - inst_cd, - inst_name_form, + cnvs_inst_cd, + cls_inst_nm, address, tel_num, - -- Excel出力のため、数値型のコード値を文字列として取得(Veeva卸コード、Veeva卸組織コード、Veeva取引区分コード) - CAST(v_whs_cd AS CHAR) AS v_whs_cd, - CAST(v_whsorg_cd AS CHAR) AS v_whsorg_cd, - whs_org_name, - CAST(v_tran_cd AS CHAR) AS v_tran_cd, - iko_flg + cnvs_whlslr_cd, + cnvs_depo_cd, + cls_depo_nm, + cnvs_deal_div_cd FROM - src05.bio_sales_lot + src07.trn_result_data_bio_lot WHERE {where_clause} ORDER BY - rec_whs_cd, - rec_whs_sub_cd, - rev_hsdnymd_srk, - slip_mgt_num + orig_whlslr_cd, + orig_whlslr_sub_cd, + cnvs_sales_dt, + orig_slip_no ASC LIMIT {limit}\ """ - def fetch_many(self, parameter: BioModel) -> list[BioSalesLotDBModel]: + def fetch_many(self, parameter: BioModel) -> list[TrnResultDataBioLotDBModel]: try: logger.debug('DB参照実行') where_clause = self.__build_condition(parameter) @@ -74,7 +66,7 @@ class BioSalesLotRepository(BaseRepository): query = self.FETCH_SQL.format(where_clause=where_clause, limit=limit_clause) logger.debug(f'SQL: {query}') result = self._database.execute_select(query, parameter.model_dump()) - models = [BioSalesLotDBModel(**r) for r in result] + models = [TrnResultDataBioLotDBModel(**r) for r in result] return models except Exception as e: logger.exception(f"DB Error : Exception={e.args}") @@ -100,14 +92,14 @@ class BioSalesLotRepository(BaseRepository): FROM ( SELECT 1 - FROM src05.bio_sales_lot + FROM src07.trn_result_data_bio_lot WHERE {where_clause} LIMIT {limit} ) AS t\ """ - def fetch_count(self, parameter: BioModel) -> list[BioSalesLotDBModel]: + def fetch_count(self, parameter: BioModel) -> list[TrnResultDataBioLotDBModel]: try: logger.debug('DB参照実行') where_clause = self.__build_condition(parameter) @@ -130,43 +122,44 @@ class BioSalesLotRepository(BaseRepository): where_clauses.append(SQLCondition('', '', '1 = 1', literal=True)) # 卸(コード/サブコード) - if is_not_empty(parameter.rec_whs_cd) and is_not_empty(parameter.rec_whs_sub_cd): - where_clauses.append(SQLCondition('rec_whs_cd', condition.EQ, 'rec_whs_cd')) - where_clauses.append(SQLCondition('rec_whs_sub_cd', condition.EQ, 'rec_whs_sub_cd')) - # データ種別 - if is_not_empty(parameter.slip_org_kbn): - where_clauses.append(SQLCondition('slip_org_kbn', condition.EQ, 'slip_org_kbn')) + if is_not_empty(parameter.orig_whlslr_cd) and is_not_empty(parameter.orig_whlslr_sub_cd): + where_clauses.append(SQLCondition('orig_whlslr_cd', condition.EQ, 'orig_whlslr_cd')) + where_clauses.append(SQLCondition('orig_whlslr_sub_cd', condition.EQ, 'orig_whlslr_sub_cd')) + # 連携種別 + if is_not_empty(parameter.if_kind): + where_clauses.append(SQLCondition('if_kind', condition.EQ, 'if_kind')) # 処理日 開始日 - if is_not_empty(parameter.rec_ymd_from): - where_clauses.append(SQLCondition('rec_ymd', condition.GE, 'rec_ymd_from')) + if is_not_empty(parameter.load_dt_from): + where_clauses.append(SQLCondition('load_dt', condition.GE, 'load_dt_from')) # 処理日 終了日 - if is_not_empty(parameter.rec_ymd_to): - where_clauses.append(SQLCondition('rec_ymd', condition.LE, 'rec_ymd_to')) + if is_not_empty(parameter.load_dt_to): + where_clauses.append(SQLCondition('load_dt', condition.LE, 'load_dt_to')) # ロット番号 - if is_not_empty(parameter.rec_lot_num): - rec_lot_num = parameter.rec_lot_num + if is_not_empty(parameter.cnvs_lot_no): + cnvs_lot_no = parameter.cnvs_lot_no # あいまい検索文字列('%')が含まれる場合は'LIKE'、でなければ'='で検索 - rec_lot_num_comparator = condition.LIKE if '%' in rec_lot_num else condition.EQ - where_clauses.append(SQLCondition('TRIM(rec_lot_num)', rec_lot_num_comparator, 'rec_lot_num')) + cnvs_lot_no_comparator = condition.LIKE if '%' in cnvs_lot_no else condition.EQ + where_clauses.append(SQLCondition('TRIM(cnvs_lot_no)', cnvs_lot_no_comparator, 'cnvs_lot_no')) # データ区分 - if is_not_empty(parameter.data_kbn): - where_clauses.append(SQLCondition('data_kbn', condition.EQ, 'data_kbn')) + if is_not_empty(parameter.result_cd): + where_clauses.append(SQLCondition('result_cd', condition.EQ, 'result_cd')) # 製品 - if is_not_empty(parameter.mkr_cd): - where_clauses.append(SQLCondition('mkr_cd', condition.EQ, 'mkr_cd')) + if is_not_empty(parameter.cnvs_prod_cd): + where_clauses.append(SQLCondition('cnvs_prod_cd', condition.EQ, 'cnvs_prod_cd')) # 発伝年月日 開始日 - if is_not_empty(parameter.rev_hsdnymd_srk_from): - where_clauses.append(SQLCondition('rev_hsdnymd_srk', condition.GE, 'rev_hsdnymd_srk_from')) + if is_not_empty(parameter.cnvs_sales_dt_from): + where_clauses.append(SQLCondition('cnvs_sales_dt', condition.GE, 'cnvs_sales_dt_from')) # 発伝年月日 終了日 - if is_not_empty(parameter.rev_hsdnymd_srk_to): - where_clauses.append(SQLCondition('rev_hsdnymd_srk', condition.LE, 'rev_hsdnymd_srk_to')) - # 移行フラグ - # チェックが入っていない場合、移行対象(IKO_FLG = '*')を省く - if parameter.iko_flg is None: - where_clauses.append(SQLCondition('iko_flg', condition.IS, 'NULL', literal=True)) + if is_not_empty(parameter.cnvs_sales_dt_to): + where_clauses.append(SQLCondition('cnvs_sales_dt', condition.LE, 'cnvs_sales_dt_to')) + # TODO: 削除 # 移行フラグ + # # チェックが入っていない場合、移行対象(IKO_FLG = '*')を省く + # if parameter.iko_flg is None: + # where_clauses.append(SQLCondition('iko_flg', condition.IS, 'NULL', literal=True)) # 固定条件 - # Viewで返されるロット番号9件をNull以外で抽出 - where_clauses.append(SQLCondition('LENGTH(TRIM(rec_lot_num))', condition.GT, '0', literal=True)) + # ロット番号9件をNull以外で抽出 + # 現在の仕組みだと存在有り得ないので削除 + # where_clauses.append(SQLCondition('LENGTH(TRIM(cnvs_lot_no))', condition.GT, '0', literal=True)) where_clauses_str = ' AND '.join([condition.apply() for condition in where_clauses]) diff --git a/ecs/jskult-webapp/src/repositories/user_master_repository.py b/ecs/jskult-webapp/src/repositories/user_master_repository.py index 3acbc105..b295c2fd 100644 --- a/ecs/jskult-webapp/src/repositories/user_master_repository.py +++ b/ecs/jskult-webapp/src/repositories/user_master_repository.py @@ -23,7 +23,7 @@ class UserMasterRepository(BaseRepository): SELECT * FROM - src05.user_mst + src07.user_mst WHERE user_id = :user_id\ """ @@ -44,7 +44,7 @@ class UserMasterRepository(BaseRepository): try: query = """\ UPDATE - src05.user_mst + src07.user_mst SET mntuser_login_failed_cnt = CASE @@ -70,7 +70,7 @@ class UserMasterRepository(BaseRepository): try: query = """\ UPDATE - src05.user_mst + src07.user_mst SET enabled_flg = 'N' WHERE diff --git a/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py b/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py index 0ed59753..a3e31235 100644 --- a/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py +++ b/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py @@ -9,24 +9,21 @@ class WholesalerMasterRepository(BaseRepository): FETCH_SQL = """\ SELECT DISTINCT - b.rec_whs_cd, - b.rec_whs_sub_cd, - v2.name, - b.whs_name - FROM src05.bio_sales b + b.orig_whlslr_cd as rec_whs_cd, + b.orig_whlslr_sub_cd as rec_whs_sub_cd, + v2.ws_nm_kj as name, + b.cls_whlslr_nm as whs_name + FROM src07.trn_result_data_bio b LEFT OUTER JOIN ( SELECT - sub_num, - name, - v_whs_cd, - rec_sts_kbn - FROM src05.whs_mst_v - WHERE src05.get_syor_date() BETWEEN start_date AND end_date + ws_cd, + ws_nm_kj + FROM src07.mst_whlslr + WHERE src07.get_syor_date() BETWEEN str_to_date(concat(eff_start_ym, '01'), '%Y%m%d') AND str_to_date(concat(eff_end_ym, '01'), '%Y%m%d') ) v2 - ON b.v_whs_cd = v2.v_whs_cd - AND v2.rec_sts_kbn <> '9' - ORDER BY b.rec_whs_cd, b.rec_whs_sub_cd , b.whs_name DESC + ON b.orig_whlslr_cd = v2.ws_cd + ORDER BY b.orig_whlslr_cd, b.orig_whlslr_sub_cd , b.cls_whlslr_nm DESC """ def fetch_all(self) -> list[WholesalerMasterModel]: diff --git a/ecs/jskult-webapp/src/services/bio_view_service.py b/ecs/jskult-webapp/src/services/bio_view_service.py index bbf01bcb..d2d9e5db 100644 --- a/ecs/jskult-webapp/src/services/bio_view_service.py +++ b/ecs/jskult-webapp/src/services/bio_view_service.py @@ -14,7 +14,7 @@ from src.model.request.bio import BioModel from src.model.view.bio_disp_model import BioDisplayModel from src.model.view.bio_view_model import BioViewModel from src.repositories.base_repository import BaseRepository -from src.repositories.bio_sales_lot_repository import BioSalesLotRepository +from src.repositories.trn_result_data_bio_lot_repository import BioSalesLotRepository from src.repositories.pharmacy_product_master_repository import \ PharmacyProductMasterRepository from src.repositories.wholesaler_master_repository import \ @@ -65,9 +65,9 @@ class BioViewService(BaseService): def search_bio_data(self, search_params: BioModel): # 生物由来データを検索 - bio_sales_lot_data = self.bio_sales_repository.fetch_many(parameter=search_params) + trn_result_data_bio_lot_data = self.bio_sales_repository.fetch_many(parameter=search_params) # 画面表示用に加工 - display_bio_data: list[BioDisplayModel] = [BioDisplayModel(data) for data in bio_sales_lot_data] + display_bio_data: list[BioDisplayModel] = [BioDisplayModel(data) for data in trn_result_data_bio_lot_data] return display_bio_data diff --git a/ecs/jskult-webapp/src/templates/bioSearchList.html b/ecs/jskult-webapp/src/templates/bioSearchList.html index 1e345ccc..65159f1e 100644 --- a/ecs/jskult-webapp/src/templates/bioSearchList.html +++ b/ecs/jskult-webapp/src/templates/bioSearchList.html @@ -43,7 +43,7 @@ {% endfor %} -