1.修改冬休逻辑

2.修改沉降数据接口,多加一个aname字段
This commit is contained in:
whm
2025-11-26 06:25:49 +08:00
parent 354beb769e
commit 3f4a22ce67
3 changed files with 51 additions and 14 deletions

View File

@@ -10,6 +10,7 @@ from ..models.level_data import LevelData
from ..models.section_data import SectionData
import logging
from datetime import datetime
from sqlalchemy import distinct
logger = logging.getLogger(__name__)
class SettlementDataService(BaseService[SettlementData]):
@@ -48,7 +49,11 @@ class SettlementDataService(BaseService[SettlementData]):
skip: int = 0,
limit: Optional[int] = None) -> List[SettlementData]:
"""根据多个条件搜索沉降数据,按上传时间倒序排序"""
query = db.query(SettlementData)
# query = db.query(SettlementData)
# 返回数据多加一个 aname 字段
query = db.query(SettlementData, Checkpoint.aname).outerjoin(
Checkpoint, SettlementData.point_id == Checkpoint.point_id
)
if id is not None:
query = query.filter(SettlementData.id == id)
@@ -69,8 +74,15 @@ class SettlementDataService(BaseService[SettlementData]):
query = query.offset(skip)
if limit is not None and limit > 0:
query = query.limit(limit)
result_tuples = query.all()
settlement_data_list = []
for settlement, aname in result_tuples:
# 动态添加aname属性无匹配时为None
setattr(settlement, 'aname', aname)
settlement_data_list.append(settlement)
return query.all()
return settlement_data_list
# return query.all()
def search_settlement_data_by_point_ids_formatted(self, db: Session,
point_ids: List[str],
@@ -176,7 +188,9 @@ class SettlementDataService(BaseService[SettlementData]):
limit: Optional[int] = None) -> Dict[str, Any]:
"""查询沉降数据并返回格式化结果,按上传时间倒序排序(支持分页)"""
# 先获取总数(不计分页)
count_query = db.query(SettlementData)
count_query = db.query(distinct(SettlementData.id)).outerjoin(
Checkpoint, SettlementData.point_id == Checkpoint.point_id
)
if id is not None:
count_query = count_query.filter(SettlementData.id == id)
if point_id is not None:
@@ -196,6 +210,7 @@ class SettlementDataService(BaseService[SettlementData]):
for settlement in settlement_data:
settlement_dict = {
"id": settlement.id,
"aname": settlement.aname,
"point_id": settlement.point_id,
"CVALUE": settlement.CVALUE,
"MAVALUE": settlement.MAVALUE,