diff --git a/app/api/comprehensive_data.py b/app/api/comprehensive_data.py index 69d3da1..94d349f 100644 --- a/app/api/comprehensive_data.py +++ b/app/api/comprehensive_data.py @@ -353,19 +353,26 @@ def get_settlement(request: SettlementDataQueryRequest, db: Session = Depends(ge logger.info(f"Found {result['total']} settlement records using optimized batch query, returning {len(result['data'])} records") else: - # 原逻辑:不提供account_id,按原有方式查询 - logger.info("Using original query logic without account_id") - result = settlement_service.search_settlement_data_formatted( - db, - id=request.id, - point_id=request.point_id, - nyid=request.NYID, - sjName=request.sjName, - workinfoname=request.workinfoname, - skip=request.skip, - limit=request.limit + return DataResponse( + code=ResponseCode.SUCCESS, + message="未提供account_id,请提供account_id", + total=0, + data=[] ) - logger.info(f"Found {result['total']} settlement records using original logic, returning {len(result['data'])} records") + # 强制 account_id 查询 + # 原逻辑:不提供account_id,按原有方式查询 + # logger.info("Using original query logic without account_id") + # result = settlement_service.search_settlement_data_formatted( + # db, + # id=request.id, + # point_id=request.point_id, + # nyid=request.NYID, + # sjName=request.sjName, + # workinfoname=request.workinfoname, + # skip=request.skip, + # limit=request.limit + # ) + # logger.info(f"Found {result['total']} settlement records using original logic, returning {len(result['data'])} records") return DataResponse( code=ResponseCode.SUCCESS, @@ -423,7 +430,7 @@ def get_original(request: OriginalDataQueryRequest, db: Session = Depends(get_db logger.info(f"Querying original data with params: {request.dict()}") result = comprehensive_service.get_level_and_original_data( db, - account_id=request.account_id, # 可选 + account_id=request.account_id, # 必选 id=request.id, bfpcode=request.bfpcode, bffb=request.bffb, @@ -505,7 +512,7 @@ def get_settlement_by_nyid( total=0, data=[] ) - + @router.post("/get_settlement_by_point", response_model=DataResponse) def get_settlement_by_point( request: NYIDRequest, # 假设定义了接收nyid的请求模型 diff --git a/app/schemas/comprehensive_data.py b/app/schemas/comprehensive_data.py index 12bf835..7361c93 100644 --- a/app/schemas/comprehensive_data.py +++ b/app/schemas/comprehensive_data.py @@ -85,7 +85,8 @@ class SectionDataImportRequest(BaseModel): # 原始数据查询请求 class OriginalDataQueryRequest(BaseModel): - account_id: Optional[int] = None # 账号ID,可选。不填则查询所有分表 + # 账号ID,必须要求,兼容int和str + account_id: Union[int, str] linecode: Optional[str] = None id: Optional[int] = None bfpcode: Optional[str] = None @@ -102,7 +103,7 @@ class SettlementDataQueryRequest(BaseModel): id: Optional[int] = None point_id: Optional[int] = None NYID: Optional[int] = None - account_id: Optional[str] = None # 账号ID,可选,不填则按原来逻辑查询 + account_id: str # 账号ID,强制要求 CVALUE: Optional[str] = None MAVALUE: Optional[str] = None MTIME_W: Optional[str] = None diff --git a/app/services/checkpoint.py b/app/services/checkpoint.py index 35cc37e..35528f5 100644 --- a/app/services/checkpoint.py +++ b/app/services/checkpoint.py @@ -246,10 +246,12 @@ class CheckpointService(BaseService[Checkpoint]): if not nyid_list: return [] + print(nyid_list) max_nyid_str = max(nyid_list, key=int) nyid_list = [] nyid_list.append(max_nyid_str) + print(nyid_list) # 2. 根据NYID列表查询沉降数据表,获取所有point_id(去重) point_id_query = db.query(SettlementData.point_id).filter( diff --git a/app/services/comprehensive.py b/app/services/comprehensive.py index 4693c64..331082e 100644 --- a/app/services/comprehensive.py +++ b/app/services/comprehensive.py @@ -1,5 +1,5 @@ from sqlalchemy.orm import Session -from typing import List, Optional, Dict, Any +from typing import List, Optional, Dict, Any, Union from .section_data import SectionDataService from .checkpoint import CheckpointService from .settlement_data import SettlementDataService @@ -168,7 +168,7 @@ class ComprehensiveDataService: } def get_level_and_original_data(self, db: Session, - account_id: Optional[int] = None, + account_id: Union[int, str], id: Optional[int] = None, bfpcode: Optional[str] = None, bffb: Optional[str] = None, @@ -186,6 +186,7 @@ class ComprehensiveDataService: Returns: 查询结果字典 """ + account_id = int(account_id) # 强制转换为字符串,确保一致性 # 查询水准数据 level_data = self.level_service.search_level_data( db,