修改降雨逻辑
This commit is contained in:
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user