ETest-Vue-FastAPI/ruoyi-fastapi-backend/module_admin/controller/warehouse_receipt_controlle...

114 lines
4.3 KiB
Python

from fastapi import APIRouter, Depends, Request
from sqlalchemy.ext.asyncio import AsyncSession
from config.get_db import get_db
from config.enums import BusinessType
from module_admin.annotation.log_annotation import Log
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from module_admin.service.login_service import LoginService
from module_admin.service.warehouse_receipt_service import WarehouseReceiptService
from module_admin.entity.vo.warehouse_receipt_vo import (
WarehouseReceiptPageQueryModel, AddWarehouseReceiptModel,
EditWarehouseReceiptModel, DeleteWarehouseReceiptModel
)
from module_admin.entity.vo.user_vo import CurrentUserModel
from utils.log_util import logger
from utils.page_util import PageResponseModel
from utils.response_util import ResponseUtil
warehouseReceiptController = APIRouter(prefix='/warehouse/receipt', dependencies=[Depends(LoginService.get_current_user)])
@warehouseReceiptController.get('/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('warehouse:receipt:list'))])
async def get_warehouse_receipt_list(
request: Request,
query_object: WarehouseReceiptPageQueryModel = Depends(WarehouseReceiptPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db)
):
"""
获取入库单列表
"""
receipt_list = await WarehouseReceiptService.get_receipt_list(query_db, query_object, is_page=True)
logger.info('获取成功')
return ResponseUtil.success(dict_content=receipt_list)
@warehouseReceiptController.get('/{receipt_id}', dependencies=[Depends(CheckUserInterfaceAuth('warehouse:receipt:query'))])
async def get_warehouse_receipt_detail(
request: Request,
receipt_id: int,
query_db: AsyncSession = Depends(get_db)
):
"""
获取入库单详情
"""
receipt_detail = await WarehouseReceiptService.get_receipt_detail(query_db, receipt_id)
logger.info('获取成功')
return ResponseUtil.success(data=receipt_detail)
@warehouseReceiptController.post('', dependencies=[Depends(CheckUserInterfaceAuth('warehouse:receipt:add'))])
@Log(title='入库单管理', business_type=BusinessType.INSERT)
async def add_warehouse_receipt(
request: Request,
add_receipt: AddWarehouseReceiptModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""
新增入库单
"""
add_receipt.create_by = current_user.user.user_name
add_receipt.recorder = current_user.user.user_name
result = await WarehouseReceiptService.add_receipt(query_db, add_receipt)
logger.info(result.message)
return ResponseUtil.success(msg=result.message)
@warehouseReceiptController.put('', dependencies=[Depends(CheckUserInterfaceAuth('warehouse:receipt:edit'))])
@Log(title='入库单管理', business_type=BusinessType.UPDATE)
async def edit_warehouse_receipt(
request: Request,
edit_receipt: EditWarehouseReceiptModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""
修改入库单
"""
edit_receipt.update_by = current_user.user.user_name
result = await WarehouseReceiptService.edit_receipt(query_db, edit_receipt)
logger.info(result.message)
return ResponseUtil.success(msg=result.message)
@warehouseReceiptController.delete('/{receipt_ids}', dependencies=[Depends(CheckUserInterfaceAuth('warehouse:receipt:remove'))])
@Log(title='入库单管理', business_type=BusinessType.DELETE)
async def delete_warehouse_receipt(
request: Request,
receipt_ids: str,
query_db: AsyncSession = Depends(get_db)
):
"""
删除入库单
"""
delete_receipt = DeleteWarehouseReceiptModel(receiptIds=receipt_ids)
result = await WarehouseReceiptService.delete_receipt(query_db, delete_receipt)
logger.info(result.message)
return ResponseUtil.success(msg=result.message)
@warehouseReceiptController.get('/generate/receiptNo', dependencies=[Depends(CheckUserInterfaceAuth('warehouse:receipt:add'))])
async def generate_receipt_no(
request: Request,
query_db: AsyncSession = Depends(get_db)
):
"""
生成入库单号
"""
result = await WarehouseReceiptService.generate_receipt_no(query_db)
logger.info('生成成功')
return ResponseUtil.success(data=result)