from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from typing import List from ..core.database import get_db from ..core.response_code import ResponseCode, ResponseMessage from ..schemas.level_data import ( LevelDataRequest, LevelDataListResponse, LevelDataResponse ) from ..services.level_data import LevelDataService router = APIRouter(prefix="/level_data", tags=["水准数据"]) @router.post("/get_level_data_by_project", response_model=LevelDataListResponse) def get_level_data_by_project(request: LevelDataRequest, db: Session = Depends(get_db)): """ 通过标段名称获取全部水准线路 """ try: level_service = LevelDataService() level_data_list = level_service.get_level_data_by_project_name(db, request.project_name) return LevelDataListResponse( code=ResponseCode.SUCCESS, message="查询成功", total=len(level_data_list), data=level_data_list ) except Exception as e: raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"查询失败: {str(e)}" )