增加标段获取最大水准数据
This commit is contained in:
@@ -148,7 +148,7 @@ class LevelDataService(BaseService[LevelData]):
|
||||
'failed_items': failed_items
|
||||
}
|
||||
|
||||
def get_level_data_by_project_name(self, db: Session, project_name: str) -> List[Dict[str, Any]]:
|
||||
def get_level_data_by_project_name(self, db: Session, project_name: str, nyid_max: bool = False) -> List[Dict[str, Any]]:
|
||||
"""
|
||||
通过project_name获取全部水准线路
|
||||
业务逻辑:
|
||||
@@ -198,11 +198,17 @@ class LevelDataService(BaseService[LevelData]):
|
||||
nyid_list = list(set([settlement.NYID for settlement in settlements if settlement.NYID]))
|
||||
logger.info(f"查询到{len(nyid_list)}个期数ID")
|
||||
|
||||
# 5. 查询水准数据表获取水准数据 (通过NYID)
|
||||
level_data_list = db.query(LevelData).filter(LevelData.NYID.in_(nyid_list)).all()
|
||||
if not level_data_list:
|
||||
logger.warning(f"未查询到对应的水准数据")
|
||||
return []
|
||||
if nyid_max:
|
||||
# 只获取最新期数的水准数据
|
||||
nyid_list = [max(nyid_list, key=int)]
|
||||
logger.info(f"筛选后只获取最新期数ID: {nyid_list}")
|
||||
level_data_list = db.query(LevelData).filter(LevelData.NYID.in_(nyid_list)).all()
|
||||
else:
|
||||
# 5. 查询水准数据表获取水准数据 (通过NYID)
|
||||
level_data_list = db.query(LevelData).filter(LevelData.NYID.in_(nyid_list)).all()
|
||||
if not level_data_list:
|
||||
logger.warning(f"未查询到对应的水准数据")
|
||||
return []
|
||||
|
||||
# 6. 将水准数据依照linecode去重(同linecode只需保留一个)
|
||||
linecode_seen = set()
|
||||
|
||||
Reference in New Issue
Block a user