41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
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)
|
||
)
|