36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""工区数据接口"""
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
from app.core.database import get_tunnel_db
|
|
from app.core.logging_config import get_logger
|
|
from app.schemas.work_area import WorkAreaBatchImport, WorkAreaQuery
|
|
from app.schemas.common import BatchImportResponse, PageResponse
|
|
from app.servives.work_area_service import WorkAreaService
|
|
|
|
router = APIRouter(prefix="/work_area", tags=["工区数据"])
|
|
logger = get_logger(__name__)
|
|
|
|
@router.post("/import", response_model=BatchImportResponse)
|
|
async def batch_import(
|
|
request: WorkAreaBatchImport,
|
|
db: Session = Depends(get_tunnel_db)
|
|
):
|
|
"""批量导入工区数据"""
|
|
logger.info(f"工区数据导入请求: account_id={request.account_id}, 数据量={len(request.data)}")
|
|
return WorkAreaService.batch_import(db, request.account_id, request.data)
|
|
|
|
@router.post("/query")
|
|
async def query(
|
|
request: WorkAreaQuery,
|
|
db: Session = Depends(get_tunnel_db)
|
|
):
|
|
"""查询工区数据"""
|
|
logger.info(f"工区数据查询请求: {request}")
|
|
items, total = WorkAreaService.query(db, request)
|
|
return {
|
|
"total": total,
|
|
"page": request.page,
|
|
"page_size": request.page_size,
|
|
"items": items
|
|
}
|