From ea609a57e55a11e7a3c43700bbe408b2e541e012 Mon Sep 17 00:00:00 2001 From: whm <973418690@qq.com> Date: Sat, 15 Nov 2025 01:46:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E7=BA=BF=E4=B8=8A=E6=AF=8F=E6=97=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/comprehensive_data.py | 40 +++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) 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 内部属性