2025-12-19 10:12:59 +08:00
|
|
|
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)
|
|
|
|
|
):
|
|
|
|
|
"""
|
|
|
|
|
获取入库单详情
|
|
|
|
|
"""
|
2025-12-29 22:22:13 +08:00
|
|
|
try:
|
2026-01-04 23:56:11 +08:00
|
|
|
print(f"DEBUG Controller: 请求入库单详情 receipt_id={receipt_id}, type={type(receipt_id)}")
|
2025-12-29 22:22:13 +08:00
|
|
|
receipt_detail = await WarehouseReceiptService.get_receipt_detail(query_db, receipt_id)
|
2026-01-04 23:56:11 +08:00
|
|
|
print(f"DEBUG Controller: 返回的入库单号={receipt_detail.get('receiptNo')}, receipt_id={receipt_detail.get('receiptId')}")
|
2025-12-29 22:22:13 +08:00
|
|
|
logger.info('获取成功')
|
|
|
|
|
return ResponseUtil.success(data=receipt_detail)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f'获取入库单详情失败: {str(e)}')
|
|
|
|
|
return ResponseUtil.error(msg=str(e))
|
2025-12-19 10:12:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@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)
|
|
|
|
|
|
|
|
|
|
|