diff --git a/app/api/comprehensive_data.py b/app/api/comprehensive_data.py index 36d5e59..7f9462b 100644 --- a/app/api/comprehensive_data.py +++ b/app/api/comprehensive_data.py @@ -450,8 +450,8 @@ def get_today_data(request: TodayDataRequest, db: Session = Depends(get_db)): # account_id = request.account_id # 根据根据实际需求决定是否需要 # 触发定时任务(如果需要传入参数,可在这里添加) - # from ..utils.scheduler import scheduled_get_max_nyid_by_point_id - # scheduled_get_max_nyid_by_point_id() + from ..utils.scheduler import scheduled_get_max_nyid_by_point_id + scheduled_get_max_nyid_by_point_id() # 调用服务层获取数据 account_id = request.account_id @@ -527,6 +527,42 @@ def get_checkpoint_by_point(request: PointByAccountRequest, db: Session = Depend checkpoint_service = CheckpointService() result_data = checkpoint_service.get_by_point_id(db, point_id=point_id) + # 使用 __dict__ 转换(过滤内部属性) + if result_data: + # 复制字典并排除 SQLAlchemy 内部属性 + data_dict = result_data.__dict__.copy() + data_dict.pop('_sa_instance_state', None) # 移除ORM内部状态属性 + data_list = [data_dict] + else: + data_list = [] + + return DataResponse( + code=ResponseCode.SUCCESS, + message="查询成功", + total=len(data_list), + data=data_list + ) + except Exception as e: + logger.error(f"Query section data failed: {str(e)}") + return DataResponse( + code=ResponseCode.QUERY_FAILED, + message=f"{ResponseMessage.QUERY_FAILED}: {str(e)}", + total=0, + data=[] + ) + +# 根据水准线路获取所有的测点id +@router.post("/get_checkpoint_by_linecode", response_model=DataResponse) +def get_checkpoint_by_point(request: LevelDataQueryRequest, db: Session = Depends(get_db)): + """根据观测点ID获取观测点""" + try: + linecode = request.linecode + level_service = LevelDataService() + result_data = level_service.get_last_by_linecode(db, linecode=linecode) + NYID = result_data.NYID if result_data else None + settlement_service = SettlementDataService() + result_data = settlement_service.get_by_nyid(db, nyid=NYID) + # 使用 __dict__ 转换(过滤内部属性) if result_data: # 复制字典并排除 SQLAlchemy 内部属性