1.修改推理逻辑,useflag为1的也参与推理,之前是不用的点是1,正常的是0,现在发现正常的也有1,目前未知此参数具体作用。

This commit is contained in:
whm
2026-03-13 16:46:10 +08:00
parent ed0d840aee
commit dd9f31ee52
4 changed files with 74 additions and 85 deletions

View File

@@ -115,11 +115,8 @@ class DailyDataService(BaseService[DailyData]):
# 模型字段列表
model_columns = [getattr(SettlementData, col.name) for col in SettlementData.__table__.columns]
# 基础条件
base_conditions = [
SettlementData.useflag.isnot(None),
SettlementData.useflag != 0
]
# 基础条件:不按 useflag 过滤,确保能取到每个 point 的真正最新一期(按 NYID 最大)
base_conditions = []
if point_ids:
base_conditions.append(SettlementData.point_id.in_(point_ids))

View File

@@ -30,6 +30,21 @@ class SettlementDataService(BaseService[SettlementData]):
def get_by_nyid(self, db: Session, nyid: str) -> List[SettlementData]:
"""根据期数ID获取沉降数据"""
return self.get_by_field(db, "NYID", nyid)
def get_one_dict_by_nyid(self, db: Session, nyid: str) -> Optional[Dict[str, Any]]:
"""根据期数ID取一条沉降记录并转为字典供推理/到期计算用datetime 转为字符串)"""
row = db.query(SettlementData).filter(SettlementData.NYID == nyid).first()
if not row:
return None
field_names = [c.name for c in SettlementData.__table__.columns]
item = {}
for k in field_names:
v = getattr(row, k)
if isinstance(v, datetime):
item[k] = v.strftime("%Y-%m-%d %H:%M:%S")
else:
item[k] = v
return item
def get_by_nyid_and_point_id(self, db: Session, nyid: str, point_id: str) -> List[SettlementData]:
"""根据期数ID和观测点ID获取沉降数据"""
return self.get_by_field(db, "NYID", nyid, "point_id", point_id)