"""市场模块 API(市场物料领用记录)""" from typing import Optional from fastapi import APIRouter, Depends, Query from pydantic import BaseModel from sqlalchemy.orm import Session from app.api.sample_reception import _get_current_user_id, _get_tenant_no, _page_payload from app.core.database import get_db from app.core.menu_guard import require_menu_code from app.core.response import success_response from app.crud import material as mat_svc router = APIRouter(prefix="/web/admin", tags=["市场"]) @router.get("/my-material-usages") async def get_my_material_usage_list( page: int = Query(1, ge=1), page_size: int = Query(10, ge=1, le=100, alias="pageSize"), keyword: Optional[str] = None, material_id: Optional[str] = None, material_type: Optional[str] = None, change_type: Optional[str] = None, start_time: Optional[str] = None, end_time: Optional[str] = None, user: dict = Depends(require_menu_code("market:material-usage:list")), db: Session = Depends(get_db), ): """获取当前用户的物料领用记录""" tenant_no = _get_tenant_no(db, user) user_id = _get_current_user_id(user) records, total = mat_svc.get_my_usages( db=db, current_user_id=user_id, current_nick_name=(user.get("real_name") or "").strip(), tenant_no=tenant_no, page=page, page_size=page_size, keyword=keyword, material_id=material_id, material_type=material_type, change_type=change_type, start_time=start_time, end_time=end_time, ) return success_response(_page_payload(records, total, page, page_size))