From 301df76c65fa2ce08d6b47a6629d583fe1145774 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Tue, 18 Aug 2026 11:06:56 +0800 Subject: [PATCH] feat(backend): expose GET /production-waste-outputs list API. Co-authored-by: Cursor --- backend/app/api/production.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/backend/app/api/production.py b/backend/app/api/production.py index b56074ec..844265a4 100644 --- a/backend/app/api/production.py +++ b/backend/app/api/production.py @@ -39,6 +39,7 @@ from app.schemas.process_route import ( from app.models.models import SysUser from app.crud import production_work_order as production_work_order_svc from app.crud import production_task as production_task_svc +from app.crud import production_waste_output as production_waste_output_svc from app.crud import cell_product as cell_product_svc from app.crud import qc_work_order as qc_work_order_svc from app.schemas.production_work_order import ( @@ -2078,6 +2079,33 @@ async def list_production_tasks( return success_response({"list": items, "total": total, "page": page, "pageSize": pageSize, "totalPages": tp}) +@router.get("/production-waste-outputs") +async def list_production_waste_outputs( + page: int = Query(1, ge=1), + pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + keyword: Optional[str] = None, + createTimeStart: Optional[str] = Query(None, alias="createTimeStart"), + createTimeEnd: Optional[str] = Query(None, alias="createTimeEnd"), + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + tenant_no = _get_tenant_no(db, user) + items, total = production_waste_output_svc.list_production_waste_outputs( + db, + tenant_no=tenant_no, + page=page, + page_size=pageSize, + keyword=keyword, + create_time_start=createTimeStart, + create_time_end=createTimeEnd, + user_info=user, + ) + tp = production_waste_output_svc.total_pages(total, pageSize) + return success_response( + {"list": items, "total": total, "page": page, "pageSize": pageSize, "totalPages": tp} + ) + + @router.post("/production-tasks/list-by-work-orders") async def list_production_tasks_by_work_orders( body: ProductionTaskListByWorkOrdersBody,