from pydantic import BaseModel from typing import Any, Dict, List, Optional # 原始数据导入请求 class OriginalDataImportRequest(BaseModel): bfpcode: Optional[str] = None mtime: Optional[str] = None bffb: Optional[str] = None bfpl: Optional[str] = None bfpvalue: Optional[str] = None times: Optional[str] = None NYID: str sort: Optional[int] = None # 水准数据导入请求 class LevelDataImportRequest(BaseModel): linecode: str NYID: str benchmarkids: Optional[str] = None wsphigh: Optional[str] = None createDate: Optional[str] = None # 沉降数据导入请求 class SettlementDataImportRequest(BaseModel): point_id: str NYID: str CVALUE: Optional[str] = None MAVALUE: Optional[str] = None MTIME_W: Optional[str] = None PRELOADH: Optional[str] = None PSTATE: Optional[str] = None createdate: Optional[str] = None day: Optional[str] = None day_jg: Optional[str] = None REMARK: Optional[str] = None WORKINFO: Optional[str] = None useflag: Optional[str] = None mavalue_lj: Optional[str] = None mavalue_bc: Optional[str] = None sjName: Optional[str] = None workinfoname: Optional[str] = None isgzjdxz: Optional[str] = None upd_remark: Optional[str] = None # 观测点数据导入请求 class CheckpointDataImportRequest(BaseModel): point_id: str aname: Optional[str] = None section_id: str burial_date: Optional[str] = None # 断面数据导入请求 class SectionDataImportRequest(BaseModel): section_id: str mileage: Optional[str] = None work_site: Optional[str] = None status: Optional[str] = None number: Optional[str] = None basic_types: Optional[str] = None height: Optional[str] = None transition_paragraph: Optional[str] = None # 原始数据查询请求 class OriginalDataQueryRequest(BaseModel): linecode: Optional[str] = None id: Optional[int] = None bfpcode: Optional[str] = None mtime: Optional[str] = None bffb: Optional[str] = None bfpl: Optional[str] = None bfpvalue: Optional[str] = None times: Optional[str] = None NYID: Optional[str] = None sort: Optional[int] = None # 沉降数据查询请求 class SettlementDataQueryRequest(BaseModel): id: Optional[int] = None point_id: Optional[int] = None NYID: Optional[int] = None CVALUE: Optional[str] = None MAVALUE: Optional[str] = None MTIME_W: Optional[str] = None PRELOADH: Optional[str] = None PSTATE: Optional[str] = None createdate: Optional[str] = None day: Optional[str] = None day_jg: Optional[str] = None REMARK: Optional[str] = None WORKINFO: Optional[str] = None useflag: Optional[str] = None mavalue_lj: Optional[str] = None mavalue_bc: Optional[str] = None sjName: Optional[str] = None workinfoname: Optional[str] = None isgzjdxz: Optional[str] = None upd_remark: Optional[str] = None # 断面数据导入请求 class SectionDataQueryRequest(BaseModel): id: Optional[int] = None section_id: Optional[int] = None mileage: Optional[str] = None work_site: Optional[str] = None status: Optional[str] = None number: Optional[str] = None basic_types: Optional[str] = None height: Optional[str] = None transition_paragraph: Optional[str] = None # 水准数据查询请求 class LevelDataQueryRequest(BaseModel): linecode: Optional[str] = None NYID: Optional[str] = None benchmarkids: Optional[str] = None wsphigh: Optional[str] = None createDate: Optional[str] = None # 批量导入请求 class BatchSectionDataImportRequest(BaseModel): data: List[SectionDataImportRequest] class BatchCheckpointDataImportRequest(BaseModel): data: List[CheckpointDataImportRequest] class BatchSettlementDataImportRequest(BaseModel): data: List[SettlementDataImportRequest] class BatchLevelDataImportRequest(BaseModel): data: List[LevelDataImportRequest] class BatchOriginalDataImportRequest(BaseModel): data: List[OriginalDataImportRequest] # 新增响应模型 class DataImportResponse(BaseModel): success: bool message: str total_count: int success_count: int failed_count: int failed_items: List[Dict[str, Any]] = [] # 查询响应模型 class DataResponse(BaseModel): success: bool message: str count: int data: List[Dict[str, Any]] = [] # 兼容旧接口的模型 class ComprehensiveDataImportRequest(BaseModel): data: Dict[str, Any] class ComprehensiveDataImportResponse(BaseModel): success: bool message: str