From c9cd96cca212c33d5487e571205a9e1d576e90b7 Mon Sep 17 00:00:00 2001 From: wzy-warehouse <18135009705@163.com> Date: Fri, 5 Jun 2026 15:02:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + app/repositories/rainfall_repository.py | 28 ++++++++++++------------- requirements.txt | 3 ++- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 5cbe18a..555c24f 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ htmlcov/ # Ignore dynaconf secret files .secrets.* +/test/ diff --git a/app/repositories/rainfall_repository.py b/app/repositories/rainfall_repository.py index 79ff12c..06b57d4 100644 --- a/app/repositories/rainfall_repository.py +++ b/app/repositories/rainfall_repository.py @@ -13,23 +13,23 @@ class RainfallRepository: def get_max_rainfall_id(self, query_time: datetime) -> Optional[int]: """ 查询数据库中指定时间窗口内的最大ID - + Args: query_time: 查询时间 - + Returns: 最大ID,如果没有数据则返回None """ sql = """ - SELECT max(id) as max_id - FROM xian_meteorology + SELECT max(id) as max_id + FROM xian_meteorology WHERE datetime BETWEEN ( - to_char(timestamp %s - interval '12 hours', 'YYYYMMDDHH24MISS') + to_char(%s::timestamp - interval '12 hours', 'YYYYMMDDHH24MISS') )::bigint AND ( - to_char(timestamp %s, 'YYYYMMDDHH24MISS') + to_char(%s::timestamp, 'YYYYMMDDHH24MISS') )::bigint """ - + result = db_helper.execute_query_one(sql, (query_time, query_time)) if result and result.get('max_id'): @@ -39,23 +39,23 @@ class RainfallRepository: def get_rainfall_stations_data(self, query_time: datetime) -> List[Dict[str, Any]]: """ 查询雨量站点降雨数据 - + Args: query_time: 查询时间 - + Returns: 站点数据列表,每个元素包含lon, lat, rainfall """ sql = """ - SELECT - lon, - lat, + SELECT + lon, + lat, SUM(rainfall_1h::numeric) AS rainfall FROM xian_meteorology WHERE datetime BETWEEN ( - to_char(timestamp %s - interval '12 hours', 'YYYYMMDDHH24MISS') + to_char(%s::timestamp - interval '12 hours', 'YYYYMMDDHH24MISS') )::bigint AND ( - to_char(timestamp %s, 'YYYYMMDDHH24MISS') + to_char(%s::timestamp, 'YYYYMMDDHH24MISS') )::bigint GROUP BY lon, lat """ diff --git a/requirements.txt b/requirements.txt index ee4674e..a0ff547 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,5 @@ redis == 7.4.0 numpy == 2.4.4 scipy == 1.17.1 matplotlib == 3.10.0 -Pillow == 11.0.0 \ No newline at end of file +Pillow == 12.2.0 +pyyaml == 6.0.2 \ No newline at end of file