from fastapi import APIRouter, Depends from pydantic import BaseModel from sqlalchemy.orm import Session from typing import Optional from ..core.database import get_db from ..services.comprehensive import ComprehensiveDataService from ..schemas.comprehensive_data import DataResponse router = APIRouter(prefix="/section-data", tags=["section-data"]) class ProjectDataRequest(BaseModel): project_name: str skip: int = 0 limit: Optional[int] = None @router.post("/project-data", response_model=DataResponse) async def get_project_data( request: ProjectDataRequest, db: Session = Depends(get_db) ): """ 根据项目名称获取完整的项目数据(包含账号、断面、观测点、沉降数据、水准数据) - **project_name**: 项目名称(标段) - **skip**: 跳过数量(默认0) - **limit**: 限制数量,None表示查询全部 """ comprehensive_service = ComprehensiveDataService() result = comprehensive_service.get_project_data( db, request.project_name, request.skip, request.limit ) return DataResponse( code=0, message="查询成功", data=[result], total=result.get("total", 0) )