feat:マスタメンテの廃止、不要になる箇所のコメントアウト
This commit is contained in:
parent
66aad6d4af
commit
41d92378c2
@ -1,371 +1,372 @@
|
||||
from io import BytesIO, TextIOWrapper
|
||||
from typing import Optional
|
||||
# # ファイル削除予定
|
||||
# from io import BytesIO, TextIOWrapper
|
||||
# from typing import Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request
|
||||
from fastapi.responses import HTMLResponse
|
||||
from starlette import status
|
||||
# from fastapi import APIRouter, Depends, HTTPException, Request
|
||||
# from fastapi.responses import HTMLResponse
|
||||
# from starlette import status
|
||||
|
||||
from src.depends.services import get_service
|
||||
from src.logging.get_logger import get_logger
|
||||
from src.model.internal.session import UserSession
|
||||
from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
|
||||
from src.model.request.master_mainte_csvup import MasterMainteCsvUpModel
|
||||
from src.model.view.inst_emp_csv_download_view_model import \
|
||||
InstEmpCsvDownloadViewModel
|
||||
from src.model.view.inst_emp_csv_upload_view_model import \
|
||||
InstEmpCsvUploadViewModel
|
||||
from src.model.view.master_mainte_menu_view_model import \
|
||||
MasterMainteMenuViewModel
|
||||
from src.model.view.table_override_view_model import TableOverrideViewModel
|
||||
from src.router.session_router import AuthenticatedRoute
|
||||
from src.services.batch_status_service import BatchStatusService
|
||||
from src.services.login_service import LoginService
|
||||
from src.services.master_mainte_service import MasterMainteService
|
||||
from src.system_var import constants
|
||||
from src.templates import templates
|
||||
# from src.depends.services import get_service
|
||||
# from src.logging.get_logger import get_logger
|
||||
# from src.model.internal.session import UserSession
|
||||
# from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
|
||||
# from src.model.request.master_mainte_csvup import MasterMainteCsvUpModel
|
||||
# from src.model.view.inst_emp_csv_download_view_model import \
|
||||
# InstEmpCsvDownloadViewModel
|
||||
# from src.model.view.inst_emp_csv_upload_view_model import \
|
||||
# InstEmpCsvUploadViewModel
|
||||
# from src.model.view.master_mainte_menu_view_model import \
|
||||
# MasterMainteMenuViewModel
|
||||
# from src.model.view.table_override_view_model import TableOverrideViewModel
|
||||
# from src.router.session_router import AuthenticatedRoute
|
||||
# from src.services.batch_status_service import BatchStatusService
|
||||
# from src.services.login_service import LoginService
|
||||
# from src.services.master_mainte_service import MasterMainteService
|
||||
# from src.system_var import constants
|
||||
# from src.templates import templates
|
||||
|
||||
logger = get_logger('マスターメンテ')
|
||||
# logger = get_logger('マスターメンテ')
|
||||
|
||||
router = APIRouter()
|
||||
router.route_class = AuthenticatedRoute
|
||||
# router = APIRouter()
|
||||
# router.route_class = AuthenticatedRoute
|
||||
|
||||
#########################
|
||||
# Views #
|
||||
#########################
|
||||
# #########################
|
||||
# # Views #
|
||||
# #########################
|
||||
|
||||
|
||||
@router.get('/masterMainteMenu', response_class=HTMLResponse)
|
||||
def menu_view(
|
||||
request: Request,
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.get('/masterMainteMenu', response_class=HTMLResponse)
|
||||
# def menu_view(
|
||||
# request: Request,
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
# 画面表示用のモデル
|
||||
menu = MasterMainteMenuViewModel()
|
||||
# # 画面表示用のモデル
|
||||
# menu = MasterMainteMenuViewModel()
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'masterMainteMenu.html',
|
||||
{
|
||||
'request': request,
|
||||
'menu': menu
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'masterMainteMenu.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'menu': menu
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.get('/instEmpCsvUL', response_class=HTMLResponse)
|
||||
def inst_emp_csv_upload_view(
|
||||
request: Request,
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.get('/instEmpCsvUL', response_class=HTMLResponse)
|
||||
# def inst_emp_csv_upload_view(
|
||||
# request: Request,
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
# 画面表示用のモデル
|
||||
mainte_csv_up = InstEmpCsvUploadViewModel()
|
||||
# # 画面表示用のモデル
|
||||
# mainte_csv_up = InstEmpCsvUploadViewModel()
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'instEmpCsvUL.html',
|
||||
{
|
||||
'request': request,
|
||||
'mainte_csv_up': mainte_csv_up
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'instEmpCsvUL.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'mainte_csv_up': mainte_csv_up
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.post('/instEmpCsvUL', response_class=HTMLResponse)
|
||||
async def inst_emp_csv_upload(
|
||||
request: Request,
|
||||
csv_upload_form: MasterMainteCsvUpModel = Depends(MasterMainteCsvUpModel.as_form),
|
||||
master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.post('/instEmpCsvUL', response_class=HTMLResponse)
|
||||
# async def inst_emp_csv_upload(
|
||||
# request: Request,
|
||||
# csv_upload_form: MasterMainteCsvUpModel = Depends(MasterMainteCsvUpModel.as_form),
|
||||
# master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
# 画面表示用のモデル
|
||||
error_message_list = []
|
||||
csv_filename: str = csv_upload_form.csv_file.filename
|
||||
if csv_upload_form.csv_file.size == 0:
|
||||
error_message_list.append('選択されたファイルが見つかりませんでした。')
|
||||
elif not csv_filename.endswith('.csv'):
|
||||
error_message_list.append('選択されたファイル形式が"csv"ではありません。')
|
||||
elif csv_upload_form.csv_file.size >= constants.MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE:
|
||||
error_message_list.append('選択されたCSVファイルサイズが大きいです。20MB未満にしてください。')
|
||||
else:
|
||||
mainte_csv_up = master_mainte_service.prepare_mainte_csv_up_view(
|
||||
TextIOWrapper(BytesIO(await csv_upload_form.csv_file.read()), encoding='utf-8'),
|
||||
csv_upload_form.csv_file.filename,
|
||||
csv_upload_form)
|
||||
# # 画面表示用のモデル
|
||||
# error_message_list = []
|
||||
# csv_filename: str = csv_upload_form.csv_file.filename
|
||||
# if csv_upload_form.csv_file.size == 0:
|
||||
# error_message_list.append('選択されたファイルが見つかりませんでした。')
|
||||
# elif not csv_filename.endswith('.csv'):
|
||||
# error_message_list.append('選択されたファイル形式が"csv"ではありません。')
|
||||
# elif csv_upload_form.csv_file.size >= constants.MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE:
|
||||
# error_message_list.append('選択されたCSVファイルサイズが大きいです。20MB未満にしてください。')
|
||||
# else:
|
||||
# mainte_csv_up = master_mainte_service.prepare_mainte_csv_up_view(
|
||||
# TextIOWrapper(BytesIO(await csv_upload_form.csv_file.read()), encoding='utf-8'),
|
||||
# csv_upload_form.csv_file.filename,
|
||||
# csv_upload_form)
|
||||
|
||||
if len(error_message_list) > 0:
|
||||
mainte_csv_up = InstEmpCsvUploadViewModel(
|
||||
is_verified=True,
|
||||
error_message_list=error_message_list,
|
||||
select_function=csv_upload_form.select_function,
|
||||
select_table=csv_upload_form.select_table)
|
||||
# if len(error_message_list) > 0:
|
||||
# mainte_csv_up = InstEmpCsvUploadViewModel(
|
||||
# is_verified=True,
|
||||
# error_message_list=error_message_list,
|
||||
# select_function=csv_upload_form.select_function,
|
||||
# select_table=csv_upload_form.select_table)
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'instEmpCsvUL.html',
|
||||
{
|
||||
'request': request,
|
||||
'mainte_csv_up': mainte_csv_up
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'instEmpCsvUL.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'mainte_csv_up': mainte_csv_up
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.post('/newInst', response_class=HTMLResponse)
|
||||
def new_inst_result_view(
|
||||
request: Request,
|
||||
csv_upload_form: Optional[MasterMainteCsvUpModel] = Depends(MasterMainteCsvUpModel.as_form),
|
||||
master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService)),
|
||||
login_service: LoginService = Depends(get_service(LoginService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.post('/newInst', response_class=HTMLResponse)
|
||||
# def new_inst_result_view(
|
||||
# request: Request,
|
||||
# csv_upload_form: Optional[MasterMainteCsvUpModel] = Depends(MasterMainteCsvUpModel.as_form),
|
||||
# master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService)),
|
||||
# login_service: LoginService = Depends(get_service(LoginService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# ユーザIDからユーザ名を取得
|
||||
user_name = login_service.logged_in_user(session.user_id).user_name
|
||||
# CSVデータを登録し、登録完了画面のモデルを返却する
|
||||
mainte_csv_up = master_mainte_service.prepare_mainte_new_inst_view(user_name, csv_upload_form)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # ユーザIDからユーザ名を取得
|
||||
# user_name = login_service.logged_in_user(session.user_id).user_name
|
||||
# # CSVデータを登録し、登録完了画面のモデルを返却する
|
||||
# mainte_csv_up = master_mainte_service.prepare_mainte_new_inst_view(user_name, csv_upload_form)
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'instEmpCsvUL.html',
|
||||
{
|
||||
'request': request,
|
||||
'mainte_csv_up': mainte_csv_up
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'instEmpCsvUL.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'mainte_csv_up': mainte_csv_up
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.get('/instEmpCsvDL', response_class=HTMLResponse)
|
||||
def inst_emp_csv_download_view(
|
||||
request: Request,
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.get('/instEmpCsvDL', response_class=HTMLResponse)
|
||||
# def inst_emp_csv_download_view(
|
||||
# request: Request,
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
# 画面表示用のモデル
|
||||
mainte_csv_dl = InstEmpCsvDownloadViewModel(
|
||||
is_search=False
|
||||
)
|
||||
# # 画面表示用のモデル
|
||||
# mainte_csv_dl = InstEmpCsvDownloadViewModel(
|
||||
# is_search=False
|
||||
# )
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'instEmpCsvDL.html',
|
||||
{
|
||||
'request': request,
|
||||
'mainte_csv_dl': mainte_csv_dl
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'instEmpCsvDL.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'mainte_csv_dl': mainte_csv_dl
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.post('/download', response_class=HTMLResponse)
|
||||
def inst_emp_csv_download(
|
||||
request: Request,
|
||||
csv_download_form: Optional[MasterMainteCsvDlModel] = Depends(MasterMainteCsvDlModel.as_form),
|
||||
master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.post('/download', response_class=HTMLResponse)
|
||||
# def inst_emp_csv_download(
|
||||
# request: Request,
|
||||
# csv_download_form: Optional[MasterMainteCsvDlModel] = Depends(MasterMainteCsvDlModel.as_form),
|
||||
# master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
search_result_df = master_mainte_service.search_emp_chg_inst_data(csv_download_form)
|
||||
# search_result_df = master_mainte_service.search_emp_chg_inst_data(csv_download_form)
|
||||
|
||||
(result_msg, download_file_url) = master_mainte_service.upload_emp_chg_inst_data_file(
|
||||
search_result_df,
|
||||
session.user_id,
|
||||
csv_download_form.select_table)
|
||||
# (result_msg, download_file_url) = master_mainte_service.upload_emp_chg_inst_data_file(
|
||||
# search_result_df,
|
||||
# session.user_id,
|
||||
# csv_download_form.select_table)
|
||||
|
||||
# 画面表示用のモデル
|
||||
mainte_csv_dl = InstEmpCsvDownloadViewModel(
|
||||
is_search=True,
|
||||
ta_cd=csv_download_form.ta_cd,
|
||||
inst_cd=csv_download_form.inst_cd,
|
||||
emp_cd=csv_download_form.emp_cd,
|
||||
emp_chg_type_cd=csv_download_form.emp_chg_type_cd,
|
||||
apply_date_from=csv_download_form.apply_date_from,
|
||||
start_date_from=csv_download_form.start_date_from,
|
||||
start_date_to=csv_download_form.start_date_to,
|
||||
end_date_from=csv_download_form.end_date_from,
|
||||
end_date_to=csv_download_form.end_date_to,
|
||||
create_date_from=csv_download_form.create_date_from,
|
||||
create_date_to=csv_download_form.create_date_to,
|
||||
update_date_from=csv_download_form.update_date_from,
|
||||
update_date_to=csv_download_form.update_date_to,
|
||||
select_table=csv_download_form.select_table,
|
||||
data_count=search_result_df.shape[0],
|
||||
download_file_url=download_file_url,
|
||||
file_name=constants.MENTE_CSV_DOWNLOAD_FILE_NAME,
|
||||
result_msg=result_msg
|
||||
)
|
||||
# # 画面表示用のモデル
|
||||
# mainte_csv_dl = InstEmpCsvDownloadViewModel(
|
||||
# is_search=True,
|
||||
# ta_cd=csv_download_form.ta_cd,
|
||||
# inst_cd=csv_download_form.inst_cd,
|
||||
# emp_cd=csv_download_form.emp_cd,
|
||||
# emp_chg_type_cd=csv_download_form.emp_chg_type_cd,
|
||||
# apply_date_from=csv_download_form.apply_date_from,
|
||||
# start_date_from=csv_download_form.start_date_from,
|
||||
# start_date_to=csv_download_form.start_date_to,
|
||||
# end_date_from=csv_download_form.end_date_from,
|
||||
# end_date_to=csv_download_form.end_date_to,
|
||||
# create_date_from=csv_download_form.create_date_from,
|
||||
# create_date_to=csv_download_form.create_date_to,
|
||||
# update_date_from=csv_download_form.update_date_from,
|
||||
# update_date_to=csv_download_form.update_date_to,
|
||||
# select_table=csv_download_form.select_table,
|
||||
# data_count=search_result_df.shape[0],
|
||||
# download_file_url=download_file_url,
|
||||
# file_name=constants.MENTE_CSV_DOWNLOAD_FILE_NAME,
|
||||
# result_msg=result_msg
|
||||
# )
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'instEmpCsvDL.html',
|
||||
{
|
||||
'request': request,
|
||||
'mainte_csv_dl': mainte_csv_dl
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'instEmpCsvDL.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'mainte_csv_dl': mainte_csv_dl
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.get('/tableOverride', response_class=HTMLResponse)
|
||||
def table_override_view(
|
||||
request: Request,
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.get('/tableOverride', response_class=HTMLResponse)
|
||||
# def table_override_view(
|
||||
# request: Request,
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
# 画面表示用のモデル
|
||||
table_override = TableOverrideViewModel()
|
||||
# # 画面表示用のモデル
|
||||
# table_override = TableOverrideViewModel()
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'tableOverride.html',
|
||||
{
|
||||
'request': request,
|
||||
'table_override': table_override
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'tableOverride.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'table_override': table_override
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
|
||||
@router.post('/tableOverride', response_class=HTMLResponse)
|
||||
def table_override_result_view(
|
||||
request: Request,
|
||||
master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
):
|
||||
session: UserSession = request.session
|
||||
# @router.post('/tableOverride', response_class=HTMLResponse)
|
||||
# def table_override_result_view(
|
||||
# request: Request,
|
||||
# master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
|
||||
# batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
||||
# ):
|
||||
# session: UserSession = request.session
|
||||
|
||||
# マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
# # マスタメンテメニューへのアクセス権がない場合、ログアウトさせる
|
||||
# if session.master_mainte_flg == constants.PERMISSION_DISABLED:
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
# バッチ処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_batch_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# dump処理中の場合、ログアウトさせる
|
||||
if batch_status_service.is_dump_processing():
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
# # バッチ処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_batch_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN,
|
||||
# detail=constants.LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE)
|
||||
# # dump処理中の場合、ログアウトさせる
|
||||
# if batch_status_service.is_dump_processing():
|
||||
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BACKUP_PROCESSING)
|
||||
|
||||
# 画面表示用のモデル
|
||||
table_override = master_mainte_service.copy_data_real_to_dummy()
|
||||
# # 画面表示用のモデル
|
||||
# table_override = master_mainte_service.copy_data_real_to_dummy()
|
||||
|
||||
# レスポンス
|
||||
session_key = session.session_key
|
||||
templates_response = templates.TemplateResponse(
|
||||
'tableOverride.html',
|
||||
{
|
||||
'request': request,
|
||||
'table_override': table_override
|
||||
},
|
||||
headers={'session_key': session_key}
|
||||
)
|
||||
return templates_response
|
||||
# # レスポンス
|
||||
# session_key = session.session_key
|
||||
# templates_response = templates.TemplateResponse(
|
||||
# 'tableOverride.html',
|
||||
# {
|
||||
# 'request': request,
|
||||
# 'table_override': table_override
|
||||
# },
|
||||
# headers={'session_key': session_key}
|
||||
# )
|
||||
# return templates_response
|
||||
|
||||
@ -32,7 +32,7 @@ app.include_router(ultmarc.router, prefix='/ultmarc')
|
||||
# クライアントから非同期呼出しされるため、共通ルーターとは異なる扱いとする。
|
||||
app.include_router(bio_api.router, prefix='/bio')
|
||||
# マスタメンテ
|
||||
app.include_router(master_mainte.router, prefix='/masterMainte')
|
||||
# 削除予定app.include_router(master_mainte.router, prefix='/masterMainte')
|
||||
# ヘルスチェック用のルーター
|
||||
app.include_router(healthcheck.router, prefix='/healthcheck')
|
||||
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
from typing import Optional
|
||||
# ファイル削除予定
|
||||
# from typing import Optional
|
||||
|
||||
from src.model.db.base_db_model import BaseDBModel
|
||||
from src.util.sanitize import sanitize
|
||||
# from src.model.db.base_db_model import BaseDBModel
|
||||
# from src.util.sanitize import sanitize
|
||||
|
||||
|
||||
@sanitize
|
||||
class MasterMenteCountModel(BaseDBModel):
|
||||
count: Optional[int]
|
||||
# @sanitize
|
||||
# class MasterMenteCountModel(BaseDBModel):
|
||||
# count: Optional[int]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,166 +1,167 @@
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from src.repositories.emp_chg_inst_repository import EmpChgInstRepository
|
||||
from src.logging.get_logger import get_logger
|
||||
# # ファイル削除予定
|
||||
# from abc import ABCMeta, abstractmethod
|
||||
# from src.repositories.emp_chg_inst_repository import EmpChgInstRepository
|
||||
# from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('マスターメンテ')
|
||||
# logger = get_logger('マスターメンテ')
|
||||
|
||||
|
||||
class MasterMainteEmpChgInstFunction(metaclass=ABCMeta):
|
||||
insert_data: list[dict]
|
||||
table_name: str
|
||||
select_table_message: str
|
||||
user_name: str
|
||||
emp_chginst_repository: EmpChgInstRepository
|
||||
# class MasterMainteEmpChgInstFunction(metaclass=ABCMeta):
|
||||
# insert_data: list[dict]
|
||||
# table_name: str
|
||||
# select_table_message: str
|
||||
# user_name: str
|
||||
# emp_chginst_repository: EmpChgInstRepository
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
insert_data,
|
||||
table_name: str,
|
||||
select_table_message: str,
|
||||
user_name: str,
|
||||
emp_chginst_repository: EmpChgInstRepository
|
||||
):
|
||||
self.insert_data = insert_data
|
||||
self.table_name = table_name
|
||||
self.select_table_message = select_table_message
|
||||
self.user_name = user_name
|
||||
self.emp_chginst_repository = emp_chginst_repository
|
||||
# def __init__(
|
||||
# self,
|
||||
# insert_data,
|
||||
# table_name: str,
|
||||
# select_table_message: str,
|
||||
# user_name: str,
|
||||
# emp_chginst_repository: EmpChgInstRepository
|
||||
# ):
|
||||
# self.insert_data = insert_data
|
||||
# self.table_name = table_name
|
||||
# self.select_table_message = select_table_message
|
||||
# self.user_name = user_name
|
||||
# self.emp_chginst_repository = emp_chginst_repository
|
||||
|
||||
def save(self):
|
||||
error_list = []
|
||||
try:
|
||||
self.emp_chginst_repository.begin()
|
||||
self.emp_chginst_repository.to_jst()
|
||||
(result_message, error_list) = self.write_emp_chg_inst_table()
|
||||
if len(error_list) > 0:
|
||||
self.emp_chginst_repository.rollback()
|
||||
else:
|
||||
self.emp_chginst_repository.commit()
|
||||
except Exception as e:
|
||||
self.emp_chginst_repository.rollback()
|
||||
raise e
|
||||
# def save(self):
|
||||
# error_list = []
|
||||
# try:
|
||||
# self.emp_chginst_repository.begin()
|
||||
# self.emp_chginst_repository.to_jst()
|
||||
# (result_message, error_list) = self.write_emp_chg_inst_table()
|
||||
# if len(error_list) > 0:
|
||||
# self.emp_chginst_repository.rollback()
|
||||
# else:
|
||||
# self.emp_chginst_repository.commit()
|
||||
# except Exception as e:
|
||||
# self.emp_chginst_repository.rollback()
|
||||
# raise e
|
||||
|
||||
return (result_message, error_list)
|
||||
# return (result_message, error_list)
|
||||
|
||||
def add_emp_chg_inst_table(self, data, start_date, end_date):
|
||||
self.emp_chginst_repository.insert_emp_chg_inst(
|
||||
data['施設コード'],
|
||||
data['領域コード'],
|
||||
data['担当者種別コード'],
|
||||
data['MUID'],
|
||||
data['ビジネスユニットコード'],
|
||||
start_date,
|
||||
end_date,
|
||||
self.user_name,
|
||||
self.table_name)
|
||||
# def add_emp_chg_inst_table(self, data, start_date, end_date):
|
||||
# self.emp_chginst_repository.insert_emp_chg_inst(
|
||||
# data['施設コード'],
|
||||
# data['領域コード'],
|
||||
# data['担当者種別コード'],
|
||||
# data['MUID'],
|
||||
# data['ビジネスユニットコード'],
|
||||
# start_date,
|
||||
# end_date,
|
||||
# self.user_name,
|
||||
# self.table_name)
|
||||
|
||||
@abstractmethod
|
||||
def write_emp_chg_inst_table(self):
|
||||
pass
|
||||
# @abstractmethod
|
||||
# def write_emp_chg_inst_table(self):
|
||||
# pass
|
||||
|
||||
|
||||
class NewEmpChgInstFunction(MasterMainteEmpChgInstFunction):
|
||||
# class NewEmpChgInstFunction(MasterMainteEmpChgInstFunction):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
insert_data_list: list[dict],
|
||||
table_name: str,
|
||||
select_table_message: str,
|
||||
user_name: str,
|
||||
emp_chginst_repository: EmpChgInstRepository
|
||||
):
|
||||
super().__init__(
|
||||
insert_data_list,
|
||||
table_name,
|
||||
select_table_message,
|
||||
user_name,
|
||||
emp_chginst_repository
|
||||
)
|
||||
# def __init__(
|
||||
# self,
|
||||
# insert_data_list: list[dict],
|
||||
# table_name: str,
|
||||
# select_table_message: str,
|
||||
# user_name: str,
|
||||
# emp_chginst_repository: EmpChgInstRepository
|
||||
# ):
|
||||
# super().__init__(
|
||||
# insert_data_list,
|
||||
# table_name,
|
||||
# select_table_message,
|
||||
# user_name,
|
||||
# emp_chginst_repository
|
||||
# )
|
||||
|
||||
def write_emp_chg_inst_table(self):
|
||||
error_list = []
|
||||
# def write_emp_chg_inst_table(self):
|
||||
# error_list = []
|
||||
|
||||
add_count = 0
|
||||
for row_no, data in enumerate(self.insert_data, start=1):
|
||||
try:
|
||||
self.add_emp_chg_inst_table(data, data['適用開始日'], data['適用終了日'])
|
||||
add_count += 1
|
||||
except Exception as e:
|
||||
error_list.append(f'{str(row_no)}行目がSQL実行エラーです。CSVファイルを確認してください。')
|
||||
logger.info(f'新規施設登録時に{row_no}行目でエラーが発生しました: {e}')
|
||||
# add_count = 0
|
||||
# for row_no, data in enumerate(self.insert_data, start=1):
|
||||
# try:
|
||||
# self.add_emp_chg_inst_table(data, data['適用開始日'], data['適用終了日'])
|
||||
# add_count += 1
|
||||
# except Exception as e:
|
||||
# error_list.append(f'{str(row_no)}行目がSQL実行エラーです。CSVファイルを確認してください。')
|
||||
# logger.info(f'新規施設登録時に{row_no}行目でエラーが発生しました: {e}')
|
||||
|
||||
result_message_list = []
|
||||
if len(error_list) == 0:
|
||||
result_message_list.append('新規施設登録を行いました')
|
||||
result_message_list.append('対象:' + self.select_table_message)
|
||||
result_message_list.append('追加:' + str(add_count) + '件')
|
||||
return (result_message_list, error_list)
|
||||
# result_message_list = []
|
||||
# if len(error_list) == 0:
|
||||
# result_message_list.append('新規施設登録を行いました')
|
||||
# result_message_list.append('対象:' + self.select_table_message)
|
||||
# result_message_list.append('追加:' + str(add_count) + '件')
|
||||
# return (result_message_list, error_list)
|
||||
|
||||
|
||||
class ChangeEmpChgInstFunction(MasterMainteEmpChgInstFunction):
|
||||
# class ChangeEmpChgInstFunction(MasterMainteEmpChgInstFunction):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
insert_data: list[dict],
|
||||
table_name: str,
|
||||
select_table_message: str,
|
||||
user_name: str,
|
||||
emp_chginst_repository: EmpChgInstRepository
|
||||
# def __init__(
|
||||
# self,
|
||||
# insert_data: list[dict],
|
||||
# table_name: str,
|
||||
# select_table_message: str,
|
||||
# user_name: str,
|
||||
# emp_chginst_repository: EmpChgInstRepository
|
||||
|
||||
):
|
||||
super().__init__(
|
||||
insert_data,
|
||||
table_name,
|
||||
select_table_message,
|
||||
user_name,
|
||||
emp_chginst_repository
|
||||
)
|
||||
# ):
|
||||
# super().__init__(
|
||||
# insert_data,
|
||||
# table_name,
|
||||
# select_table_message,
|
||||
# user_name,
|
||||
# emp_chginst_repository
|
||||
# )
|
||||
|
||||
def write_emp_chg_inst_table(self):
|
||||
add_count = 0
|
||||
end_count = 0
|
||||
modify_count = 0
|
||||
error_list = []
|
||||
for row_no, data in enumerate(self.insert_data, start=1):
|
||||
try:
|
||||
if data['コメント'] == '追加':
|
||||
self.add_emp_chg_inst_table(data, data['施設担当_開始日'], data['施設担当_終了日'])
|
||||
add_count += 1
|
||||
elif data['コメント'] == '終了':
|
||||
self.__end_emp_chg_inst(data)
|
||||
end_count += 1
|
||||
elif data['コメント'] == '担当者修正':
|
||||
self.__modify_emp_chg_inst(data)
|
||||
modify_count += 1
|
||||
except Exception as e:
|
||||
error_list.append(f'{str(row_no)}行目がSQL実行エラーです。CSVファイルを確認してください。')
|
||||
logger.info(f'施設担当者変更時に{row_no}行目でエラーが発生しました: {e}')
|
||||
# def write_emp_chg_inst_table(self):
|
||||
# add_count = 0
|
||||
# end_count = 0
|
||||
# modify_count = 0
|
||||
# error_list = []
|
||||
# for row_no, data in enumerate(self.insert_data, start=1):
|
||||
# try:
|
||||
# if data['コメント'] == '追加':
|
||||
# self.add_emp_chg_inst_table(data, data['施設担当_開始日'], data['施設担当_終了日'])
|
||||
# add_count += 1
|
||||
# elif data['コメント'] == '終了':
|
||||
# self.__end_emp_chg_inst(data)
|
||||
# end_count += 1
|
||||
# elif data['コメント'] == '担当者修正':
|
||||
# self.__modify_emp_chg_inst(data)
|
||||
# modify_count += 1
|
||||
# except Exception as e:
|
||||
# error_list.append(f'{str(row_no)}行目がSQL実行エラーです。CSVファイルを確認してください。')
|
||||
# logger.info(f'施設担当者変更時に{row_no}行目でエラーが発生しました: {e}')
|
||||
|
||||
result_message_list = []
|
||||
if len(error_list) == 0:
|
||||
result_message_list.append('施設担当者変更を行いました')
|
||||
result_message_list.append('対象:' + self.select_table_message)
|
||||
result_message_list.append('追加:' + str(add_count) + '件')
|
||||
result_message_list.append('修正:' + str(modify_count) + '件')
|
||||
result_message_list.append('終了:' + str(end_count) + '件')
|
||||
return (result_message_list, error_list)
|
||||
# result_message_list = []
|
||||
# if len(error_list) == 0:
|
||||
# result_message_list.append('施設担当者変更を行いました')
|
||||
# result_message_list.append('対象:' + self.select_table_message)
|
||||
# result_message_list.append('追加:' + str(add_count) + '件')
|
||||
# result_message_list.append('修正:' + str(modify_count) + '件')
|
||||
# result_message_list.append('終了:' + str(end_count) + '件')
|
||||
# return (result_message_list, error_list)
|
||||
|
||||
def __end_emp_chg_inst(self, data: dict):
|
||||
self.emp_chginst_repository.end_emp_chg_inst(
|
||||
data['施設コード'],
|
||||
data['領域コード'],
|
||||
data['担当者種別コード'],
|
||||
data['施設担当_開始日'],
|
||||
data['終了日の変更'],
|
||||
self.user_name,
|
||||
self.table_name)
|
||||
# def __end_emp_chg_inst(self, data: dict):
|
||||
# self.emp_chginst_repository.end_emp_chg_inst(
|
||||
# data['施設コード'],
|
||||
# data['領域コード'],
|
||||
# data['担当者種別コード'],
|
||||
# data['施設担当_開始日'],
|
||||
# data['終了日の変更'],
|
||||
# self.user_name,
|
||||
# self.table_name)
|
||||
|
||||
def __modify_emp_chg_inst(self, data: dict):
|
||||
self.emp_chginst_repository.modify_emp_chg_inst(
|
||||
data['施設コード'],
|
||||
data['領域コード'],
|
||||
data['施設担当_開始日'],
|
||||
data['担当者種別コード'],
|
||||
data['MUID'],
|
||||
self.user_name,
|
||||
self.table_name)
|
||||
# def __modify_emp_chg_inst(self, data: dict):
|
||||
# self.emp_chginst_repository.modify_emp_chg_inst(
|
||||
# data['施設コード'],
|
||||
# data['領域コード'],
|
||||
# data['施設担当_開始日'],
|
||||
# data['担当者種別コード'],
|
||||
# data['MUID'],
|
||||
# self.user_name,
|
||||
# self.table_name)
|
||||
|
||||
@ -1,177 +1,178 @@
|
||||
from typing import Optional
|
||||
# ファイル削除予定
|
||||
# from typing import Optional
|
||||
|
||||
from fastapi import Form
|
||||
# from fastapi import Form
|
||||
|
||||
from src.model.request.request_base_model import RequestBaseModel
|
||||
from src.util.sanitize import sanitize
|
||||
from src.util.string_util import is_not_empty
|
||||
# from src.model.request.request_base_model import RequestBaseModel
|
||||
# from src.util.sanitize import sanitize
|
||||
# from src.util.string_util import is_not_empty
|
||||
|
||||
|
||||
@sanitize
|
||||
class MasterMainteCsvDlModel(RequestBaseModel):
|
||||
# adaptは検索に使用する値
|
||||
ta_cd: Optional[str]
|
||||
adapt_ta_cd: Optional[str]
|
||||
inst_cd: Optional[str]
|
||||
adapt_inst_cd: Optional[str]
|
||||
emp_cd: Optional[str]
|
||||
adapt_emp_cd: Optional[str]
|
||||
emp_chg_type_cd: Optional[str]
|
||||
adapt_emp_chg_type_cd: Optional[str]
|
||||
apply_date_from: Optional[str]
|
||||
adapt_apply_date_from: Optional[str]
|
||||
start_date_from: Optional[str]
|
||||
adapt_start_date_from: Optional[str]
|
||||
start_date_to: Optional[str]
|
||||
adapt_start_date_to: Optional[str]
|
||||
end_date_from: Optional[str]
|
||||
adapt_end_date_from: Optional[str]
|
||||
end_date_to: Optional[str]
|
||||
adapt_end_date_to: Optional[str]
|
||||
select_table: Optional[str]
|
||||
create_date_from: Optional[str]
|
||||
adapt_create_date_from: Optional[str]
|
||||
create_date_to: Optional[str]
|
||||
adapt_create_date_to: Optional[str]
|
||||
update_date_from: Optional[str]
|
||||
adapt_update_date_from: Optional[str]
|
||||
update_date_to: Optional[str]
|
||||
adapt_update_date_to: Optional[str]
|
||||
# @sanitize
|
||||
# class MasterMainteCsvDlModel(RequestBaseModel):
|
||||
# # adaptは検索に使用する値
|
||||
# ta_cd: Optional[str]
|
||||
# adapt_ta_cd: Optional[str]
|
||||
# inst_cd: Optional[str]
|
||||
# adapt_inst_cd: Optional[str]
|
||||
# emp_cd: Optional[str]
|
||||
# adapt_emp_cd: Optional[str]
|
||||
# emp_chg_type_cd: Optional[str]
|
||||
# adapt_emp_chg_type_cd: Optional[str]
|
||||
# apply_date_from: Optional[str]
|
||||
# adapt_apply_date_from: Optional[str]
|
||||
# start_date_from: Optional[str]
|
||||
# adapt_start_date_from: Optional[str]
|
||||
# start_date_to: Optional[str]
|
||||
# adapt_start_date_to: Optional[str]
|
||||
# end_date_from: Optional[str]
|
||||
# adapt_end_date_from: Optional[str]
|
||||
# end_date_to: Optional[str]
|
||||
# adapt_end_date_to: Optional[str]
|
||||
# select_table: Optional[str]
|
||||
# create_date_from: Optional[str]
|
||||
# adapt_create_date_from: Optional[str]
|
||||
# create_date_to: Optional[str]
|
||||
# adapt_create_date_to: Optional[str]
|
||||
# update_date_from: Optional[str]
|
||||
# adapt_update_date_from: Optional[str]
|
||||
# update_date_to: Optional[str]
|
||||
# adapt_update_date_to: Optional[str]
|
||||
|
||||
@classmethod
|
||||
def as_form(
|
||||
cls,
|
||||
ctrl_ta_cd: Optional[str] = Form(None),
|
||||
ctrl_inst_cd: Optional[str] = Form(None),
|
||||
ctrl_emp_cd: Optional[str] = Form(None),
|
||||
ctrl_emp_chg_type_cd: Optional[str] = Form(None),
|
||||
ctrl_apply_date_from: Optional[str] = Form(None),
|
||||
ctrl_start_date_from: Optional[str] = Form(None),
|
||||
ctrl_start_date_to: Optional[str] = Form(None),
|
||||
ctrl_end_date_from: Optional[str] = Form(None),
|
||||
ctrl_end_date_to: Optional[str] = Form(None),
|
||||
radio_select_table: Optional[str] = Form(None),
|
||||
ctrl_create_date_from: Optional[str] = Form(None),
|
||||
ctrl_create_date_to: Optional[str] = Form(None),
|
||||
ctrl_update_date_from: Optional[str] = Form(None),
|
||||
ctrl_update_date_to: Optional[str] = Form(None)
|
||||
):
|
||||
return cls.__convert_request_param(
|
||||
cls,
|
||||
ctrl_ta_cd,
|
||||
ctrl_inst_cd,
|
||||
ctrl_emp_cd,
|
||||
ctrl_emp_chg_type_cd,
|
||||
ctrl_apply_date_from,
|
||||
ctrl_start_date_from,
|
||||
ctrl_start_date_to,
|
||||
ctrl_end_date_from,
|
||||
ctrl_end_date_to,
|
||||
radio_select_table,
|
||||
ctrl_create_date_from,
|
||||
ctrl_create_date_to,
|
||||
ctrl_update_date_from,
|
||||
ctrl_update_date_to
|
||||
)
|
||||
# @classmethod
|
||||
# def as_form(
|
||||
# cls,
|
||||
# ctrl_ta_cd: Optional[str] = Form(None),
|
||||
# ctrl_inst_cd: Optional[str] = Form(None),
|
||||
# ctrl_emp_cd: Optional[str] = Form(None),
|
||||
# ctrl_emp_chg_type_cd: Optional[str] = Form(None),
|
||||
# ctrl_apply_date_from: Optional[str] = Form(None),
|
||||
# ctrl_start_date_from: Optional[str] = Form(None),
|
||||
# ctrl_start_date_to: Optional[str] = Form(None),
|
||||
# ctrl_end_date_from: Optional[str] = Form(None),
|
||||
# ctrl_end_date_to: Optional[str] = Form(None),
|
||||
# radio_select_table: Optional[str] = Form(None),
|
||||
# ctrl_create_date_from: Optional[str] = Form(None),
|
||||
# ctrl_create_date_to: Optional[str] = Form(None),
|
||||
# ctrl_update_date_from: Optional[str] = Form(None),
|
||||
# ctrl_update_date_to: Optional[str] = Form(None)
|
||||
# ):
|
||||
# return cls.__convert_request_param(
|
||||
# cls,
|
||||
# ctrl_ta_cd,
|
||||
# ctrl_inst_cd,
|
||||
# ctrl_emp_cd,
|
||||
# ctrl_emp_chg_type_cd,
|
||||
# ctrl_apply_date_from,
|
||||
# ctrl_start_date_from,
|
||||
# ctrl_start_date_to,
|
||||
# ctrl_end_date_from,
|
||||
# ctrl_end_date_to,
|
||||
# radio_select_table,
|
||||
# ctrl_create_date_from,
|
||||
# ctrl_create_date_to,
|
||||
# ctrl_update_date_from,
|
||||
# ctrl_update_date_to
|
||||
# )
|
||||
|
||||
def __convert_request_param(
|
||||
cls,
|
||||
ctrl_ta_cd: str,
|
||||
ctrl_inst_cd: str,
|
||||
ctrl_emp_cd: str,
|
||||
ctrl_emp_chg_type_cd,
|
||||
ctrl_apply_date_from: str,
|
||||
ctrl_start_date_from: str,
|
||||
ctrl_start_date_to: str,
|
||||
ctrl_end_date_from: str,
|
||||
ctrl_end_date_to: str,
|
||||
radio_select_table: str,
|
||||
ctrl_create_date_from: str,
|
||||
ctrl_create_date_to: str,
|
||||
ctrl_update_date_from: str,
|
||||
ctrl_update_date_to: str
|
||||
):
|
||||
ctrl_ta_cd = ctrl_ta_cd if is_not_empty(ctrl_ta_cd) else ''
|
||||
ctrl_inst_cd = ctrl_inst_cd if is_not_empty(ctrl_inst_cd) else ''
|
||||
ctrl_emp_cd = ctrl_emp_cd if is_not_empty(ctrl_emp_cd) else ''
|
||||
ctrl_emp_chg_type_cd = ctrl_emp_chg_type_cd if is_not_empty(ctrl_emp_chg_type_cd) else ''
|
||||
# def __convert_request_param(
|
||||
# cls,
|
||||
# ctrl_ta_cd: str,
|
||||
# ctrl_inst_cd: str,
|
||||
# ctrl_emp_cd: str,
|
||||
# ctrl_emp_chg_type_cd,
|
||||
# ctrl_apply_date_from: str,
|
||||
# ctrl_start_date_from: str,
|
||||
# ctrl_start_date_to: str,
|
||||
# ctrl_end_date_from: str,
|
||||
# ctrl_end_date_to: str,
|
||||
# radio_select_table: str,
|
||||
# ctrl_create_date_from: str,
|
||||
# ctrl_create_date_to: str,
|
||||
# ctrl_update_date_from: str,
|
||||
# ctrl_update_date_to: str
|
||||
# ):
|
||||
# ctrl_ta_cd = ctrl_ta_cd if is_not_empty(ctrl_ta_cd) else ''
|
||||
# ctrl_inst_cd = ctrl_inst_cd if is_not_empty(ctrl_inst_cd) else ''
|
||||
# ctrl_emp_cd = ctrl_emp_cd if is_not_empty(ctrl_emp_cd) else ''
|
||||
# ctrl_emp_chg_type_cd = ctrl_emp_chg_type_cd if is_not_empty(ctrl_emp_chg_type_cd) else ''
|
||||
|
||||
adapt_apply_date_from = ''
|
||||
if is_not_empty(ctrl_apply_date_from):
|
||||
adapt_apply_date_from = ctrl_apply_date_from.replace('/', '')
|
||||
else:
|
||||
ctrl_apply_date_from = ''
|
||||
# adapt_apply_date_from = ''
|
||||
# if is_not_empty(ctrl_apply_date_from):
|
||||
# adapt_apply_date_from = ctrl_apply_date_from.replace('/', '')
|
||||
# else:
|
||||
# ctrl_apply_date_from = ''
|
||||
|
||||
adapt_start_date_from = ''
|
||||
adapt_start_date_to = ''
|
||||
if is_not_empty(ctrl_start_date_from):
|
||||
adapt_start_date_from = ctrl_start_date_from.replace('/', '')
|
||||
else:
|
||||
ctrl_start_date_from = ''
|
||||
if is_not_empty(ctrl_start_date_to):
|
||||
adapt_start_date_to = ctrl_start_date_to.replace('/', '')
|
||||
else:
|
||||
ctrl_start_date_to = ''
|
||||
# adapt_start_date_from = ''
|
||||
# adapt_start_date_to = ''
|
||||
# if is_not_empty(ctrl_start_date_from):
|
||||
# adapt_start_date_from = ctrl_start_date_from.replace('/', '')
|
||||
# else:
|
||||
# ctrl_start_date_from = ''
|
||||
# if is_not_empty(ctrl_start_date_to):
|
||||
# adapt_start_date_to = ctrl_start_date_to.replace('/', '')
|
||||
# else:
|
||||
# ctrl_start_date_to = ''
|
||||
|
||||
adapt_end_date_from = ''
|
||||
adapt_end_date_to = ''
|
||||
if is_not_empty(ctrl_end_date_from):
|
||||
adapt_end_date_from = ctrl_end_date_from.replace('/', '')
|
||||
else:
|
||||
ctrl_end_date_from = ''
|
||||
if is_not_empty(ctrl_end_date_to):
|
||||
adapt_end_date_to = ctrl_end_date_to.replace('/', '')
|
||||
else:
|
||||
ctrl_end_date_to = ''
|
||||
# adapt_end_date_from = ''
|
||||
# adapt_end_date_to = ''
|
||||
# if is_not_empty(ctrl_end_date_from):
|
||||
# adapt_end_date_from = ctrl_end_date_from.replace('/', '')
|
||||
# else:
|
||||
# ctrl_end_date_from = ''
|
||||
# if is_not_empty(ctrl_end_date_to):
|
||||
# adapt_end_date_to = ctrl_end_date_to.replace('/', '')
|
||||
# else:
|
||||
# ctrl_end_date_to = ''
|
||||
|
||||
adapt_create_date_from = ''
|
||||
adapt_create_date_to = ''
|
||||
if is_not_empty(ctrl_create_date_from):
|
||||
adapt_create_date_from = ctrl_create_date_from.replace('/', '-') + ' 00:00:00'
|
||||
else:
|
||||
ctrl_create_date_from = ''
|
||||
if is_not_empty(ctrl_create_date_to):
|
||||
adapt_create_date_to = ctrl_create_date_to.replace('/', '-') + ' 23:59:59'
|
||||
else:
|
||||
ctrl_create_date_to = ''
|
||||
# adapt_create_date_from = ''
|
||||
# adapt_create_date_to = ''
|
||||
# if is_not_empty(ctrl_create_date_from):
|
||||
# adapt_create_date_from = ctrl_create_date_from.replace('/', '-') + ' 00:00:00'
|
||||
# else:
|
||||
# ctrl_create_date_from = ''
|
||||
# if is_not_empty(ctrl_create_date_to):
|
||||
# adapt_create_date_to = ctrl_create_date_to.replace('/', '-') + ' 23:59:59'
|
||||
# else:
|
||||
# ctrl_create_date_to = ''
|
||||
|
||||
adapt_update_date_from = ''
|
||||
adapt_update_date_to = ''
|
||||
if is_not_empty(ctrl_update_date_from):
|
||||
adapt_update_date_from = ctrl_update_date_from.replace('/', '-') + ' 00:00:00'
|
||||
else:
|
||||
ctrl_update_date_from = ''
|
||||
if is_not_empty(ctrl_update_date_to):
|
||||
adapt_update_date_to = ctrl_update_date_to.replace('/', '-') + ' 23:59:59'
|
||||
else:
|
||||
ctrl_update_date_to = ''
|
||||
# adapt_update_date_from = ''
|
||||
# adapt_update_date_to = ''
|
||||
# if is_not_empty(ctrl_update_date_from):
|
||||
# adapt_update_date_from = ctrl_update_date_from.replace('/', '-') + ' 00:00:00'
|
||||
# else:
|
||||
# ctrl_update_date_from = ''
|
||||
# if is_not_empty(ctrl_update_date_to):
|
||||
# adapt_update_date_to = ctrl_update_date_to.replace('/', '-') + ' 23:59:59'
|
||||
# else:
|
||||
# ctrl_update_date_to = ''
|
||||
|
||||
return cls(
|
||||
ta_cd=ctrl_ta_cd,
|
||||
adapt_ta_cd=ctrl_ta_cd,
|
||||
inst_cd=ctrl_inst_cd,
|
||||
adapt_inst_cd=ctrl_inst_cd,
|
||||
emp_cd=ctrl_emp_cd,
|
||||
adapt_emp_cd=ctrl_emp_cd,
|
||||
emp_chg_type_cd=ctrl_emp_chg_type_cd,
|
||||
adapt_emp_chg_type_cd=ctrl_emp_chg_type_cd,
|
||||
apply_date_from=ctrl_apply_date_from,
|
||||
adapt_apply_date_from=adapt_apply_date_from,
|
||||
start_date_from=ctrl_start_date_from,
|
||||
adapt_start_date_from=adapt_start_date_from,
|
||||
start_date_to=ctrl_start_date_to,
|
||||
adapt_start_date_to=adapt_start_date_to,
|
||||
select_table=radio_select_table,
|
||||
end_date_from=ctrl_end_date_from,
|
||||
adapt_end_date_from=adapt_end_date_from,
|
||||
end_date_to=ctrl_end_date_to,
|
||||
adapt_end_date_to=adapt_end_date_to,
|
||||
create_date_from=ctrl_create_date_from,
|
||||
adapt_create_date_from=adapt_create_date_from,
|
||||
create_date_to=ctrl_create_date_to,
|
||||
adapt_create_date_to=adapt_create_date_to,
|
||||
update_date_from=ctrl_update_date_from,
|
||||
adapt_update_date_from=adapt_update_date_from,
|
||||
update_date_to=ctrl_update_date_to,
|
||||
adapt_update_date_to=adapt_update_date_to
|
||||
)
|
||||
# return cls(
|
||||
# ta_cd=ctrl_ta_cd,
|
||||
# adapt_ta_cd=ctrl_ta_cd,
|
||||
# inst_cd=ctrl_inst_cd,
|
||||
# adapt_inst_cd=ctrl_inst_cd,
|
||||
# emp_cd=ctrl_emp_cd,
|
||||
# adapt_emp_cd=ctrl_emp_cd,
|
||||
# emp_chg_type_cd=ctrl_emp_chg_type_cd,
|
||||
# adapt_emp_chg_type_cd=ctrl_emp_chg_type_cd,
|
||||
# apply_date_from=ctrl_apply_date_from,
|
||||
# adapt_apply_date_from=adapt_apply_date_from,
|
||||
# start_date_from=ctrl_start_date_from,
|
||||
# adapt_start_date_from=adapt_start_date_from,
|
||||
# start_date_to=ctrl_start_date_to,
|
||||
# adapt_start_date_to=adapt_start_date_to,
|
||||
# select_table=radio_select_table,
|
||||
# end_date_from=ctrl_end_date_from,
|
||||
# adapt_end_date_from=adapt_end_date_from,
|
||||
# end_date_to=ctrl_end_date_to,
|
||||
# adapt_end_date_to=adapt_end_date_to,
|
||||
# create_date_from=ctrl_create_date_from,
|
||||
# adapt_create_date_from=adapt_create_date_from,
|
||||
# create_date_to=ctrl_create_date_to,
|
||||
# adapt_create_date_to=adapt_create_date_to,
|
||||
# update_date_from=ctrl_update_date_from,
|
||||
# adapt_update_date_from=adapt_update_date_from,
|
||||
# update_date_to=ctrl_update_date_to,
|
||||
# adapt_update_date_to=adapt_update_date_to
|
||||
# )
|
||||
|
||||
@ -1,31 +1,32 @@
|
||||
from typing import Optional, Annotated
|
||||
# # ファイル削除予定
|
||||
# from typing import Optional, Annotated
|
||||
|
||||
from fastapi import Form
|
||||
# from fastapi import Form
|
||||
|
||||
from src.util.sanitize import sanitize
|
||||
from fastapi import File, UploadFile
|
||||
# from src.util.sanitize import sanitize
|
||||
# from fastapi import File, UploadFile
|
||||
|
||||
from src.model.request.request_base_model import RequestBaseModel
|
||||
# from src.model.request.request_base_model import RequestBaseModel
|
||||
|
||||
|
||||
@sanitize
|
||||
class MasterMainteCsvUpModel(RequestBaseModel):
|
||||
csv_file: Optional[Annotated[UploadFile, File()]]
|
||||
select_function: Optional[str]
|
||||
select_table: Optional[str]
|
||||
json_upload_data: Optional[str]
|
||||
# @sanitize
|
||||
# class MasterMainteCsvUpModel(RequestBaseModel):
|
||||
# csv_file: Optional[Annotated[UploadFile, File()]]
|
||||
# select_function: Optional[str]
|
||||
# select_table: Optional[str]
|
||||
# json_upload_data: Optional[str]
|
||||
|
||||
@classmethod
|
||||
def as_form(
|
||||
cls,
|
||||
ctrl_csv_file: UploadFile = Form(None),
|
||||
ctrl_select_function: Optional[str] = Form(None),
|
||||
ctrl_select_table: Optional[str] = Form(None),
|
||||
ctrl_json_upload_data: Optional[str] = Form(None)
|
||||
):
|
||||
return cls(
|
||||
csv_file=ctrl_csv_file,
|
||||
select_function=ctrl_select_function,
|
||||
select_table=ctrl_select_table,
|
||||
json_upload_data=ctrl_json_upload_data
|
||||
)
|
||||
# @classmethod
|
||||
# def as_form(
|
||||
# cls,
|
||||
# ctrl_csv_file: UploadFile = Form(None),
|
||||
# ctrl_select_function: Optional[str] = Form(None),
|
||||
# ctrl_select_table: Optional[str] = Form(None),
|
||||
# ctrl_json_upload_data: Optional[str] = Form(None)
|
||||
# ):
|
||||
# return cls(
|
||||
# csv_file=ctrl_csv_file,
|
||||
# select_function=ctrl_select_function,
|
||||
# select_table=ctrl_select_table,
|
||||
# json_upload_data=ctrl_json_upload_data
|
||||
# )
|
||||
|
||||
@ -1,32 +1,33 @@
|
||||
from pydantic import BaseModel
|
||||
#ファイル削除予定
|
||||
# from pydantic import BaseModel
|
||||
|
||||
from src.util.string_util import is_not_empty
|
||||
# from src.util.string_util import is_not_empty
|
||||
|
||||
|
||||
class InstEmpCsvDownloadViewModel(BaseModel):
|
||||
subtitle: str = '施設担当者データCSVダウンロード'
|
||||
is_search: bool = False
|
||||
ta_cd: str = ''
|
||||
inst_cd: str = ''
|
||||
emp_cd: str = ''
|
||||
emp_chg_type_cd: str = ''
|
||||
apply_date_from: str = ''
|
||||
start_date_from: str = ''
|
||||
start_date_to: str = ''
|
||||
end_date_from: str = ''
|
||||
end_date_to: str = ''
|
||||
create_date_from: str = ''
|
||||
create_date_to: str = ''
|
||||
update_date_from: str = ''
|
||||
update_date_to: str = ''
|
||||
select_table: str = ''
|
||||
data_count: int = 0
|
||||
result_msg: str = ''
|
||||
download_file_url: str = ''
|
||||
file_name: str = ''
|
||||
# class InstEmpCsvDownloadViewModel(BaseModel):
|
||||
# subtitle: str = '施設担当者データCSVダウンロード'
|
||||
# is_search: bool = False
|
||||
# ta_cd: str = ''
|
||||
# inst_cd: str = ''
|
||||
# emp_cd: str = ''
|
||||
# emp_chg_type_cd: str = ''
|
||||
# apply_date_from: str = ''
|
||||
# start_date_from: str = ''
|
||||
# start_date_to: str = ''
|
||||
# end_date_from: str = ''
|
||||
# end_date_to: str = ''
|
||||
# create_date_from: str = ''
|
||||
# create_date_to: str = ''
|
||||
# update_date_from: str = ''
|
||||
# update_date_to: str = ''
|
||||
# select_table: str = ''
|
||||
# data_count: int = 0
|
||||
# result_msg: str = ''
|
||||
# download_file_url: str = ''
|
||||
# file_name: str = ''
|
||||
|
||||
def is_select_table_empty(self):
|
||||
return not is_not_empty(self.select_table)
|
||||
# def is_select_table_empty(self):
|
||||
# return not is_not_empty(self.select_table)
|
||||
|
||||
def is_download_file_url_empty(self):
|
||||
return not is_not_empty(self.download_file_url)
|
||||
# def is_download_file_url_empty(self):
|
||||
# return not is_not_empty(self.download_file_url)
|
||||
|
||||
@ -1,48 +1,49 @@
|
||||
from pydantic import BaseModel
|
||||
#ファイル削除予定
|
||||
# from pydantic import BaseModel
|
||||
|
||||
from src.system_var import constants
|
||||
# from src.system_var import constants
|
||||
|
||||
|
||||
class InstEmpCsvUploadViewModel(BaseModel):
|
||||
subtitle: str = '施設担当者データCSVアップロード'
|
||||
is_verified: bool = False
|
||||
is_insert: bool = False
|
||||
error_message_list: list[str] = None
|
||||
select_function: str = None
|
||||
select_table: str = None
|
||||
csv_file_name: str = None
|
||||
csv_upload_list: list[dict] = None
|
||||
json_upload_data: str = None
|
||||
result_message_list: list[str] = None
|
||||
select_function_message: str = None
|
||||
# class InstEmpCsvUploadViewModel(BaseModel):
|
||||
# subtitle: str = '施設担当者データCSVアップロード'
|
||||
# is_verified: bool = False
|
||||
# is_insert: bool = False
|
||||
# error_message_list: list[str] = None
|
||||
# select_function: str = None
|
||||
# select_table: str = None
|
||||
# csv_file_name: str = None
|
||||
# csv_upload_list: list[dict] = None
|
||||
# json_upload_data: str = None
|
||||
# result_message_list: list[str] = None
|
||||
# select_function_message: str = None
|
||||
|
||||
def select_table_message(self):
|
||||
return self.__dummy_table() if self.select_table == 'dummy' else self.__real_table()
|
||||
# def select_table_message(self):
|
||||
# return self.__dummy_table() if self.select_table == 'dummy' else self.__real_table()
|
||||
|
||||
def upload_data_columns(self) -> list[str]:
|
||||
return self.__inst_emp_columns()
|
||||
# def upload_data_columns(self) -> list[str]:
|
||||
# return self.__inst_emp_columns()
|
||||
|
||||
def is_select_function_empty(self):
|
||||
return self.select_function is None or len(self.select_function) == 0
|
||||
# def is_select_function_empty(self):
|
||||
# return self.select_function is None or len(self.select_function) == 0
|
||||
|
||||
def is_select_table_empty(self):
|
||||
return self.select_table is None or len(self.select_table) == 0
|
||||
# def is_select_table_empty(self):
|
||||
# return self.select_table is None or len(self.select_table) == 0
|
||||
|
||||
def is_error_message_list_empty(self):
|
||||
return self.error_message_list is None or len(self.error_message_list) == 0
|
||||
# def is_error_message_list_empty(self):
|
||||
# return self.error_message_list is None or len(self.error_message_list) == 0
|
||||
|
||||
def csv_data_count(self):
|
||||
return 0 if self.csv_upload_list is None else len(self.csv_upload_list)
|
||||
# def csv_data_count(self):
|
||||
# return 0 if self.csv_upload_list is None else len(self.csv_upload_list)
|
||||
|
||||
def __inst_emp_columns(self) -> list[str]:
|
||||
if self.select_function == 'new':
|
||||
return constants.NEW_INST_EMP_CSV_LOGICAL_NAMES
|
||||
if self.select_function == 'change':
|
||||
return constants.CHANGE_INST_CSV_LOGICAL_NAMES
|
||||
return []
|
||||
# def __inst_emp_columns(self) -> list[str]:
|
||||
# if self.select_function == 'new':
|
||||
# return constants.NEW_INST_EMP_CSV_LOGICAL_NAMES
|
||||
# if self.select_function == 'change':
|
||||
# return constants.CHANGE_INST_CSV_LOGICAL_NAMES
|
||||
# return []
|
||||
|
||||
def __real_table(self):
|
||||
return constants.CSV_REAL_TABLE_NAME
|
||||
# def __real_table(self):
|
||||
# return constants.CSV_REAL_TABLE_NAME
|
||||
|
||||
def __dummy_table(self):
|
||||
return constants.CSV_CHANGE_TABLE_NAME
|
||||
# def __dummy_table(self):
|
||||
# return constants.CSV_CHANGE_TABLE_NAME
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
from pydantic import BaseModel
|
||||
# ファイル削除予定
|
||||
# from pydantic import BaseModel
|
||||
|
||||
|
||||
class MasterMainteMenuViewModel(BaseModel):
|
||||
subtitle: str = 'MeDaCA マスターメンテメニュー'
|
||||
# class MasterMainteMenuViewModel(BaseModel):
|
||||
# subtitle: str = 'MeDaCA マスターメンテメニュー'
|
||||
|
||||
@ -13,8 +13,8 @@ class MenuViewModel(BaseModel):
|
||||
def is_batch_processing(self):
|
||||
return self.batch_status == constants.BATCH_STATUS_PROCESSING
|
||||
|
||||
def is_backup_processing(self):
|
||||
return self.dump_status != constants.DUMP_STATUS_UNPROCESSED
|
||||
#TODO 削除予定 def is_backup_processing(self):
|
||||
# return self.dump_status != constants.DUMP_STATUS_UNPROCESSED
|
||||
|
||||
def is_available_ult_doctor_menu(self):
|
||||
return self.user_model.has_ult_doctor_permission()
|
||||
@ -24,6 +24,7 @@ class MenuViewModel(BaseModel):
|
||||
|
||||
def is_available_bio_menu(self):
|
||||
return self.user_model.has_bio_permission()
|
||||
|
||||
#TODO 削除予定 def is_available_master_maintenance_menu(self):
|
||||
# return self.user_model.has_master_maintenance_permission()
|
||||
|
||||
def is_available_master_maintenance_menu(self):
|
||||
return self.user_model.has_master_maintenance_permission()
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
from pydantic import BaseModel
|
||||
# ファイル削除予定
|
||||
# from pydantic import BaseModel
|
||||
|
||||
|
||||
class TableOverrideViewModel(BaseModel):
|
||||
subtitle: str = 'テーブル上書きコピー'
|
||||
# class TableOverrideViewModel(BaseModel):
|
||||
# subtitle: str = 'テーブル上書きコピー'
|
||||
|
||||
is_override: bool = False
|
||||
# is_override: bool = False
|
||||
|
||||
@ -19,6 +19,7 @@ class UserViewModel(BaseModel):
|
||||
|
||||
def has_bio_permission(self):
|
||||
return self.bio_flg == constants.PERMISSION_ENABLED
|
||||
|
||||
#TODO 削除予定 def has_master_maintenance_permission(self):
|
||||
# return self.master_mainte_flg == constants.PERMISSION_ENABLED
|
||||
|
||||
def has_master_maintenance_permission(self):
|
||||
return self.master_mainte_flg == constants.PERMISSION_ENABLED
|
||||
|
||||
@ -1,29 +1,30 @@
|
||||
from src.repositories.base_repository import BaseRepository
|
||||
from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
from src.logging.get_logger import get_logger
|
||||
# # file削除予定
|
||||
# from src.repositories.base_repository import BaseRepository
|
||||
# from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
# from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('ビジネスユニットマスタ')
|
||||
# logger = get_logger('ビジネスユニットマスタ')
|
||||
|
||||
|
||||
class BuMasterRepository(BaseRepository):
|
||||
# class BuMasterRepository(BaseRepository):
|
||||
|
||||
FETCH_COUNT_SQL = """\
|
||||
SELECT
|
||||
COUNT(*) AS count
|
||||
FROM
|
||||
src05.bu
|
||||
WHERE
|
||||
bu.bu_cd = :bu_cd
|
||||
"""
|
||||
# FETCH_COUNT_SQL = """\
|
||||
# SELECT
|
||||
# COUNT(*) AS count
|
||||
# FROM
|
||||
# src05.bu
|
||||
# WHERE
|
||||
# bu.bu_cd = :bu_cd
|
||||
# """
|
||||
|
||||
def fetch_count(self, bu_cd) -> MasterMenteCountModel:
|
||||
try:
|
||||
query = self.FETCH_COUNT_SQL
|
||||
result = self._database.execute_select(query, {'bu_cd': bu_cd})
|
||||
models = [MasterMenteCountModel(**r) for r in result]
|
||||
if len(models) == 0:
|
||||
return 0
|
||||
return models[0].count
|
||||
except Exception as e:
|
||||
logger.exception(f"DB Error : Exception={e.args}")
|
||||
raise e
|
||||
# def fetch_count(self, bu_cd) -> MasterMenteCountModel:
|
||||
# try:
|
||||
# query = self.FETCH_COUNT_SQL
|
||||
# result = self._database.execute_select(query, {'bu_cd': bu_cd})
|
||||
# models = [MasterMenteCountModel(**r) for r in result]
|
||||
# if len(models) == 0:
|
||||
# return 0
|
||||
# return models[0].count
|
||||
# except Exception as e:
|
||||
# logger.exception(f"DB Error : Exception={e.args}")
|
||||
# raise e
|
||||
|
||||
@ -1,289 +1,290 @@
|
||||
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.master_mente_count import MasterMenteCountModel
|
||||
from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
|
||||
from src.repositories.base_repository import BaseRepository
|
||||
from src.util.string_util import is_not_empty
|
||||
# ファイル削除予定
|
||||
# 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.master_mente_count import MasterMenteCountModel
|
||||
# from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
|
||||
# from src.repositories.base_repository import BaseRepository
|
||||
# from src.util.string_util import is_not_empty
|
||||
|
||||
logger = get_logger('従業員担当施設マスタ')
|
||||
# logger = get_logger('従業員担当施設マスタ')
|
||||
|
||||
|
||||
class EmpChgInstRepository(BaseRepository):
|
||||
# class EmpChgInstRepository(BaseRepository):
|
||||
|
||||
def to_jst(self):
|
||||
self._database.to_jst()
|
||||
# def to_jst(self):
|
||||
# self._database.to_jst()
|
||||
|
||||
def begin(self):
|
||||
self._database.begin()
|
||||
# def begin(self):
|
||||
# self._database.begin()
|
||||
|
||||
def commit(self):
|
||||
self._database.commit()
|
||||
# def commit(self):
|
||||
# self._database.commit()
|
||||
|
||||
def rollback(self):
|
||||
self._database.rollback()
|
||||
# def rollback(self):
|
||||
# self._database.rollback()
|
||||
|
||||
INSERT_SQL = """\
|
||||
INSERT INTO {table_name}
|
||||
(
|
||||
inst_cd,
|
||||
ta_cd,
|
||||
emp_chg_type_cd,
|
||||
emp_cd,
|
||||
bu_cd,
|
||||
start_date,
|
||||
end_date,
|
||||
main_chg_flg,
|
||||
enabled_flg,
|
||||
creater,
|
||||
create_date,
|
||||
updater,
|
||||
update_date
|
||||
)
|
||||
VALUES (
|
||||
:inst_cd,
|
||||
:ta_cd,
|
||||
:emp_chg_type_cd,
|
||||
:emp_cd,
|
||||
:bu_cd,
|
||||
:start_date,
|
||||
:end_date,
|
||||
'1',
|
||||
'Y',
|
||||
:create_user_name,
|
||||
NOW(),
|
||||
:update_user_name,
|
||||
NOW()
|
||||
)
|
||||
"""
|
||||
# INSERT_SQL = """\
|
||||
# INSERT INTO {table_name}
|
||||
# (
|
||||
# inst_cd,
|
||||
# ta_cd,
|
||||
# emp_chg_type_cd,
|
||||
# emp_cd,
|
||||
# bu_cd,
|
||||
# start_date,
|
||||
# end_date,
|
||||
# main_chg_flg,
|
||||
# enabled_flg,
|
||||
# creater,
|
||||
# create_date,
|
||||
# updater,
|
||||
# update_date
|
||||
# )
|
||||
# VALUES (
|
||||
# :inst_cd,
|
||||
# :ta_cd,
|
||||
# :emp_chg_type_cd,
|
||||
# :emp_cd,
|
||||
# :bu_cd,
|
||||
# :start_date,
|
||||
# :end_date,
|
||||
# '1',
|
||||
# 'Y',
|
||||
# :create_user_name,
|
||||
# NOW(),
|
||||
# :update_user_name,
|
||||
# NOW()
|
||||
# )
|
||||
# """
|
||||
|
||||
def insert_emp_chg_inst(self, inst_cd, ta_cd, emp_chg_type_cd, emp_cd, bu_cd, start_date,
|
||||
end_date, create_user_name, table_name):
|
||||
try:
|
||||
query = self.INSERT_SQL.format(table_name=table_name)
|
||||
self._database.execute(query, {
|
||||
'inst_cd': inst_cd,
|
||||
'ta_cd': ta_cd,
|
||||
'emp_chg_type_cd': emp_chg_type_cd,
|
||||
'emp_cd': emp_cd,
|
||||
'bu_cd': bu_cd,
|
||||
'start_date': start_date,
|
||||
'end_date': end_date,
|
||||
'create_user_name': create_user_name,
|
||||
'update_user_name': create_user_name
|
||||
})
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def insert_emp_chg_inst(self, inst_cd, ta_cd, emp_chg_type_cd, emp_cd, bu_cd, start_date,
|
||||
# end_date, create_user_name, table_name):
|
||||
# try:
|
||||
# query = self.INSERT_SQL.format(table_name=table_name)
|
||||
# self._database.execute(query, {
|
||||
# 'inst_cd': inst_cd,
|
||||
# 'ta_cd': ta_cd,
|
||||
# 'emp_chg_type_cd': emp_chg_type_cd,
|
||||
# 'emp_cd': emp_cd,
|
||||
# 'bu_cd': bu_cd,
|
||||
# 'start_date': start_date,
|
||||
# 'end_date': end_date,
|
||||
# 'create_user_name': create_user_name,
|
||||
# 'update_user_name': create_user_name
|
||||
# })
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
UPDATE_END_DATE_SQL = """\
|
||||
UPDATE
|
||||
{table_name}
|
||||
SET
|
||||
end_date = :end_date,
|
||||
updater = :update_user_name,
|
||||
update_date = NOW()
|
||||
WHERE
|
||||
inst_cd = :inst_cd
|
||||
AND ta_cd = :ta_cd
|
||||
AND emp_chg_type_cd = :emp_chg_type_cd
|
||||
AND start_date = :start_date
|
||||
"""
|
||||
# UPDATE_END_DATE_SQL = """\
|
||||
# UPDATE
|
||||
# {table_name}
|
||||
# SET
|
||||
# end_date = :end_date,
|
||||
# updater = :update_user_name,
|
||||
# update_date = NOW()
|
||||
# WHERE
|
||||
# inst_cd = :inst_cd
|
||||
# AND ta_cd = :ta_cd
|
||||
# AND emp_chg_type_cd = :emp_chg_type_cd
|
||||
# AND start_date = :start_date
|
||||
# """
|
||||
|
||||
def end_emp_chg_inst(self, inst_cd, ta_cd, emp_chg_type_cd, start_date,
|
||||
end_date, update_user_name, table_name):
|
||||
try:
|
||||
query = self.UPDATE_END_DATE_SQL.format(table_name=table_name)
|
||||
self._database.execute(query, {
|
||||
'inst_cd': inst_cd,
|
||||
'ta_cd': ta_cd,
|
||||
'emp_chg_type_cd': emp_chg_type_cd,
|
||||
'start_date': start_date,
|
||||
'end_date': end_date,
|
||||
'update_user_name': update_user_name
|
||||
})
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def end_emp_chg_inst(self, inst_cd, ta_cd, emp_chg_type_cd, start_date,
|
||||
# end_date, update_user_name, table_name):
|
||||
# try:
|
||||
# query = self.UPDATE_END_DATE_SQL.format(table_name=table_name)
|
||||
# self._database.execute(query, {
|
||||
# 'inst_cd': inst_cd,
|
||||
# 'ta_cd': ta_cd,
|
||||
# 'emp_chg_type_cd': emp_chg_type_cd,
|
||||
# 'start_date': start_date,
|
||||
# 'end_date': end_date,
|
||||
# 'update_user_name': update_user_name
|
||||
# })
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
UPDATE_EMP_CD_SQL = """\
|
||||
UPDATE
|
||||
{table_name}
|
||||
SET
|
||||
emp_cd = :emp_cd,
|
||||
updater = :update_user_name,
|
||||
update_date = NOW()
|
||||
where
|
||||
inst_cd = :inst_cd
|
||||
AND ta_cd = :ta_cd
|
||||
AND emp_chg_type_cd = :emp_chg_type_cd
|
||||
AND start_date = :start_date
|
||||
"""
|
||||
# UPDATE_EMP_CD_SQL = """\
|
||||
# UPDATE
|
||||
# {table_name}
|
||||
# SET
|
||||
# emp_cd = :emp_cd,
|
||||
# updater = :update_user_name,
|
||||
# update_date = NOW()
|
||||
# where
|
||||
# inst_cd = :inst_cd
|
||||
# AND ta_cd = :ta_cd
|
||||
# AND emp_chg_type_cd = :emp_chg_type_cd
|
||||
# AND start_date = :start_date
|
||||
# """
|
||||
|
||||
def modify_emp_chg_inst(self, inst_cd, ta_cd, start_date, emp_chg_type_cd, emp_cd, update_user_name, table_name):
|
||||
try:
|
||||
query = self.UPDATE_EMP_CD_SQL.format(table_name=table_name)
|
||||
self._database.execute(query, {
|
||||
'inst_cd': inst_cd,
|
||||
'ta_cd': ta_cd,
|
||||
'emp_chg_type_cd': emp_chg_type_cd,
|
||||
'start_date': start_date,
|
||||
'emp_cd': emp_cd,
|
||||
'update_user_name': update_user_name
|
||||
})
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def modify_emp_chg_inst(self, inst_cd, ta_cd, start_date, emp_chg_type_cd, emp_cd, update_user_name, table_name):
|
||||
# try:
|
||||
# query = self.UPDATE_EMP_CD_SQL.format(table_name=table_name)
|
||||
# self._database.execute(query, {
|
||||
# 'inst_cd': inst_cd,
|
||||
# 'ta_cd': ta_cd,
|
||||
# 'emp_chg_type_cd': emp_chg_type_cd,
|
||||
# 'start_date': start_date,
|
||||
# 'emp_cd': emp_cd,
|
||||
# 'update_user_name': update_user_name
|
||||
# })
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
FETCH_COUNT_SQL = """\
|
||||
SELECT
|
||||
COUNT(*) AS count
|
||||
FROM
|
||||
{table_name}
|
||||
WHERE
|
||||
inst_cd = :inst_cd
|
||||
AND ta_cd = :ta_cd
|
||||
AND emp_chg_type_cd = :emp_chg_type_cd
|
||||
AND start_date = :start_date
|
||||
"""
|
||||
# FETCH_COUNT_SQL = """\
|
||||
# SELECT
|
||||
# COUNT(*) AS count
|
||||
# FROM
|
||||
# {table_name}
|
||||
# WHERE
|
||||
# inst_cd = :inst_cd
|
||||
# AND ta_cd = :ta_cd
|
||||
# AND emp_chg_type_cd = :emp_chg_type_cd
|
||||
# AND start_date = :start_date
|
||||
# """
|
||||
|
||||
def fetch_count(self, inst_cd, ta_cd, emp_chg_type_cd, start_date, table_name) -> MasterMenteCountModel:
|
||||
try:
|
||||
query = self.FETCH_COUNT_SQL.format(table_name=table_name)
|
||||
result = self._database.execute_select(query, {'inst_cd': inst_cd, 'ta_cd': ta_cd,
|
||||
'emp_chg_type_cd': emp_chg_type_cd, 'start_date': start_date})
|
||||
models = [MasterMenteCountModel(**r) for r in result]
|
||||
if len(models) == 0:
|
||||
return 0
|
||||
return models[0].count
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def fetch_count(self, inst_cd, ta_cd, emp_chg_type_cd, start_date, table_name) -> MasterMenteCountModel:
|
||||
# try:
|
||||
# query = self.FETCH_COUNT_SQL.format(table_name=table_name)
|
||||
# result = self._database.execute_select(query, {'inst_cd': inst_cd, 'ta_cd': ta_cd,
|
||||
# 'emp_chg_type_cd': emp_chg_type_cd, 'start_date': start_date})
|
||||
# models = [MasterMenteCountModel(**r) for r in result]
|
||||
# if len(models) == 0:
|
||||
# return 0
|
||||
# return models[0].count
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
FETCH_SQL = """\
|
||||
SELECT DISTINCT
|
||||
eci.inst_cd AS inst_cd,
|
||||
mi.inst_name AS inst_name,
|
||||
eci.ta_cd AS ta_cd,
|
||||
eci.emp_chg_type_cd AS emp_chg_type_cd,
|
||||
eci.emp_cd AS emp_cd,
|
||||
CONCAT(emp.emp_name_family, " ", emp.emp_name_first) AS emp_name_full,
|
||||
eci.bu_cd AS bu_cd,
|
||||
bu.bu_name AS bu_name,
|
||||
eci.start_date AS start_date,
|
||||
eci.end_date AS end_date,
|
||||
eci.creater AS creater,
|
||||
eci.create_date AS create_date,
|
||||
eci.updater AS updater,
|
||||
eci.update_date AS update_date
|
||||
FROM
|
||||
{table_name} AS eci
|
||||
LEFT JOIN mst_inst AS mi
|
||||
ON eci.inst_cd = mi.inst_cd
|
||||
LEFT JOIN emp
|
||||
ON eci.emp_cd = emp.emp_cd
|
||||
LEFT JOIN bu
|
||||
ON eci.bu_cd = bu.bu_cd
|
||||
WHERE
|
||||
{where_clause}
|
||||
"""
|
||||
# FETCH_SQL = """\
|
||||
# SELECT DISTINCT
|
||||
# eci.inst_cd AS inst_cd,
|
||||
# mi.inst_name AS inst_name,
|
||||
# eci.ta_cd AS ta_cd,
|
||||
# eci.emp_chg_type_cd AS emp_chg_type_cd,
|
||||
# eci.emp_cd AS emp_cd,
|
||||
# CONCAT(emp.emp_name_family, " ", emp.emp_name_first) AS emp_name_full,
|
||||
# eci.bu_cd AS bu_cd,
|
||||
# bu.bu_name AS bu_name,
|
||||
# eci.start_date AS start_date,
|
||||
# eci.end_date AS end_date,
|
||||
# eci.creater AS creater,
|
||||
# eci.create_date AS create_date,
|
||||
# eci.updater AS updater,
|
||||
# eci.update_date AS update_date
|
||||
# FROM
|
||||
# {table_name} AS eci
|
||||
# LEFT JOIN mst_inst AS mi
|
||||
# ON eci.inst_cd = mi.inst_cd
|
||||
# LEFT JOIN emp
|
||||
# ON eci.emp_cd = emp.emp_cd
|
||||
# LEFT JOIN bu
|
||||
# ON eci.bu_cd = bu.bu_cd
|
||||
# WHERE
|
||||
# {where_clause}
|
||||
# """
|
||||
|
||||
def fetch_as_data_frame(self, table_name: str, parameter: MasterMainteCsvDlModel):
|
||||
try:
|
||||
where_clause = self.__build_condition(parameter)
|
||||
query = self.FETCH_SQL.format(table_name=table_name, where_clause=where_clause)
|
||||
logger.debug(f'SQL: {query}')
|
||||
df = self._to_data_frame(query, parameter)
|
||||
logger.debug(f'count= {df.shape[0]}')
|
||||
return df
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def fetch_as_data_frame(self, table_name: str, parameter: MasterMainteCsvDlModel):
|
||||
# try:
|
||||
# where_clause = self.__build_condition(parameter)
|
||||
# query = self.FETCH_SQL.format(table_name=table_name, where_clause=where_clause)
|
||||
# logger.debug(f'SQL: {query}')
|
||||
# df = self._to_data_frame(query, parameter)
|
||||
# logger.debug(f'count= {df.shape[0]}')
|
||||
# return df
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
def __build_condition(self, parameter: MasterMainteCsvDlModel):
|
||||
where_clauses: list[SQLCondition] = []
|
||||
# def __build_condition(self, parameter: MasterMainteCsvDlModel):
|
||||
# where_clauses: list[SQLCondition] = []
|
||||
|
||||
# 検索条件が指定されずにSQLが壊れることを予防するため、常に真の固定条件を追加しておく
|
||||
where_clauses.append(SQLCondition('', '', '1 = 1', literal=True))
|
||||
# # 検索条件が指定されずにSQLが壊れることを予防するため、常に真の固定条件を追加しておく
|
||||
# where_clauses.append(SQLCondition('', '', '1 = 1', literal=True))
|
||||
|
||||
# 領域コードが入力されていた場合
|
||||
if is_not_empty(parameter.ta_cd):
|
||||
parameter.adapt_ta_cd = f'%{parameter.ta_cd}%'
|
||||
where_clauses.append(SQLCondition('eci.ta_cd', condition.LIKE, 'adapt_ta_cd'))
|
||||
# # 領域コードが入力されていた場合
|
||||
# if is_not_empty(parameter.ta_cd):
|
||||
# parameter.adapt_ta_cd = f'%{parameter.ta_cd}%'
|
||||
# where_clauses.append(SQLCondition('eci.ta_cd', condition.LIKE, 'adapt_ta_cd'))
|
||||
|
||||
# 施設コードが入力されていた場合
|
||||
if is_not_empty(parameter.inst_cd):
|
||||
parameter.adapt_inst_cd = f'%{parameter.inst_cd}%'
|
||||
where_clauses.append(SQLCondition('eci.inst_cd', condition.LIKE, 'adapt_inst_cd'))
|
||||
# # 施設コードが入力されていた場合
|
||||
# if is_not_empty(parameter.inst_cd):
|
||||
# parameter.adapt_inst_cd = f'%{parameter.inst_cd}%'
|
||||
# where_clauses.append(SQLCondition('eci.inst_cd', condition.LIKE, 'adapt_inst_cd'))
|
||||
|
||||
# MUIDが入力されていた場合
|
||||
if is_not_empty(parameter.emp_cd):
|
||||
parameter.adapt_emp_cd = f'%{parameter.emp_cd}%'
|
||||
where_clauses.append(SQLCondition('eci.emp_cd', condition.LIKE, 'adapt_emp_cd'))
|
||||
# # MUIDが入力されていた場合
|
||||
# if is_not_empty(parameter.emp_cd):
|
||||
# parameter.adapt_emp_cd = f'%{parameter.emp_cd}%'
|
||||
# where_clauses.append(SQLCondition('eci.emp_cd', condition.LIKE, 'adapt_emp_cd'))
|
||||
|
||||
# 担当者種別コードが入力されていた場合
|
||||
if is_not_empty(parameter.emp_chg_type_cd):
|
||||
parameter.adapt_emp_chg_type_cd = f'%{parameter.emp_chg_type_cd}%'
|
||||
where_clauses.append(SQLCondition('eci.emp_chg_type_cd', condition.LIKE, 'adapt_emp_chg_type_cd'))
|
||||
# # 担当者種別コードが入力されていた場合
|
||||
# if is_not_empty(parameter.emp_chg_type_cd):
|
||||
# parameter.adapt_emp_chg_type_cd = f'%{parameter.emp_chg_type_cd}%'
|
||||
# where_clauses.append(SQLCondition('eci.emp_chg_type_cd', condition.LIKE, 'adapt_emp_chg_type_cd'))
|
||||
|
||||
# 適用期間内が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_apply_date_from):
|
||||
where_clauses.append(SQLCondition('eci.start_date', condition.LE, 'adapt_apply_date_from'))
|
||||
where_clauses.append(SQLCondition('eci.end_date', condition.GE, 'adapt_apply_date_from'))
|
||||
# # 適用期間内が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_apply_date_from):
|
||||
# where_clauses.append(SQLCondition('eci.start_date', condition.LE, 'adapt_apply_date_from'))
|
||||
# where_clauses.append(SQLCondition('eci.end_date', condition.GE, 'adapt_apply_date_from'))
|
||||
|
||||
# 適用開始日(FROM)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_start_date_from):
|
||||
where_clauses.append(SQLCondition('eci.start_date', condition.GE, 'adapt_start_date_from'))
|
||||
# # 適用開始日(FROM)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_start_date_from):
|
||||
# where_clauses.append(SQLCondition('eci.start_date', condition.GE, 'adapt_start_date_from'))
|
||||
|
||||
# 適用開始日(TO)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_start_date_to):
|
||||
where_clauses.append(SQLCondition('eci.start_date', condition.LE, 'adapt_start_date_to'))
|
||||
# # 適用開始日(TO)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_start_date_to):
|
||||
# where_clauses.append(SQLCondition('eci.start_date', condition.LE, 'adapt_start_date_to'))
|
||||
|
||||
# 適用終了日(FROM)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_end_date_from):
|
||||
where_clauses.append(SQLCondition('eci.end_date', condition.GE, 'adapt_end_date_from'))
|
||||
# # 適用終了日(FROM)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_end_date_from):
|
||||
# where_clauses.append(SQLCondition('eci.end_date', condition.GE, 'adapt_end_date_from'))
|
||||
|
||||
# 適用終了日(TO)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_end_date_to):
|
||||
where_clauses.append(SQLCondition('eci.end_date', condition.LE, 'adapt_end_date_to'))
|
||||
# # 適用終了日(TO)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_end_date_to):
|
||||
# where_clauses.append(SQLCondition('eci.end_date', condition.LE, 'adapt_end_date_to'))
|
||||
|
||||
# データ作成日(FROM)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_create_date_from):
|
||||
where_clauses.append(SQLCondition('eci.create_date', condition.GE, 'adapt_create_date_from'))
|
||||
# # データ作成日(FROM)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_create_date_from):
|
||||
# where_clauses.append(SQLCondition('eci.create_date', condition.GE, 'adapt_create_date_from'))
|
||||
|
||||
# データ作成日(TO)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_create_date_to):
|
||||
where_clauses.append(SQLCondition('eci.create_date', condition.LE, 'adapt_create_date_to'))
|
||||
# # データ作成日(TO)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_create_date_to):
|
||||
# where_clauses.append(SQLCondition('eci.create_date', condition.LE, 'adapt_create_date_to'))
|
||||
|
||||
# データ更新日(FROM)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_update_date_from):
|
||||
where_clauses.append(SQLCondition('eci.update_date', condition.GE, 'adapt_update_date_from'))
|
||||
# # データ更新日(FROM)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_update_date_from):
|
||||
# where_clauses.append(SQLCondition('eci.update_date', condition.GE, 'adapt_update_date_from'))
|
||||
|
||||
# データ更新日(TO)が入力されていた場合
|
||||
if is_not_empty(parameter.adapt_update_date_to):
|
||||
where_clauses.append(SQLCondition('eci.update_date', condition.LE, 'adapt_update_date_to'))
|
||||
# # データ更新日(TO)が入力されていた場合
|
||||
# if is_not_empty(parameter.adapt_update_date_to):
|
||||
# where_clauses.append(SQLCondition('eci.update_date', condition.LE, 'adapt_update_date_to'))
|
||||
|
||||
where_clauses_str = ' AND '.join([condition.apply() for condition in where_clauses])
|
||||
# where_clauses_str = ' AND '.join([condition.apply() for condition in where_clauses])
|
||||
|
||||
logger.debug(f'条件設定終了:{where_clauses_str}')
|
||||
return where_clauses_str
|
||||
# logger.debug(f'条件設定終了:{where_clauses_str}')
|
||||
# return where_clauses_str
|
||||
|
||||
DELETE_SQL = "DELETE FROM emp_chg_inst_wrk"
|
||||
# DELETE_SQL = "DELETE FROM emp_chg_inst_wrk"
|
||||
|
||||
def delete_dummy_table(self):
|
||||
try:
|
||||
query = self.DELETE_SQL
|
||||
self._database.execute(query)
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def delete_dummy_table(self):
|
||||
# try:
|
||||
# query = self.DELETE_SQL
|
||||
# self._database.execute(query)
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
COPY_TABLE_SQL = "INSERT INTO emp_chg_inst_wrk SELECT * FROM emp_chg_inst"
|
||||
# COPY_TABLE_SQL = "INSERT INTO emp_chg_inst_wrk SELECT * FROM emp_chg_inst"
|
||||
|
||||
def copy_real_to_dummy(self):
|
||||
try:
|
||||
query = self.COPY_TABLE_SQL
|
||||
self._database.execute(query)
|
||||
except Exception as e:
|
||||
logger.exception(f'DB Error : Exception={e.args}')
|
||||
raise e
|
||||
# def copy_real_to_dummy(self):
|
||||
# try:
|
||||
# query = self.COPY_TABLE_SQL
|
||||
# self._database.execute(query)
|
||||
# except Exception as e:
|
||||
# logger.exception(f'DB Error : Exception={e.args}')
|
||||
# raise e
|
||||
|
||||
@ -1,31 +1,32 @@
|
||||
from src.repositories.base_repository import BaseRepository
|
||||
from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
from src.logging.get_logger import get_logger
|
||||
# ファイル削除予定
|
||||
# from src.repositories.base_repository import BaseRepository
|
||||
# from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
# from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('従業員マスタ')
|
||||
# logger = get_logger('従業員マスタ')
|
||||
|
||||
|
||||
class EmpMasterRepository(BaseRepository):
|
||||
# class EmpMasterRepository(BaseRepository):
|
||||
|
||||
FETCH_COUNT_SQL = """\
|
||||
SELECT
|
||||
COUNT(*) AS count
|
||||
FROM
|
||||
src05.emp
|
||||
WHERE
|
||||
emp.emp_cd = :emp_cd
|
||||
AND str_to_date(emp.start_date, '%Y%m%d') <= str_to_date(:start_work_date, '%Y%m%d')
|
||||
AND str_to_date(:start_work_date, '%Y%m%d') <= str_to_date(emp.end_date ,'%Y%m%d')
|
||||
"""
|
||||
# FETCH_COUNT_SQL = """\
|
||||
# SELECT
|
||||
# COUNT(*) AS count
|
||||
# FROM
|
||||
# src05.emp
|
||||
# WHERE
|
||||
# emp.emp_cd = :emp_cd
|
||||
# AND str_to_date(emp.start_date, '%Y%m%d') <= str_to_date(:start_work_date, '%Y%m%d')
|
||||
# AND str_to_date(:start_work_date, '%Y%m%d') <= str_to_date(emp.end_date ,'%Y%m%d')
|
||||
# """
|
||||
|
||||
def fetch_count(self, emp_cd, start_work_date) -> MasterMenteCountModel:
|
||||
try:
|
||||
query = self.FETCH_COUNT_SQL
|
||||
result = self._database.execute_select(query, {'emp_cd': emp_cd, 'start_work_date': start_work_date})
|
||||
models = [MasterMenteCountModel(**r) for r in result]
|
||||
if len(models) == 0:
|
||||
return 0
|
||||
return models[0].count
|
||||
except Exception as e:
|
||||
logger.exception(f"DB Error : Exception={e.args}")
|
||||
raise e
|
||||
# def fetch_count(self, emp_cd, start_work_date) -> MasterMenteCountModel:
|
||||
# try:
|
||||
# query = self.FETCH_COUNT_SQL
|
||||
# result = self._database.execute_select(query, {'emp_cd': emp_cd, 'start_work_date': start_work_date})
|
||||
# models = [MasterMenteCountModel(**r) for r in result]
|
||||
# if len(models) == 0:
|
||||
# return 0
|
||||
# return models[0].count
|
||||
# except Exception as e:
|
||||
# logger.exception(f"DB Error : Exception={e.args}")
|
||||
# raise e
|
||||
|
||||
@ -1,33 +1,34 @@
|
||||
from src.repositories.base_repository import BaseRepository
|
||||
from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
from src.logging.get_logger import get_logger
|
||||
# ファイル削除予定
|
||||
# from src.repositories.base_repository import BaseRepository
|
||||
# from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
# from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('汎用区分マスタ')
|
||||
# logger = get_logger('汎用区分マスタ')
|
||||
|
||||
class GenericKbnMstRepository(BaseRepository):
|
||||
# class GenericKbnMstRepository(BaseRepository):
|
||||
|
||||
FETCH_SQL = """\
|
||||
SELECT
|
||||
COUNT(*) AS count
|
||||
FROM
|
||||
src05.generic_kbn_mst
|
||||
WHERE
|
||||
generic_kbn_mst.generic_kbn_cd = :generic_kbn_cd
|
||||
AND
|
||||
generic_kbn_mst.kbn_cd = :kbn_cd
|
||||
AND
|
||||
STR_TO_DATE( :start_date , '%Y%m%d') BETWEEN generic_kbn_mst.start_date AND generic_kbn_mst.end_date\
|
||||
"""
|
||||
# FETCH_SQL = """\
|
||||
# SELECT
|
||||
# COUNT(*) AS count
|
||||
# FROM
|
||||
# src05.generic_kbn_mst
|
||||
# WHERE
|
||||
# generic_kbn_mst.generic_kbn_cd = :generic_kbn_cd
|
||||
# AND
|
||||
# generic_kbn_mst.kbn_cd = :kbn_cd
|
||||
# AND
|
||||
# STR_TO_DATE( :start_date , '%Y%m%d') BETWEEN generic_kbn_mst.start_date AND generic_kbn_mst.end_date\
|
||||
# """
|
||||
|
||||
|
||||
def fetch_count(self, generic_kbn_cd: str, kbn_cd: str, start_date: str) -> MasterMenteCountModel:
|
||||
try:
|
||||
query = self.FETCH_SQL
|
||||
result = self._database.execute_select(query, {'generic_kbn_cd': generic_kbn_cd, 'kbn_cd': kbn_cd, 'start_date' : start_date})
|
||||
models = [MasterMenteCountModel(**r) for r in result]
|
||||
if len(models) == 0:
|
||||
return 0
|
||||
return models[0].count
|
||||
except Exception as e:
|
||||
logger.error(f"DB Error : Exception={e.args}")
|
||||
raise e
|
||||
# def fetch_count(self, generic_kbn_cd: str, kbn_cd: str, start_date: str) -> MasterMenteCountModel:
|
||||
# try:
|
||||
# query = self.FETCH_SQL
|
||||
# result = self._database.execute_select(query, {'generic_kbn_cd': generic_kbn_cd, 'kbn_cd': kbn_cd, 'start_date' : start_date})
|
||||
# models = [MasterMenteCountModel(**r) for r in result]
|
||||
# if len(models) == 0:
|
||||
# return 0
|
||||
# return models[0].count
|
||||
# except Exception as e:
|
||||
# logger.error(f"DB Error : Exception={e.args}")
|
||||
# raise e
|
||||
@ -1,29 +1,30 @@
|
||||
from src.repositories.base_repository import BaseRepository
|
||||
from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
from src.logging.get_logger import get_logger
|
||||
# ファイル削除予定
|
||||
# from src.repositories.base_repository import BaseRepository
|
||||
# from src.model.db.master_mente_count import MasterMenteCountModel
|
||||
# from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('メルク施設マスタ')
|
||||
# logger = get_logger('メルク施設マスタ')
|
||||
|
||||
|
||||
class MstInstRepository(BaseRepository):
|
||||
# class MstInstRepository(BaseRepository):
|
||||
|
||||
FETCH_COUNT_SQL = """\
|
||||
SELECT
|
||||
COUNT(*) AS count
|
||||
FROM
|
||||
src05.mst_inst
|
||||
WHERE
|
||||
mst_inst.inst_cd = :inst_cd
|
||||
"""
|
||||
# FETCH_COUNT_SQL = """\
|
||||
# SELECT
|
||||
# COUNT(*) AS count
|
||||
# FROM
|
||||
# src05.mst_inst
|
||||
# WHERE
|
||||
# mst_inst.inst_cd = :inst_cd
|
||||
# """
|
||||
|
||||
def fetch_count(self, inst_cd) -> MasterMenteCountModel:
|
||||
try:
|
||||
query = self.FETCH_COUNT_SQL
|
||||
result = self._database.execute_select(query, {'inst_cd': inst_cd})
|
||||
models = [MasterMenteCountModel(**r) for r in result]
|
||||
if len(models) == 0:
|
||||
return 0
|
||||
return models[0].count
|
||||
except Exception as e:
|
||||
logger.exception(f"DB Error : Exception={e.args}")
|
||||
raise e
|
||||
# def fetch_count(self, inst_cd) -> MasterMenteCountModel:
|
||||
# try:
|
||||
# query = self.FETCH_COUNT_SQL
|
||||
# result = self._database.execute_select(query, {'inst_cd': inst_cd})
|
||||
# models = [MasterMenteCountModel(**r) for r in result]
|
||||
# if len(models) == 0:
|
||||
# return 0
|
||||
# return models[0].count
|
||||
# except Exception as e:
|
||||
# logger.exception(f"DB Error : Exception={e.args}")
|
||||
# raise e
|
||||
|
||||
@ -40,12 +40,13 @@ class BatchStatusService(BaseService):
|
||||
self.__assert_record_exists()
|
||||
return self.hdke_table_record.bch_actf == constants.BATCH_STATUS_PROCESSING
|
||||
|
||||
def is_dump_processing(self):
|
||||
"""dump処理処理中かどうかを判定する"""
|
||||
# 削除予定
|
||||
# def is_dump_processing(self):
|
||||
# """dump処理処理中かどうかを判定する"""
|
||||
|
||||
# 日付マスタのレコードがあることを確認
|
||||
self.__assert_record_exists()
|
||||
return self.hdke_table_record.dump_sts_kbn != constants.DUMP_STATUS_UNPROCESSED
|
||||
# # 日付マスタのレコードがあることを確認
|
||||
# self.__assert_record_exists()
|
||||
# return self.hdke_table_record.dump_sts_kbn != constants.DUMP_STATUS_UNPROCESSED
|
||||
|
||||
def __assert_record_exists(self):
|
||||
"""日付テーブルが有ることを保証する"""
|
||||
|
||||
@ -1,265 +1,266 @@
|
||||
import os
|
||||
import json
|
||||
import html
|
||||
import csv
|
||||
# # ファイル削除予定
|
||||
# import os
|
||||
# import json
|
||||
# import html
|
||||
# import csv
|
||||
|
||||
import pandas as pd
|
||||
# import pandas as pd
|
||||
|
||||
from fastapi import HTTPException
|
||||
from io import TextIOWrapper
|
||||
from src.aws.aws_api_client import AWSAPIClient
|
||||
from src.aws.s3 import S3Client
|
||||
from src.error.exceptions import DBException
|
||||
from starlette import status
|
||||
from datetime import datetime
|
||||
from src.services.base_service import BaseService
|
||||
from src.system_var import constants, environment
|
||||
from src.repositories.base_repository import BaseRepository
|
||||
from src.repositories.mst_inst_repository import MstInstRepository
|
||||
from src.repositories.bu_master_cd_repository import BuMasterRepository
|
||||
from src.repositories.emp_master_repository import EmpMasterRepository
|
||||
from src.repositories.emp_chg_inst_repository import EmpChgInstRepository
|
||||
from src.repositories.generic_kbn_mst_repository import GenericKbnMstRepository
|
||||
from src.model.internal.master_mainte_csv import MasterMainteCSVItems
|
||||
from src.model.internal.master_mainte_emp_chg_inst_function import NewEmpChgInstFunction
|
||||
from src.model.internal.master_mainte_emp_chg_inst_function import ChangeEmpChgInstFunction
|
||||
from src.model.view.inst_emp_csv_upload_view_model import InstEmpCsvUploadViewModel
|
||||
from src.model.view.table_override_view_model import TableOverrideViewModel
|
||||
from src.model.request.master_mainte_csvup import MasterMainteCsvUpModel
|
||||
from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
|
||||
from src.logging.get_logger import get_logger
|
||||
# from fastapi import HTTPException
|
||||
# from io import TextIOWrapper
|
||||
# from src.aws.aws_api_client import AWSAPIClient
|
||||
# from src.aws.s3 import S3Client
|
||||
# from src.error.exceptions import DBException
|
||||
# from starlette import status
|
||||
# from datetime import datetime
|
||||
# from src.services.base_service import BaseService
|
||||
# from src.system_var import constants, environment
|
||||
# from src.repositories.base_repository import BaseRepository
|
||||
# from src.repositories.mst_inst_repository import MstInstRepository
|
||||
# from src.repositories.bu_master_cd_repository import BuMasterRepository
|
||||
# from src.repositories.emp_master_repository import EmpMasterRepository
|
||||
# from src.repositories.emp_chg_inst_repository import EmpChgInstRepository
|
||||
# from src.repositories.generic_kbn_mst_repository import GenericKbnMstRepository
|
||||
# from src.model.internal.master_mainte_csv import MasterMainteCSVItems
|
||||
# from src.model.internal.master_mainte_emp_chg_inst_function import NewEmpChgInstFunction
|
||||
# from src.model.internal.master_mainte_emp_chg_inst_function import ChangeEmpChgInstFunction
|
||||
# from src.model.view.inst_emp_csv_upload_view_model import InstEmpCsvUploadViewModel
|
||||
# from src.model.view.table_override_view_model import TableOverrideViewModel
|
||||
# from src.model.request.master_mainte_csvup import MasterMainteCsvUpModel
|
||||
# from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
|
||||
# from src.logging.get_logger import get_logger
|
||||
|
||||
|
||||
logger = get_logger('マスターメンテ')
|
||||
# logger = get_logger('マスターメンテ')
|
||||
|
||||
|
||||
class MasterMainteService(BaseService):
|
||||
REPOSITORIES = {
|
||||
'mst_inst_repository': MstInstRepository,
|
||||
'emp_master_repository': EmpMasterRepository,
|
||||
'bu_master_repository': BuMasterRepository,
|
||||
'emp_chginst_repository': EmpChgInstRepository,
|
||||
'generic_kbn_mst_repository': GenericKbnMstRepository,
|
||||
}
|
||||
# class MasterMainteService(BaseService):
|
||||
# REPOSITORIES = {
|
||||
# 'mst_inst_repository': MstInstRepository,
|
||||
# 'emp_master_repository': EmpMasterRepository,
|
||||
# 'bu_master_repository': BuMasterRepository,
|
||||
# 'emp_chginst_repository': EmpChgInstRepository,
|
||||
# 'generic_kbn_mst_repository': GenericKbnMstRepository,
|
||||
# }
|
||||
|
||||
CLIENTS = {
|
||||
's3_client': S3Client
|
||||
}
|
||||
# CLIENTS = {
|
||||
# 's3_client': S3Client
|
||||
# }
|
||||
|
||||
mst_inst_repository: MstInstRepository
|
||||
emp_master_repository: EmpMasterRepository
|
||||
bu_master_repository: BuMasterRepository
|
||||
emp_chginst_repository: EmpChgInstRepository
|
||||
generic_kbn_mst_repository: GenericKbnMstRepository
|
||||
s3_client: S3Client
|
||||
# mst_inst_repository: MstInstRepository
|
||||
# emp_master_repository: EmpMasterRepository
|
||||
# bu_master_repository: BuMasterRepository
|
||||
# emp_chginst_repository: EmpChgInstRepository
|
||||
# generic_kbn_mst_repository: GenericKbnMstRepository
|
||||
# s3_client: S3Client
|
||||
|
||||
def __init__(self, repositories: dict[str, BaseRepository], clients: dict[str, AWSAPIClient]) -> None:
|
||||
super().__init__(repositories, clients)
|
||||
self.mst_inst_repository = repositories['mst_inst_repository']
|
||||
self.emp_master_repository = repositories['emp_master_repository']
|
||||
self.bu_master_repository = repositories['bu_master_repository']
|
||||
self.emp_chginst_repository = repositories['emp_chginst_repository']
|
||||
self.generic_kbn_mst_repository = repositories['generic_kbn_mst_repository']
|
||||
self.s3_client = clients['s3_client']
|
||||
# def __init__(self, repositories: dict[str, BaseRepository], clients: dict[str, AWSAPIClient]) -> None:
|
||||
# super().__init__(repositories, clients)
|
||||
# self.mst_inst_repository = repositories['mst_inst_repository']
|
||||
# self.emp_master_repository = repositories['emp_master_repository']
|
||||
# self.bu_master_repository = repositories['bu_master_repository']
|
||||
# self.emp_chginst_repository = repositories['emp_chginst_repository']
|
||||
# self.generic_kbn_mst_repository = repositories['generic_kbn_mst_repository']
|
||||
# self.s3_client = clients['s3_client']
|
||||
|
||||
def prepare_mainte_csv_up_view(self,
|
||||
file: TextIOWrapper,
|
||||
csv_file_name: str,
|
||||
csv_upload_form: MasterMainteCsvUpModel) -> InstEmpCsvUploadViewModel:
|
||||
# def prepare_mainte_csv_up_view(self,
|
||||
# file: TextIOWrapper,
|
||||
# csv_file_name: str,
|
||||
# csv_upload_form: MasterMainteCsvUpModel) -> InstEmpCsvUploadViewModel:
|
||||
|
||||
if csv_upload_form.select_function != 'new' and csv_upload_form.select_function != 'change':
|
||||
raise Exception(f'機能の選択値が不正です: {csv_upload_form.select_function}')
|
||||
if csv_upload_form.select_table != 'dummy' and csv_upload_form.select_table != 'real':
|
||||
raise Exception(f'登録テーブルの選択値が不正です: {csv_upload_form.select_table}')
|
||||
# if csv_upload_form.select_function != 'new' and csv_upload_form.select_function != 'change':
|
||||
# raise Exception(f'機能の選択値が不正です: {csv_upload_form.select_function}')
|
||||
# if csv_upload_form.select_table != 'dummy' and csv_upload_form.select_table != 'real':
|
||||
# raise Exception(f'登録テーブルの選択値が不正です: {csv_upload_form.select_table}')
|
||||
|
||||
(table_name, selected_table_msg) = self.__choose_target_table(csv_upload_form.select_table)
|
||||
# (table_name, selected_table_msg) = self.__choose_target_table(csv_upload_form.select_table)
|
||||
|
||||
csv_items = MasterMainteCSVItems(
|
||||
file,
|
||||
csv_upload_form.select_function,
|
||||
table_name,
|
||||
self.mst_inst_repository,
|
||||
self.emp_master_repository,
|
||||
self.bu_master_repository,
|
||||
self.emp_chginst_repository,
|
||||
self.generic_kbn_mst_repository
|
||||
)
|
||||
# csv_items = MasterMainteCSVItems(
|
||||
# file,
|
||||
# csv_upload_form.select_function,
|
||||
# table_name,
|
||||
# self.mst_inst_repository,
|
||||
# self.emp_master_repository,
|
||||
# self.bu_master_repository,
|
||||
# self.emp_chginst_repository,
|
||||
# self.generic_kbn_mst_repository
|
||||
# )
|
||||
|
||||
error_message_list = []
|
||||
# CSVファイル0件(ヘッダ行のみ)チェック
|
||||
if len(csv_items.lines) == 0:
|
||||
error_message_list.append('選択されたCSVファイルの2行目以降に値が記入されておりません。')
|
||||
else:
|
||||
for row_item in csv_items:
|
||||
error_message_list.extend([data for data in row_item.validate()])
|
||||
# error_message_list = []
|
||||
# # CSVファイル0件(ヘッダ行のみ)チェック
|
||||
# if len(csv_items.lines) == 0:
|
||||
# error_message_list.append('選択されたCSVファイルの2行目以降に値が記入されておりません。')
|
||||
# else:
|
||||
# for row_item in csv_items:
|
||||
# error_message_list.extend([data for data in row_item.validate()])
|
||||
|
||||
csv_upload_list = []
|
||||
json_upload_data = ''
|
||||
if len(error_message_list) == 0:
|
||||
csv_upload_list: list[dict] = csv_items.to_dict()
|
||||
# json作成
|
||||
json_upload_data = csv_items.to_json()
|
||||
# csv_upload_list = []
|
||||
# json_upload_data = ''
|
||||
# if len(error_message_list) == 0:
|
||||
# csv_upload_list: list[dict] = csv_items.to_dict()
|
||||
# # json作成
|
||||
# json_upload_data = csv_items.to_json()
|
||||
|
||||
mainte_csv_up = InstEmpCsvUploadViewModel(
|
||||
is_verified=True,
|
||||
error_message_list=error_message_list,
|
||||
select_function=csv_upload_form.select_function,
|
||||
select_table=csv_upload_form.select_table,
|
||||
csv_upload_list=csv_upload_list,
|
||||
json_upload_data=json_upload_data,
|
||||
csv_file_name=csv_file_name,
|
||||
select_function_message=self.__make_dialog_confirm_message(
|
||||
csv_upload_form.select_function,
|
||||
selected_table_msg)
|
||||
)
|
||||
return mainte_csv_up
|
||||
# mainte_csv_up = InstEmpCsvUploadViewModel(
|
||||
# is_verified=True,
|
||||
# error_message_list=error_message_list,
|
||||
# select_function=csv_upload_form.select_function,
|
||||
# select_table=csv_upload_form.select_table,
|
||||
# csv_upload_list=csv_upload_list,
|
||||
# json_upload_data=json_upload_data,
|
||||
# csv_file_name=csv_file_name,
|
||||
# select_function_message=self.__make_dialog_confirm_message(
|
||||
# csv_upload_form.select_function,
|
||||
# selected_table_msg)
|
||||
# )
|
||||
# return mainte_csv_up
|
||||
|
||||
def prepare_mainte_new_inst_view(self,
|
||||
user_name: str,
|
||||
csv_upload_form: MasterMainteCsvUpModel) -> InstEmpCsvUploadViewModel:
|
||||
# def prepare_mainte_new_inst_view(self,
|
||||
# user_name: str,
|
||||
# csv_upload_form: MasterMainteCsvUpModel) -> InstEmpCsvUploadViewModel:
|
||||
|
||||
(table_name, selected_table_msg) = self.__choose_target_table(csv_upload_form.select_table)
|
||||
# (table_name, selected_table_msg) = self.__choose_target_table(csv_upload_form.select_table)
|
||||
|
||||
csv_data_list = json.loads(html.unescape(csv_upload_form.unescape().json_upload_data))
|
||||
# csv_data_list = json.loads(html.unescape(csv_upload_form.unescape().json_upload_data))
|
||||
|
||||
if csv_upload_form.select_function == 'new':
|
||||
emp_chg_inst = NewEmpChgInstFunction(
|
||||
csv_data_list,
|
||||
table_name,
|
||||
selected_table_msg,
|
||||
user_name,
|
||||
self.emp_chginst_repository)
|
||||
elif csv_upload_form.select_function == 'change':
|
||||
emp_chg_inst = ChangeEmpChgInstFunction(
|
||||
csv_data_list,
|
||||
table_name,
|
||||
selected_table_msg,
|
||||
user_name,
|
||||
self.emp_chginst_repository)
|
||||
else:
|
||||
raise Exception(f'機能の選択値が不正です: {csv_upload_form.select_function}')
|
||||
# if csv_upload_form.select_function == 'new':
|
||||
# emp_chg_inst = NewEmpChgInstFunction(
|
||||
# csv_data_list,
|
||||
# table_name,
|
||||
# selected_table_msg,
|
||||
# user_name,
|
||||
# self.emp_chginst_repository)
|
||||
# elif csv_upload_form.select_function == 'change':
|
||||
# emp_chg_inst = ChangeEmpChgInstFunction(
|
||||
# csv_data_list,
|
||||
# table_name,
|
||||
# selected_table_msg,
|
||||
# user_name,
|
||||
# self.emp_chginst_repository)
|
||||
# else:
|
||||
# raise Exception(f'機能の選択値が不正です: {csv_upload_form.select_function}')
|
||||
|
||||
(result_message_list, raw_error_list) = emp_chg_inst.save()
|
||||
# (result_message_list, raw_error_list) = emp_chg_inst.save()
|
||||
|
||||
error_message_list = []
|
||||
error_message_list.extend(raw_error_list)
|
||||
# error_message_list = []
|
||||
# error_message_list.extend(raw_error_list)
|
||||
|
||||
mainte_csv_up = InstEmpCsvUploadViewModel(
|
||||
is_insert=True,
|
||||
result_message_list=result_message_list,
|
||||
error_message_list=error_message_list
|
||||
)
|
||||
return mainte_csv_up
|
||||
# mainte_csv_up = InstEmpCsvUploadViewModel(
|
||||
# is_insert=True,
|
||||
# result_message_list=result_message_list,
|
||||
# error_message_list=error_message_list
|
||||
# )
|
||||
# return mainte_csv_up
|
||||
|
||||
def copy_data_real_to_dummy(self) -> TableOverrideViewModel:
|
||||
try:
|
||||
self.emp_chginst_repository.begin()
|
||||
self.emp_chginst_repository.to_jst()
|
||||
self.emp_chginst_repository.delete_dummy_table()
|
||||
self.emp_chginst_repository.copy_real_to_dummy()
|
||||
self.emp_chginst_repository.commit()
|
||||
except Exception as e:
|
||||
self.emp_chginst_repository.rollback()
|
||||
raise e
|
||||
# def copy_data_real_to_dummy(self) -> TableOverrideViewModel:
|
||||
# try:
|
||||
# self.emp_chginst_repository.begin()
|
||||
# self.emp_chginst_repository.to_jst()
|
||||
# self.emp_chginst_repository.delete_dummy_table()
|
||||
# self.emp_chginst_repository.copy_real_to_dummy()
|
||||
# self.emp_chginst_repository.commit()
|
||||
# except Exception as e:
|
||||
# self.emp_chginst_repository.rollback()
|
||||
# raise e
|
||||
|
||||
# コピー完了をマークして画面に返却
|
||||
table_override = TableOverrideViewModel(
|
||||
is_override=True
|
||||
)
|
||||
return table_override
|
||||
# # コピー完了をマークして画面に返却
|
||||
# table_override = TableOverrideViewModel(
|
||||
# is_override=True
|
||||
# )
|
||||
# return table_override
|
||||
|
||||
def search_emp_chg_inst_data(self, csv_download_form: MasterMainteCsvDlModel) -> pd.DataFrame:
|
||||
try:
|
||||
csv_download_form.unescape()
|
||||
# 施設担当者データを検索
|
||||
search_result_df = self.search_download_emp_chg_inst_data(csv_download_form)
|
||||
except DBException as e:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
detail={'error': 'db_error', 'message': e.args}
|
||||
)
|
||||
# def search_emp_chg_inst_data(self, csv_download_form: MasterMainteCsvDlModel) -> pd.DataFrame:
|
||||
# try:
|
||||
# csv_download_form.unescape()
|
||||
# # 施設担当者データを検索
|
||||
# search_result_df = self.search_download_emp_chg_inst_data(csv_download_form)
|
||||
# except DBException as e:
|
||||
# raise HTTPException(
|
||||
# status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
# detail={'error': 'db_error', 'message': e.args}
|
||||
# )
|
||||
|
||||
return search_result_df
|
||||
# return search_result_df
|
||||
|
||||
def search_download_emp_chg_inst_data(self, csv_download_form: MasterMainteCsvDlModel):
|
||||
(table_name, _) = self.__choose_target_table(csv_download_form.select_table)
|
||||
search_result_df = self.emp_chginst_repository.fetch_as_data_frame(table_name, csv_download_form)
|
||||
return search_result_df
|
||||
# def search_download_emp_chg_inst_data(self, csv_download_form: MasterMainteCsvDlModel):
|
||||
# (table_name, _) = self.__choose_target_table(csv_download_form.select_table)
|
||||
# search_result_df = self.emp_chginst_repository.fetch_as_data_frame(table_name, csv_download_form)
|
||||
# return search_result_df
|
||||
|
||||
def write_csv_file(self, data_frame: pd.DataFrame, header: list[str], download_file_name: str):
|
||||
# csvに書き込み
|
||||
output_file_path = os.path.join(constants.MENTE_CSV_TEMPORARY_FILE_DIR_PATH, download_file_name)
|
||||
# 横長のDataFrameとするため、ヘッダーの加工処理
|
||||
header_data = {}
|
||||
for df_column, header_column in zip(data_frame.columns, header):
|
||||
header_data[df_column] = header_column
|
||||
# def write_csv_file(self, data_frame: pd.DataFrame, header: list[str], download_file_name: str):
|
||||
# # csvに書き込み
|
||||
# output_file_path = os.path.join(constants.MENTE_CSV_TEMPORARY_FILE_DIR_PATH, download_file_name)
|
||||
# # 横長のDataFrameとするため、ヘッダーの加工処理
|
||||
# header_data = {}
|
||||
# for df_column, header_column in zip(data_frame.columns, header):
|
||||
# header_data[df_column] = header_column
|
||||
|
||||
header_df = pd.DataFrame([header_data], index=None)
|
||||
output_df = pd.concat([header_df, data_frame])
|
||||
# ヘッダー行としてではなく、1レコードとして出力する
|
||||
output_df.to_csv(output_file_path, encoding="utf-8_sig", quoting=csv.QUOTE_ALL, index=False, header=False)
|
||||
# header_df = pd.DataFrame([header_data], index=None)
|
||||
# output_df = pd.concat([header_df, data_frame])
|
||||
# # ヘッダー行としてではなく、1レコードとして出力する
|
||||
# output_df.to_csv(output_file_path, encoding="utf-8_sig", quoting=csv.QUOTE_ALL, index=False, header=False)
|
||||
|
||||
return output_file_path
|
||||
# return output_file_path
|
||||
|
||||
def upload_emp_chg_inst_data_file(self, df: pd.DataFrame, user_id: str, select_table: str) -> tuple[str, str]:
|
||||
if df.shape[0] == 0:
|
||||
return '該当データが存在しないためCSVファイルを出力しませんでした', ''
|
||||
# def upload_emp_chg_inst_data_file(self, df: pd.DataFrame, user_id: str, select_table: str) -> tuple[str, str]:
|
||||
# if df.shape[0] == 0:
|
||||
# return '該当データが存在しないためCSVファイルを出力しませんでした', ''
|
||||
|
||||
# ファイル名に使用するタイムスタンプを初期化しておく
|
||||
current_timestamp = datetime.now()
|
||||
download_file_name = f'Result_{user_id}_{current_timestamp:%Y%m%d%H%M%S%f}.csv'
|
||||
# # ファイル名に使用するタイムスタンプを初期化しておく
|
||||
# current_timestamp = datetime.now()
|
||||
# download_file_name = f'Result_{user_id}_{current_timestamp:%Y%m%d%H%M%S%f}.csv'
|
||||
|
||||
# ファイルを書き出し(CSV)
|
||||
local_file_path = self.__write_emp_chg_inst_data_to_file(df, download_file_name)
|
||||
# # ファイルを書き出し(CSV)
|
||||
# local_file_path = self.__write_emp_chg_inst_data_to_file(df, download_file_name)
|
||||
|
||||
# ローカルファイルからS3にアップロードし、ダウンロード用URLを取得する
|
||||
download_file_url = ''
|
||||
try:
|
||||
bucket_name = environment.MASTER_MAINTENANCE_BUCKET
|
||||
file_key = f'data/{os.path.basename(local_file_path)}'
|
||||
self.s3_client.upload_file(local_file_path, bucket_name, file_key)
|
||||
# アップロード後、ローカルからは削除する
|
||||
self.delete_local_file(local_file_path)
|
||||
download_file_url = self.generate_download_file_url(local_file_path)
|
||||
except Exception as e:
|
||||
logger.exception(f'S3 アクセスエラー{e}')
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
detail={'error': 'aws_error', 'message': e.args}
|
||||
)
|
||||
if select_table == 'dummy':
|
||||
result_msg = f'ダミーテーブルのデータ{df.shape[0]}件をCSVファイルに出力しました'
|
||||
else:
|
||||
result_msg = f'本番テーブルのデータ{df.shape[0]}件をCSVファイルに出力しました'
|
||||
# # ローカルファイルからS3にアップロードし、ダウンロード用URLを取得する
|
||||
# download_file_url = ''
|
||||
# try:
|
||||
# bucket_name = environment.MASTER_MAINTENANCE_BUCKET
|
||||
# file_key = f'data/{os.path.basename(local_file_path)}'
|
||||
# self.s3_client.upload_file(local_file_path, bucket_name, file_key)
|
||||
# # アップロード後、ローカルからは削除する
|
||||
# self.delete_local_file(local_file_path)
|
||||
# download_file_url = self.generate_download_file_url(local_file_path)
|
||||
# except Exception as e:
|
||||
# logger.exception(f'S3 アクセスエラー{e}')
|
||||
# raise HTTPException(
|
||||
# status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
# detail={'error': 'aws_error', 'message': e.args}
|
||||
# )
|
||||
# if select_table == 'dummy':
|
||||
# result_msg = f'ダミーテーブルのデータ{df.shape[0]}件をCSVファイルに出力しました'
|
||||
# else:
|
||||
# result_msg = f'本番テーブルのデータ{df.shape[0]}件をCSVファイルに出力しました'
|
||||
|
||||
return result_msg, download_file_url
|
||||
# return result_msg, download_file_url
|
||||
|
||||
def generate_download_file_url(self, local_file_path: str) -> str:
|
||||
bucket_name = environment.MASTER_MAINTENANCE_BUCKET
|
||||
file_key = f'data/{os.path.basename(local_file_path)}'
|
||||
return self.s3_client.generate_presigned_url(bucket_name, file_key, constants.MENTE_CSV_DOWNLOAD_FILE_NAME)
|
||||
# def generate_download_file_url(self, local_file_path: str) -> str:
|
||||
# bucket_name = environment.MASTER_MAINTENANCE_BUCKET
|
||||
# file_key = f'data/{os.path.basename(local_file_path)}'
|
||||
# return self.s3_client.generate_presigned_url(bucket_name, file_key, constants.MENTE_CSV_DOWNLOAD_FILE_NAME)
|
||||
|
||||
def __write_emp_chg_inst_data_to_file(self, df: pd.DataFrame, download_file_name: str) -> str:
|
||||
logger.info('CSVファイルを出力する')
|
||||
local_file_path = self.write_csv_file(
|
||||
df, header=constants.MENTE_CSV_DOWNLOAD_HEADER, download_file_name=download_file_name)
|
||||
# def __write_emp_chg_inst_data_to_file(self, df: pd.DataFrame, download_file_name: str) -> str:
|
||||
# logger.info('CSVファイルを出力する')
|
||||
# local_file_path = self.write_csv_file(
|
||||
# df, header=constants.MENTE_CSV_DOWNLOAD_HEADER, download_file_name=download_file_name)
|
||||
|
||||
return local_file_path
|
||||
# return local_file_path
|
||||
|
||||
def __choose_target_table(self, select_table: str):
|
||||
if select_table == 'dummy':
|
||||
table_name = 'src05.emp_chg_inst_wrk'
|
||||
selected_table_msg = constants.CSV_CHANGE_TABLE_NAME
|
||||
elif select_table == 'real':
|
||||
table_name = 'src05.emp_chg_inst'
|
||||
selected_table_msg = constants.CSV_REAL_TABLE_NAME
|
||||
else:
|
||||
raise Exception(f'登録テーブルの選択値が不正です: {select_table}')
|
||||
return (table_name, selected_table_msg)
|
||||
# def __choose_target_table(self, select_table: str):
|
||||
# if select_table == 'dummy':
|
||||
# table_name = 'src05.emp_chg_inst_wrk'
|
||||
# selected_table_msg = constants.CSV_CHANGE_TABLE_NAME
|
||||
# elif select_table == 'real':
|
||||
# table_name = 'src05.emp_chg_inst'
|
||||
# selected_table_msg = constants.CSV_REAL_TABLE_NAME
|
||||
# else:
|
||||
# raise Exception(f'登録テーブルの選択値が不正です: {select_table}')
|
||||
# return (table_name, selected_table_msg)
|
||||
|
||||
def __make_dialog_confirm_message(self, select_function: str, selected_table_msg: str) -> str:
|
||||
select_function_msg = '新規施設登録' if select_function == 'new' else '施設担当者変更'
|
||||
return f'{selected_table_msg}に{select_function_msg}を行いますか?'
|
||||
# def __make_dialog_confirm_message(self, select_function: str, selected_table_msg: str) -> str:
|
||||
# select_function_msg = '新規施設登録' if select_function == 'new' else '施設担当者変更'
|
||||
# return f'{selected_table_msg}に{select_function_msg}を行いますか?'
|
||||
|
||||
def delete_local_file(self, local_file_path: str):
|
||||
os.remove(local_file_path)
|
||||
# def delete_local_file(self, local_file_path: str):
|
||||
# os.remove(local_file_path)
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
/* ファイル削除予定 */
|
||||
/* Bootstrap 5.10以降、box-sizingのデフォルト値によってテーブルがずれるため、このページ限定的にリセット */
|
||||
/* @see https://bootstrap-guide.com/content/reboot#page-defaults */
|
||||
table {
|
||||
|
||||
@ -289,31 +289,32 @@ function checkNumberOnlyForm($this)
|
||||
$this.value=str;
|
||||
}
|
||||
|
||||
// TODO 削除予定
|
||||
// メニューへボタンの関数
|
||||
// 機能概要:マスターメンテメニュー画面に遷移する
|
||||
function backToMainteMenu(loadingElemId = '_loading'){
|
||||
sessionStorage.clear();
|
||||
// ローディング表示
|
||||
showLoading(loadingElemId);
|
||||
location.href = "/masterMainte/masterMainteMenu";
|
||||
}
|
||||
// function backToMainteMenu(loadingElemId = '_loading'){
|
||||
// sessionStorage.clear();
|
||||
// // ローディング表示
|
||||
// showLoading(loadingElemId);
|
||||
// location.href = "/masterMainte/masterMainteMenu";
|
||||
// }
|
||||
|
||||
// 確認ダイアログ
|
||||
function confirmDialog(strMesssage) {
|
||||
var result = confirm(strMesssage);
|
||||
return result;
|
||||
}
|
||||
// // 確認ダイアログ
|
||||
// function confirmDialog(strMesssage) {
|
||||
// var result = confirm(strMesssage);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
function formInsertBtDisabled(){
|
||||
var validFlg = false;
|
||||
if(document.getElementById("csvFile").value === ""){
|
||||
validFlg = true;
|
||||
}
|
||||
// TODO 削除予定 function formInsertBtDisabled(){
|
||||
// var validFlg = false;
|
||||
// if(document.getElementById("csvFile").value === ""){
|
||||
// validFlg = true;
|
||||
// }
|
||||
|
||||
if (validFlg == true) {
|
||||
document.getElementById("confirm").disabled = true;
|
||||
}
|
||||
else {
|
||||
document.getElementById("confirm").disabled = false;
|
||||
}
|
||||
}
|
||||
// if (validFlg == true) {
|
||||
// document.getElementById("confirm").disabled = true;
|
||||
// }
|
||||
// else {
|
||||
// document.getElementById("confirm").disabled = false;
|
||||
// }
|
||||
// }
|
||||
|
||||
@ -7,8 +7,9 @@ PERMISSION_DISABLED = 0
|
||||
|
||||
# 日付テーブル.バッチ処理ステータス:未処理
|
||||
BATCH_STATUS_PROCESSING = '1'
|
||||
# 削除予定
|
||||
# 日付テーブル.dump取得状態区分:未処理
|
||||
DUMP_STATUS_UNPROCESSED = '0'
|
||||
# DUMP_STATUS_UNPROCESSED = '0'
|
||||
|
||||
# 生物由来照会
|
||||
|
||||
@ -76,134 +77,136 @@ LOGOUT_REASON_MESSAGE_MAP = {
|
||||
LOGOUT_REASON_UNEXPECTED: '予期しないエラーが発生しました。<br>再度Loginするか、<br>管理者に問い合わせてください。',
|
||||
LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED: 'ログイン失敗回数の上限を超えましたので<br>アカウントをロックしました。<br>管理者に連絡してください'
|
||||
}
|
||||
|
||||
#削除予定
|
||||
# 新規施設担当者登録CSV(マスターメンテ)
|
||||
NEW_INST_EMP_CSV_LOGICAL_NAMES = [
|
||||
'施設コード',
|
||||
'施設名',
|
||||
'領域コード',
|
||||
'担当者種別コード',
|
||||
'MUID',
|
||||
'担当者名(姓)',
|
||||
'担当者名(名)',
|
||||
'ビジネスユニットコード',
|
||||
'適用開始日',
|
||||
'適用終了日'
|
||||
]
|
||||
# NEW_INST_EMP_CSV_LOGICAL_NAMES = [
|
||||
# '施設コード',
|
||||
# '施設名',
|
||||
# '領域コード',
|
||||
# '担当者種別コード',
|
||||
# 'MUID',
|
||||
# '担当者名(姓)',
|
||||
# '担当者名(名)',
|
||||
# 'ビジネスユニットコード',
|
||||
# '適用開始日',
|
||||
# '適用終了日'
|
||||
# ]
|
||||
# 施設コードの列No
|
||||
CSV_NEW_INST_CD_COL_NO = 0
|
||||
# CSV_NEW_INST_CD_COL_NO = 0
|
||||
# 施設名の列No
|
||||
CSV_NEW_INST_NAME_COL_NO = 1
|
||||
# CSV_NEW_INST_NAME_COL_NO = 1
|
||||
# 領域コードの列No
|
||||
CSV_NEW_TA_CD_COL_NO = 2
|
||||
# CSV_NEW_TA_CD_COL_NO = 2
|
||||
# 担当者種別コードの列No
|
||||
CSV_NEW_EMP_CHG_TYPE_CD_COL_NO = 3
|
||||
# CSV_NEW_EMP_CHG_TYPE_CD_COL_NO = 3
|
||||
# MUIDの列No
|
||||
CSV_NEW_EMP_CD_COL_NO = 4
|
||||
# CSV_NEW_EMP_CD_COL_NO = 4
|
||||
# 担当者名(姓)の列No
|
||||
CSV_NEW_EMP_NAME_FAMILY_COL_NO = 5
|
||||
# CSV_NEW_EMP_NAME_FAMILY_COL_NO = 5
|
||||
# 担当者名(名)の列No
|
||||
CSV_NEW_EMP_NAME_FIRST_COL_NO = 6
|
||||
# CSV_NEW_EMP_NAME_FIRST_COL_NO = 6
|
||||
# ビジネスユニットコードの列No
|
||||
CSV_NEW_BU_CD_COL_NO = 7
|
||||
# CSV_NEW_BU_CD_COL_NO = 7
|
||||
# 適用開始日の列No
|
||||
CSV_NEW_START_DATE = 8
|
||||
# CSV_NEW_START_DATE = 8
|
||||
# 適用終了日の列No
|
||||
CSV_NEW_END_DATE = 9
|
||||
# CSV_NEW_END_DATE = 9
|
||||
|
||||
#削除予定
|
||||
# 施設担当者変更登録CSV(マスターメンテ)
|
||||
CHANGE_INST_CSV_LOGICAL_NAMES = [
|
||||
'ビジネスユニットコード',
|
||||
'ビジネスユニット名',
|
||||
'組織コード',
|
||||
'組織名略称',
|
||||
'施設コード',
|
||||
'施設名',
|
||||
'領域コード',
|
||||
'説明',
|
||||
'担当者種別コード',
|
||||
'MUID',
|
||||
'担当者名',
|
||||
'施設担当_開始日',
|
||||
'施設担当_終了日',
|
||||
'終了日の変更',
|
||||
'コメント'
|
||||
]
|
||||
# CHANGE_INST_CSV_LOGICAL_NAMES = [
|
||||
# 'ビジネスユニットコード',
|
||||
# 'ビジネスユニット名',
|
||||
# '組織コード',
|
||||
# '組織名略称',
|
||||
# '施設コード',
|
||||
# '施設名',
|
||||
# '領域コード',
|
||||
# '説明',
|
||||
# '担当者種別コード',
|
||||
# 'MUID',
|
||||
# '担当者名',
|
||||
# '施設担当_開始日',
|
||||
# '施設担当_終了日',
|
||||
# '終了日の変更',
|
||||
# 'コメント'
|
||||
# ]
|
||||
# ビジネスユニットコードの列No
|
||||
CSV_CHANGE_BU_CD_COL_NO = 0
|
||||
# ビジネスユニット名の列No
|
||||
CSV_CHANGE_BU_NAME_COL_NO = 1
|
||||
# 組織コードの列No
|
||||
CSV_CHANGE_ORG_CD_COL_NO = 2
|
||||
# 組織名略称の列No
|
||||
CSV_CHANGE_ORG_SHORT_NAME_COL_NO = 3
|
||||
# 施設コードの列No
|
||||
CSV_CHANGE_INST_CD_COL_NO = 4
|
||||
# 施設名の列No
|
||||
CSV_CHANGE_INST_NAME_COL_NO = 5
|
||||
# 領域コードの列No
|
||||
CSV_CHANGE_TA_CD_COL_NO = 6
|
||||
# 説明の列No
|
||||
CSV_CHANGE_EXPLAIN_COL_NO = 7
|
||||
# 担当者種別コード
|
||||
CSV_CHANGE_EMP_CHG_TYPE_CD_COL_NO = 8
|
||||
# MUIDの列No
|
||||
CSV_CHANGE_EMP_CD_COL_NO = 9
|
||||
# 担当者名の列No
|
||||
CSV_CHANGE_EMP_FULL_NAME_COL_NO = 10
|
||||
# 施設担当_開始日の列No
|
||||
CSV_CHANGE_INST_EMP_START_DATE_COL_NO = 11
|
||||
# 施設担当_終了日の列No
|
||||
CSV_CHANGE_INST_EMP_END_DATE_COL_NO = 12
|
||||
# 終了日の変更の列No
|
||||
CSV_CHANGE_CHANGE_END_DATE_COL_NO = 13
|
||||
# コメントの列No
|
||||
CSV_CHANGE_COMMENT = 14
|
||||
# CSV_CHANGE_BU_CD_COL_NO = 0
|
||||
# # ビジネスユニット名の列No
|
||||
# CSV_CHANGE_BU_NAME_COL_NO = 1
|
||||
# # 組織コードの列No
|
||||
# CSV_CHANGE_ORG_CD_COL_NO = 2
|
||||
# # 組織名略称の列No
|
||||
# CSV_CHANGE_ORG_SHORT_NAME_COL_NO = 3
|
||||
# # 施設コードの列No
|
||||
# CSV_CHANGE_INST_CD_COL_NO = 4
|
||||
# # 施設名の列No
|
||||
# CSV_CHANGE_INST_NAME_COL_NO = 5
|
||||
# # 領域コードの列No
|
||||
# CSV_CHANGE_TA_CD_COL_NO = 6
|
||||
# # 説明の列No
|
||||
# CSV_CHANGE_EXPLAIN_COL_NO = 7
|
||||
# # 担当者種別コード
|
||||
# CSV_CHANGE_EMP_CHG_TYPE_CD_COL_NO = 8
|
||||
# # MUIDの列No
|
||||
# CSV_CHANGE_EMP_CD_COL_NO = 9
|
||||
# # 担当者名の列No
|
||||
# CSV_CHANGE_EMP_FULL_NAME_COL_NO = 10
|
||||
# # 施設担当_開始日の列No
|
||||
# CSV_CHANGE_INST_EMP_START_DATE_COL_NO = 11
|
||||
# # 施設担当_終了日の列No
|
||||
# CSV_CHANGE_INST_EMP_END_DATE_COL_NO = 12
|
||||
# # 終了日の変更の列No
|
||||
# CSV_CHANGE_CHANGE_END_DATE_COL_NO = 13
|
||||
# # コメントの列No
|
||||
# CSV_CHANGE_COMMENT = 14
|
||||
|
||||
# 削除予定
|
||||
# CSVアップロードテーブル名(マスターメンテ)
|
||||
CSV_REAL_TABLE_NAME = '本番テーブル'
|
||||
CSV_CHANGE_TABLE_NAME = 'ダミーテーブル'
|
||||
# CSV_REAL_TABLE_NAME = '本番テーブル'
|
||||
# CSV_CHANGE_TABLE_NAME = 'ダミーテーブル'
|
||||
|
||||
MENTE_CSV_TEMPORARY_FILE_DIR_PATH = path.join(path.curdir, 'src', 'data')
|
||||
# MENTE_CSV_TEMPORARY_FILE_DIR_PATH = path.join(path.curdir, 'src', 'data')
|
||||
|
||||
MENTE_CSV_DOWNLOAD_EXTRACT_COLUMNS = [
|
||||
'inst_cd',
|
||||
'inst_name',
|
||||
'ta_cd',
|
||||
'emp_chg_type_cd',
|
||||
'emp_cd',
|
||||
'emp_name_full',
|
||||
'bu_cd',
|
||||
'bu_name',
|
||||
'start_date',
|
||||
'end_date',
|
||||
'creater',
|
||||
'create_date',
|
||||
'updater',
|
||||
'update_date'
|
||||
]
|
||||
# MENTE_CSV_DOWNLOAD_EXTRACT_COLUMNS = [
|
||||
# 'inst_cd',
|
||||
# 'inst_name',
|
||||
# 'ta_cd',
|
||||
# 'emp_chg_type_cd',
|
||||
# 'emp_cd',
|
||||
# 'emp_name_full',
|
||||
# 'bu_cd',
|
||||
# 'bu_name',
|
||||
# 'start_date',
|
||||
# 'end_date',
|
||||
# 'creater',
|
||||
# 'create_date',
|
||||
# 'updater',
|
||||
# 'update_date'
|
||||
# ]
|
||||
|
||||
MENTE_CSV_DOWNLOAD_HEADER = [
|
||||
'施設コード',
|
||||
'施設名',
|
||||
'領域コード',
|
||||
'担当者種別コード',
|
||||
'MUID',
|
||||
'担当者名',
|
||||
'ビジネスユニットコード',
|
||||
'ビジネスユニット名',
|
||||
'適用開始日',
|
||||
'適用終了日',
|
||||
'作成者',
|
||||
'作成日',
|
||||
'更新者',
|
||||
'更新日'
|
||||
]
|
||||
# MENTE_CSV_DOWNLOAD_HEADER = [
|
||||
# '施設コード',
|
||||
# '施設名',
|
||||
# '領域コード',
|
||||
# '担当者種別コード',
|
||||
# 'MUID',
|
||||
# '担当者名',
|
||||
# 'ビジネスユニットコード',
|
||||
# 'ビジネスユニット名',
|
||||
# '適用開始日',
|
||||
# '適用終了日',
|
||||
# '作成者',
|
||||
# '作成日',
|
||||
# '更新者',
|
||||
# '更新日'
|
||||
# ]
|
||||
|
||||
MENTE_CSV_DOWNLOAD_FILE_NAME = 'instEmpData.csv'
|
||||
# MENTE_CSV_DOWNLOAD_FILE_NAME = 'instEmpData.csv'
|
||||
|
||||
# CSVアップロードの制限サイズ=20MB
|
||||
MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 20971520
|
||||
# MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 20971520
|
||||
|
||||
# 利用停止区分
|
||||
DISPLAY_USER_STOP_DIV = {
|
||||
|
||||
@ -11,7 +11,7 @@ COGNITO_CLIENT_SECRET = os.environ['COGNITO_CLIENT_SECRET']
|
||||
AWS_REGION = os.environ['AWS_REGION']
|
||||
SESSION_TABLE_NAME = os.environ['SESSION_TABLE_NAME']
|
||||
BIO_ACCESS_LOG_BUCKET = os.environ['BIO_ACCESS_LOG_BUCKET']
|
||||
MASTER_MAINTENANCE_BUCKET = os.environ['MASTER_MAINTENANCE_BUCKET']
|
||||
# 削除予定 MASTER_MAINTENANCE_BUCKET = os.environ['MASTER_MAINTENANCE_BUCKET']
|
||||
|
||||
DB_HOST = os.environ['DB_HOST']
|
||||
DB_PORT = int(os.environ['DB_PORT'])
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
<!-- ファイル削除予定 -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
<!-- ファイル削除予定 -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
@ -210,4 +211,4 @@
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@ -1,3 +1,4 @@
|
||||
<!-- ファイル削除予定 -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<div class="notUseBioMsg">生物由来データ参照は <br> 日次バッチ処理中のため利用出来ません</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if menu.is_available_master_maintenance_menu() %}
|
||||
<!-- TODO 削除予定 {% if menu.is_available_master_maintenance_menu() %}
|
||||
{% if menu.is_batch_processing() %}
|
||||
<div class="notUseMainteMsg"> マスターメンテメニューは <br> 日次バッチ処理中のため利用出来ません </div>
|
||||
{% elif menu.is_backup_processing() %}
|
||||
@ -31,7 +31,8 @@
|
||||
{% else %}
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/masterMainte/masterMainteMenu')" class="btn btn-primary btn-lg btn_width">マスターメンテメニュー</a><br><br>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %} -->
|
||||
|
||||
<br><br><a href="javascript:void(0);" onclick="transitionTo('/logout/?reason=do_logout')" class="btn btn-info btn-lg btn_width">Logout</a>
|
||||
</div>
|
||||
<!-- ローディング -->
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
<!-- ファイル削除予定 -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
@ -62,4 +63,4 @@
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
Loading…
x
Reference in New Issue
Block a user