48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.database import get_db
|
|
from app.schemas.box import (
|
|
BoxDeleteResponse,
|
|
BoxInfoResponse,
|
|
BoxSaveRequest,
|
|
BoxSaveResponse,
|
|
BoxUpdateRequest,
|
|
BoxUpdateResponse,
|
|
)
|
|
from app.services.box_service import (
|
|
delete_box_item,
|
|
get_box_info,
|
|
save_box_record,
|
|
update_box_item,
|
|
)
|
|
|
|
router = APIRouter(tags=["boxing"])
|
|
|
|
|
|
@router.get("/box/info", response_model=BoxInfoResponse)
|
|
def box_info(
|
|
zongpai_no: str = Query(..., description="总排号"),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
"""查询装箱信息:根据总排号查询排产号、数量和已有箱号明细。"""
|
|
return get_box_info(db, zongpai_no)
|
|
|
|
|
|
@router.post("/box", response_model=BoxSaveResponse)
|
|
def create_box(req: BoxSaveRequest, db: Session = Depends(get_db)):
|
|
"""保存装箱记录:将总排号记录到指定箱号中。"""
|
|
return save_box_record(db, req)
|
|
|
|
|
|
@router.patch("/box/{box_item_id}", response_model=BoxUpdateResponse)
|
|
def update_box(box_item_id: int, req: BoxUpdateRequest, db: Session = Depends(get_db)):
|
|
"""更新一码多箱已分配装箱明细。"""
|
|
return update_box_item(db, box_item_id, req)
|
|
|
|
|
|
@router.delete("/box/{box_item_id}", response_model=BoxDeleteResponse)
|
|
def delete_box(box_item_id: int, db: Session = Depends(get_db)):
|
|
"""删除误录的装箱明细。"""
|
|
return delete_box_item(db, box_item_id)
|