修改降雨逻辑

This commit is contained in:
wzy-warehouse
2026-05-06 13:07:58 +08:00
parent 5b04de9e7c
commit fe7614b99e
4 changed files with 341 additions and 94 deletions
+13 -12
View File
@@ -15,30 +15,31 @@ class RainfallRepository:
@staticmethod
def query_stations_rainfall(
query_time: datetime
query_time: datetime,
duration: int = 12
) -> List[Dict[str, Any]]:
"""
查询指定时间的站点降雨数据(自动查询前12小时)
查询指定时间的站点降雨数据(自动查询前12小时或24小时
Args:
query_time: 查询时间
duration: 持续时间(12或24小时)
Returns:
站点降雨数据列表
"""
sql = """
sql = f"""
SELECT
m.lon,
m.lat,
SUM(m.rainfall_1h::numeric) AS rainfall
FROM xian_meteorology m
WHERE m.datetime BETWEEN (
to_char(timestamp :query_time - interval '12 hours', 'YYYYMMDDHH24MISS')
lon,
lat,
SUM(rainfall_1h::numeric) AS rainfall
FROM xian_meteorology
WHERE datetime BETWEEN (
to_char(timestamp :query_time - interval '{duration} hours', 'YYYYMMDDHH24MISS')
)::bigint AND (
to_char(timestamp :query_time, 'YYYYMMDDHH24MISS')
)::bigint
GROUP BY m.lon, m.lat
ORDER BY rainfall DESC
GROUP BY lon, lat
"""
params = {
@@ -47,7 +48,7 @@ class RainfallRepository:
try:
result = db_manager.execute_raw_sql(sql, params)
logger.info(f"查询到 {len(result)} 个站点数据")
logger.info(f"查询到 {len(result)} 个站点数据{duration}小时)")
return result
except Exception as e:
logger.error(f"查询站点降雨数据失败: {e}")