更新登录页及优化相关功能
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import Path, Query, Request, Response
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from common.annotation.log_annotation import Log
|
||||
from common.aspect.db_seesion import DBSessionDependency
|
||||
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||
from common.enums import BusinessType
|
||||
from common.router import APIRouterPro
|
||||
from common.vo import DataResponseModel, PageResponseModel, ResponseBaseModel
|
||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||
from module_business.dependency.test_batch_dependency import TestBatchScopeDependency
|
||||
from module_business.domain.test_batch_scope import TestBatchScope
|
||||
from module_business.entity.vo.operation_vo import ShipmentModel
|
||||
from module_business.entity.vo.shipment_receipt_vo import (
|
||||
ShipmentReceiptCommandModel,
|
||||
ShipmentReceiptItemModel,
|
||||
ShipmentReceiptModel,
|
||||
ShipmentReceiptQueryModel,
|
||||
)
|
||||
from module_business.service.shipment_receipt_service import ShipmentReceiptService
|
||||
from utils.response_util import ResponseUtil
|
||||
|
||||
shipment_receipt_controller = APIRouterPro(
|
||||
prefix='/business/shipment-receipt',
|
||||
tags=['业务管理-发货收货核对'],
|
||||
dependencies=[PreAuthDependency()],
|
||||
)
|
||||
|
||||
|
||||
@shipment_receipt_controller.get(
|
||||
'/list',
|
||||
response_model=PageResponseModel[ShipmentModel],
|
||||
summary='查询目标现场收货单',
|
||||
dependencies=[UserInterfaceAuthDependency('business:shipment:receive')],
|
||||
)
|
||||
async def list_shipment_receipts(
|
||||
request: Request,
|
||||
query: Annotated[ShipmentReceiptQueryModel, Query()],
|
||||
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
||||
) -> Response:
|
||||
result = await ShipmentReceiptService.list_services(query_db, query, current_user, test_scope)
|
||||
return ResponseUtil.success(model_content=result)
|
||||
|
||||
|
||||
@shipment_receipt_controller.get(
|
||||
'/{shipment_id}',
|
||||
response_model=DataResponseModel[ShipmentReceiptModel],
|
||||
summary='查询原发货核对明细',
|
||||
dependencies=[UserInterfaceAuthDependency('business:shipment:receive')],
|
||||
)
|
||||
async def get_shipment_receipt(
|
||||
request: Request,
|
||||
shipment_id: Annotated[int, Path(gt=0)],
|
||||
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
||||
) -> Response:
|
||||
result = await ShipmentReceiptService.detail_services(query_db, shipment_id, current_user, test_scope)
|
||||
return ResponseUtil.success(data=result)
|
||||
|
||||
|
||||
@shipment_receipt_controller.get(
|
||||
'/{shipment_id}/scan/{identifier:path}',
|
||||
response_model=DataResponseModel[ShipmentReceiptItemModel],
|
||||
summary='扫码或录入原托盘号核对',
|
||||
dependencies=[UserInterfaceAuthDependency('business:shipment:receive')],
|
||||
)
|
||||
@Log(
|
||||
title='收货扫码',
|
||||
business_type=BusinessType.OTHER,
|
||||
request_log_mode='none',
|
||||
response_log_mode='summary',
|
||||
oper_url_mode='route',
|
||||
)
|
||||
async def scan_shipment_receipt(
|
||||
request: Request,
|
||||
shipment_id: Annotated[int, Path(gt=0)],
|
||||
identifier: Annotated[str, Path(min_length=1, max_length=128, pattern=r'\S')],
|
||||
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
||||
) -> Response:
|
||||
result = await ShipmentReceiptService.scan_services(query_db, shipment_id, identifier, current_user, test_scope)
|
||||
return ResponseUtil.success(data=result)
|
||||
|
||||
|
||||
@shipment_receipt_controller.put(
|
||||
'/{shipment_id}/confirm',
|
||||
response_model=ResponseBaseModel,
|
||||
summary='接收方确认核对收货',
|
||||
dependencies=[UserInterfaceAuthDependency('business:shipment:receive')],
|
||||
)
|
||||
@Log(title='发货收货核对', business_type=BusinessType.UPDATE)
|
||||
async def confirm_shipment_receipt(
|
||||
request: Request,
|
||||
shipment_id: Annotated[int, Path(gt=0)],
|
||||
command: ShipmentReceiptCommandModel,
|
||||
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency(write=True)],
|
||||
) -> Response:
|
||||
result = await ShipmentReceiptService.confirm_services(query_db, shipment_id, command, current_user, test_scope)
|
||||
return ResponseUtil.success(msg=result.message)
|
||||
Reference in New Issue
Block a user