140 lines
5.7 KiB
Python
140 lines
5.7 KiB
Python
"""业务报表接口。"""
|
|
|
|
from typing import Annotated
|
|
|
|
from fastapi import Query, Request, Response
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from common.aspect.db_seesion import DBSessionDependency
|
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
|
from common.router import APIRouterPro
|
|
from common.vo import PageResponseModel
|
|
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.report_vo import (
|
|
ConsumptionReportModel,
|
|
ConsumptionReportQueryModel,
|
|
FillingReportModel,
|
|
FillingReportQueryModel,
|
|
PalletInventoryReportModel,
|
|
PalletInventoryReportQueryModel,
|
|
PalletTraceReportModel,
|
|
PalletTraceReportQueryModel,
|
|
ReturnReportModel,
|
|
ReturnReportQueryModel,
|
|
ShipmentReportModel,
|
|
ShipmentReportQueryModel,
|
|
)
|
|
from module_business.service.report_service import ReportService
|
|
from utils.response_util import ResponseUtil
|
|
|
|
report_controller = APIRouterPro(
|
|
prefix='/report',
|
|
tags=['业务管理-只读报表'],
|
|
dependencies=[PreAuthDependency()],
|
|
)
|
|
|
|
|
|
@report_controller.get(
|
|
'/pallet-inventory/list',
|
|
summary='获取托盘库存报表分页列表接口',
|
|
response_model=PageResponseModel[PalletInventoryReportModel],
|
|
dependencies=[UserInterfaceAuthDependency('report:palletinventory:list')],
|
|
)
|
|
async def get_pallet_inventory_report_list(
|
|
request: Request,
|
|
query_object: Annotated[PalletInventoryReportQueryModel, Query()],
|
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
|
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
|
) -> Response:
|
|
result = await ReportService.get_pallet_inventory_list_services(query_db, query_object, current_user, test_scope)
|
|
return ResponseUtil.success(model_content=result)
|
|
|
|
|
|
@report_controller.get(
|
|
'/filling/list',
|
|
summary='获取装填记录报表分页列表接口',
|
|
response_model=PageResponseModel[FillingReportModel],
|
|
dependencies=[UserInterfaceAuthDependency('report:filling:list')],
|
|
)
|
|
async def get_filling_report_list(
|
|
request: Request,
|
|
query_object: Annotated[FillingReportQueryModel, Query()],
|
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
|
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
|
) -> Response:
|
|
result = await ReportService.get_filling_report_list_services(query_db, query_object, current_user, test_scope)
|
|
return ResponseUtil.success(model_content=result)
|
|
|
|
|
|
@report_controller.get(
|
|
'/shipment/list',
|
|
summary='获取发货出库报表分页列表接口',
|
|
response_model=PageResponseModel[ShipmentReportModel],
|
|
dependencies=[UserInterfaceAuthDependency('report:shipment:list')],
|
|
)
|
|
async def get_shipment_report_list(
|
|
request: Request,
|
|
query_object: Annotated[ShipmentReportQueryModel, Query()],
|
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
|
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
|
) -> Response:
|
|
result = await ReportService.get_shipment_report_list_services(query_db, query_object, current_user, test_scope)
|
|
return ResponseUtil.success(model_content=result)
|
|
|
|
|
|
@report_controller.get(
|
|
'/consumption/list',
|
|
summary='获取产线消耗报表分页列表接口',
|
|
response_model=PageResponseModel[ConsumptionReportModel],
|
|
dependencies=[UserInterfaceAuthDependency('report:consumption:list')],
|
|
)
|
|
async def get_consumption_report_list(
|
|
request: Request,
|
|
query_object: Annotated[ConsumptionReportQueryModel, Query()],
|
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
|
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
|
) -> Response:
|
|
result = await ReportService.get_consumption_report_list_services(query_db, query_object, current_user, test_scope)
|
|
return ResponseUtil.success(model_content=result)
|
|
|
|
|
|
@report_controller.get(
|
|
'/return/list',
|
|
summary='获取退回仓库报表分页列表接口',
|
|
response_model=PageResponseModel[ReturnReportModel],
|
|
dependencies=[UserInterfaceAuthDependency('report:return:list')],
|
|
)
|
|
async def get_return_report_list(
|
|
request: Request,
|
|
query_object: Annotated[ReturnReportQueryModel, Query()],
|
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
|
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
|
) -> Response:
|
|
result = await ReportService.get_return_report_list_services(query_db, query_object, current_user, test_scope)
|
|
return ResponseUtil.success(model_content=result)
|
|
|
|
|
|
@report_controller.get(
|
|
'/pallet-trace/list',
|
|
summary='获取托盘追溯报表分页列表接口',
|
|
response_model=PageResponseModel[PalletTraceReportModel],
|
|
dependencies=[UserInterfaceAuthDependency('report:pallettrace:list')],
|
|
)
|
|
async def get_pallet_trace_report_list(
|
|
request: Request,
|
|
query_object: Annotated[PalletTraceReportQueryModel, Query()],
|
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
|
test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()],
|
|
) -> Response:
|
|
result = await ReportService.get_pallet_trace_list_services(query_db, query_object, current_user, test_scope)
|
|
return ResponseUtil.success(model_content=result)
|