更新登录页及优化相关功能
This commit is contained in:
@@ -16,6 +16,7 @@ from module_business.entity.vo.master_vo import (
|
||||
DeleteLineModel,
|
||||
DeleteSiteModel,
|
||||
DeleteStrainModel,
|
||||
DeleteTunnelModel,
|
||||
DeleteWarehouseModel,
|
||||
LineModel,
|
||||
LinePageQueryModel,
|
||||
@@ -23,12 +24,14 @@ from module_business.entity.vo.master_vo import (
|
||||
SitePageQueryModel,
|
||||
StrainModel,
|
||||
StrainPageQueryModel,
|
||||
TunnelModel,
|
||||
TunnelPageQueryModel,
|
||||
WarehouseModel,
|
||||
WarehousePageQueryModel,
|
||||
)
|
||||
from module_business.service.test_batch_access_service import TestBatchAccessService
|
||||
|
||||
MasterResource = Literal['strain', 'customer', 'site', 'line', 'warehouse']
|
||||
MasterResource = Literal['strain', 'customer', 'site', 'line', 'tunnel', 'warehouse']
|
||||
|
||||
|
||||
_RESOURCE_CONFIG: dict[MasterResource, dict[str, Any]] = {
|
||||
@@ -60,6 +63,13 @@ _RESOURCE_CONFIG: dict[MasterResource, dict[str, Any]] = {
|
||||
'ids_field': 'line_ids',
|
||||
'vo': LineModel,
|
||||
},
|
||||
'tunnel': {
|
||||
'label': '隧道',
|
||||
'id_field': 'tunnel_id',
|
||||
'code_field': 'tunnel_code',
|
||||
'ids_field': 'tunnel_ids',
|
||||
'vo': TunnelModel,
|
||||
},
|
||||
'warehouse': {
|
||||
'label': '仓库',
|
||||
'id_field': 'warehouse_id',
|
||||
@@ -105,6 +115,13 @@ class MasterService:
|
||||
assert_record_in_scope(site, scope, '目标客户现场')
|
||||
if site.status != '0':
|
||||
raise ServiceException(message='目标客户现场已停用')
|
||||
elif resource == 'tunnel':
|
||||
site = await MasterDao.get_site(db, page_object.site_id, scope)
|
||||
if site is None:
|
||||
raise ServiceException(message='目标客户现场不存在')
|
||||
assert_record_in_scope(site, scope, '目标客户现场')
|
||||
if site.status != '0':
|
||||
raise ServiceException(message='目标客户现场已停用')
|
||||
|
||||
@staticmethod
|
||||
async def _find_duplicate(
|
||||
@@ -124,6 +141,12 @@ class MasterService:
|
||||
page_object.line_code,
|
||||
page_object.site_id,
|
||||
)
|
||||
if resource == 'tunnel':
|
||||
return await MasterDao.find_tunnel_by_code(
|
||||
db,
|
||||
page_object.tunnel_code,
|
||||
page_object.site_id,
|
||||
)
|
||||
code_field = _RESOURCE_CONFIG[resource]['code_field']
|
||||
return await getattr(MasterDao, f'find_{resource}_by_code')(
|
||||
db,
|
||||
@@ -413,6 +436,48 @@ class MasterService:
|
||||
) -> NoReturn:
|
||||
return await cls.reject_physical_delete()
|
||||
|
||||
@classmethod
|
||||
async def list_tunnel(
|
||||
cls,
|
||||
db: AsyncSession,
|
||||
query_object: TunnelPageQueryModel,
|
||||
scope: TestBatchScope,
|
||||
is_page: bool = True,
|
||||
) -> PageModel | list[TunnelModel]:
|
||||
return await cls._list(db, 'tunnel', query_object, scope, is_page)
|
||||
|
||||
@classmethod
|
||||
async def detail_tunnel(cls, db: AsyncSession, tunnel_id: int, scope: TestBatchScope) -> TunnelModel:
|
||||
return await cls._detail(db, 'tunnel', tunnel_id, scope)
|
||||
|
||||
@classmethod
|
||||
async def add_tunnel(
|
||||
cls,
|
||||
db: AsyncSession,
|
||||
tunnel: TunnelModel,
|
||||
current_user: CurrentUserModel,
|
||||
scope: TestBatchScope,
|
||||
) -> CrudResponseModel:
|
||||
return await cls._add(db, 'tunnel', tunnel, current_user, scope)
|
||||
|
||||
@classmethod
|
||||
async def edit_tunnel(
|
||||
cls,
|
||||
db: AsyncSession,
|
||||
tunnel: TunnelModel,
|
||||
current_user: CurrentUserModel,
|
||||
scope: TestBatchScope,
|
||||
) -> CrudResponseModel:
|
||||
return await cls._edit(db, 'tunnel', tunnel, current_user, scope)
|
||||
|
||||
@classmethod
|
||||
async def remove_tunnel(
|
||||
cls,
|
||||
db: AsyncSession,
|
||||
value: int | DeleteTunnelModel,
|
||||
) -> NoReturn:
|
||||
return await cls.reject_physical_delete()
|
||||
|
||||
@classmethod
|
||||
async def list_warehouse(
|
||||
cls,
|
||||
|
||||
Reference in New Issue
Block a user