- 复制来源: /home/yueli/track @ 192c8ee (feature/ai-audit-update) - 组织隔离目标: LICA - 端口规划: 前端 8030 / 后端 8031 / 数据库 8032 - 已排除 deploy.sh、deploy_full.sh、docker-compose.prod.yml(IRIS 生产发布脚本) - 已排除工作区未提交改动,取干净的 192c8ee 状态
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""生产订单 API 端点"""
|
|
from __future__ import annotations
|
|
import uuid
|
|
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from sqlalchemy.orm import selectinload
|
|
|
|
from app.core.database import get_db
|
|
from app.models.production_order import ProductionOrder
|
|
from app.schemas.order import OrderCreate, OrderResponse
|
|
from app.services.auth_service import get_current_user
|
|
|
|
router = APIRouter(prefix="/orders", tags=["订单管理"])
|
|
|
|
|
|
@router.get("/", response_model=list[OrderResponse])
|
|
async def list_orders(
|
|
skip: int = Query(0, ge=0),
|
|
limit: int = Query(50, ge=1, le=200),
|
|
db: AsyncSession = Depends(get_db),
|
|
current_user: dict = Depends(get_current_user),
|
|
):
|
|
result = await db.execute(
|
|
select(ProductionOrder).offset(skip).limit(limit).order_by(ProductionOrder.created_at.desc())
|
|
)
|
|
orders = result.scalars().all()
|
|
return [OrderResponse.model_validate(o) for o in orders]
|
|
|
|
|
|
@router.post("/", response_model=OrderResponse, status_code=201)
|
|
async def create_order(
|
|
data: OrderCreate,
|
|
db: AsyncSession = Depends(get_db),
|
|
current_user: dict = Depends(get_current_user),
|
|
):
|
|
order = ProductionOrder(**data.model_dump())
|
|
db.add(order)
|
|
await db.commit()
|
|
await db.refresh(order)
|
|
return OrderResponse.model_validate(order)
|