删除数据接口

This commit is contained in:
2026-01-07 10:43:43 +08:00
parent e09ebb52e6
commit 904bf9a6c4
3 changed files with 295 additions and 3 deletions

View File

@@ -6,7 +6,9 @@ from ..core.response_code import ResponseCode, ResponseMessage
from ..schemas.level_data import (
LevelDataRequest,
LevelDataListResponse,
LevelDataResponse
LevelDataResponse,
BatchDeleteByLinecodesRequest,
BatchDeleteByLinecodesResponse
)
from ..services.level_data import LevelDataService
@@ -31,4 +33,29 @@ def get_level_data_by_project(request: LevelDataRequest, db: Session = Depends(g
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"查询失败: {str(e)}"
)
@router.post("/batch_delete_by_linecodes", response_model=BatchDeleteByLinecodesResponse)
def batch_delete_by_linecodes(request: BatchDeleteByLinecodesRequest, db: Session = Depends(get_db)):
"""
根据水准线路编码列表批量删除相关数据
删除顺序:原始数据 → 沉降数据 → 观测点数据 → 水准数据
删除前会备份数据为SQL文件
"""
try:
level_service = LevelDataService()
result = level_service.batch_delete_by_linecodes(db, linecodes=request.linecodes)
return BatchDeleteByLinecodesResponse(
code=0 if result['success'] else 1,
message=result['message'],
success=result['success'],
backup_file=result.get('backup_file'),
deleted_counts=result.get('deleted_counts')
)
except Exception as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"批量删除失败: {str(e)}"
)