获取观测点id接口修改
This commit is contained in:
@@ -35,7 +35,21 @@ async def get_point_ids_by_linecode(
|
||||
checkpoint_service = CheckpointService()
|
||||
|
||||
try:
|
||||
point_ids,point_id_dict = checkpoint_service.get_point_ids_by_linecode(db, request.linecode)
|
||||
print( f"Fetching point IDs for linecode: {request.linecode}" )
|
||||
point_ids, point_id_dict = checkpoint_service.get_point_ids_by_linecode(db, request.linecode)
|
||||
|
||||
# 检查结果是否为空
|
||||
if not point_ids or len(point_ids) == 0:
|
||||
return {
|
||||
"code": 0,
|
||||
"message": f"未找到线路编码 '{request.linecode}' 对应的观测点数据",
|
||||
"data": {
|
||||
"linecode": request.linecode,
|
||||
"point_ids": [],
|
||||
"point_id_dict": {},
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
"code": 0,
|
||||
@@ -48,4 +62,13 @@ async def get_point_ids_by_linecode(
|
||||
}
|
||||
}
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"查询失败: {str(e)}")
|
||||
return {
|
||||
"code": 500,
|
||||
"message": f"查询失败: {str(e)}",
|
||||
"data": {
|
||||
"linecode": request.linecode,
|
||||
"point_ids": [],
|
||||
"point_id_dict": {},
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,17 +241,22 @@ class CheckpointService(BaseService[Checkpoint]):
|
||||
from ..models.settlement_data import SettlementData
|
||||
|
||||
# 1. 根据linecode查询水准数据表,获取所有NYID(去重)
|
||||
print(linecode)
|
||||
nyid_query = db.query(LevelData.NYID).filter(LevelData.linecode == linecode).distinct()
|
||||
nyid_list = [result.NYID for result in nyid_query.all() if result.NYID]
|
||||
nyid_list = nyid_query.all()
|
||||
|
||||
if not nyid_list:
|
||||
return []
|
||||
print(nyid_list)
|
||||
print("get_point_ids_by_linecode", nyid_list)
|
||||
|
||||
if not nyid_list or len(nyid_list) == 0:
|
||||
return [], {}
|
||||
print("nyid_list", nyid_list)
|
||||
nyid_list = [result.NYID for result in nyid_list if result.NYID]
|
||||
# print(nyid_list)
|
||||
|
||||
max_nyid_str = max(nyid_list, key=int)
|
||||
nyid_list = []
|
||||
nyid_list.append(max_nyid_str)
|
||||
print(nyid_list)
|
||||
# print(nyid_list)
|
||||
|
||||
# 2. 根据NYID列表查询沉降数据表,获取所有point_id(去重)
|
||||
point_id_query = db.query(
|
||||
@@ -260,8 +265,13 @@ class CheckpointService(BaseService[Checkpoint]):
|
||||
SettlementData.NYID.in_(nyid_list)
|
||||
).distinct()
|
||||
|
||||
# print(point_id_query)
|
||||
point_id_list = [f'{result.point_id}' for result in point_id_query.all() if result.point_id]
|
||||
# -{db.query(Checkpoint.aname).filter(Checkpoint.point_id == result.point_id).first().aname}
|
||||
point_id_dict = {item :db.query(Checkpoint.aname).filter(Checkpoint.point_id == item).first().aname for item in point_id_list}
|
||||
|
||||
return point_id_list,point_id_dict
|
||||
point_id_dict = {}
|
||||
print(point_id_dict)
|
||||
for item in point_id_list:
|
||||
checkpoint = db.query(Checkpoint.aname).filter(Checkpoint.point_id == item).first()
|
||||
point_id_dict[item] = checkpoint.aname if checkpoint else None
|
||||
# print(f"111" ,point_id_dict)
|
||||
return point_id_list, point_id_dict
|
||||
|
||||
Reference in New Issue
Block a user