From 52dd03c36d6b29b12da64520aa8ecf24c7e46dd0 Mon Sep 17 00:00:00 2001 From: liyxie Date: Thu, 6 Nov 2025 22:46:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/utils/scheduler.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/utils/scheduler.py b/app/utils/scheduler.py index fd1e730..db56b94 100644 --- a/app/utils/scheduler.py +++ b/app/utils/scheduler.py @@ -81,7 +81,6 @@ class TaskScheduler: # 添加每天午夜12点重置today_updated字段的任务 self.scheduler.add_job( reset_today_updated_task, - scheduled_get_max_nyid_by_point_id, 'cron', id='daily_reset_today_updated', hour=0, @@ -90,6 +89,20 @@ class TaskScheduler: name='每日重置账号更新状态' ) logger.info("系统定时任务:每日重置账号更新状态已添加") + existing_job = None + existing_job = self.scheduler.get_job("scheduled_get_max_nyid_by_point_id") + if not existing_job: + # 添加每天凌晨1点执行获取max NYID关联数据任务 + self.scheduler.add_job( + scheduled_get_max_nyid_by_point_id, + 'cron', + id='scheduled_get_max_nyid_by_point_id', + hour=1, + minute=0, + second=0, + name='每日获取max NYID关联数据并创建DailyData记录' + ) + logger.info("系统定时任务:每日获取max NYID关联数据任务已添加") except Exception as e: logger.error(f"设置系统定时任务失败: {e}") @@ -205,6 +218,7 @@ def scheduled_get_max_nyid_by_point_id(): """定时任务:获取max NYID关联数据并批量创建DailyData记录""" db: Session = None try: + logger.info("定时任务触发:开始获取max NYID关联数据并处理") # 初始化数据库会话(替代接口的Depends依赖) db = SessionLocal() logger.info("定时任务开始执行:获取max NYID关联数据并处理") From a60720a85edc22edb7ed928b6850c2a7a4feec5c Mon Sep 17 00:00:00 2001 From: whm <973418690@qq.com> Date: Fri, 7 Nov 2025 02:26:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1.=E6=AF=8F=E6=97=A5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF=E6=95=B0=E6=8D=AE=E4=B8=80?= =?UTF-8?q?=E8=B5=B7=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/utils/scheduler.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/utils/scheduler.py b/app/utils/scheduler.py index 15f0885..32862ec 100644 --- a/app/utils/scheduler.py +++ b/app/utils/scheduler.py @@ -253,7 +253,9 @@ def scheduled_get_max_nyid_by_point_id(): # 更新冬休、待处理、错误数据 winters = w_list['winter'] data.extend(w_list['data']) - error_data.extend(w_list['error_data']) + # 过期数据一并处理 + data.extend(w_list['error_data']) + # error_data.extend(w_list['error_data']) # 4. 初始化服务实例 level_service = LevelDataService() From 47af64d1e197f298851cfa9e6969db855de4fd83 Mon Sep 17 00:00:00 2001 From: whm <973418690@qq.com> Date: Fri, 7 Nov 2025 10:57:10 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.=E8=AE=BE=E7=BD=AE=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8F=98=E9=87=8F=202.=E6=8A=8A=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E4=BF=A1=E6=81=AF=E4=B8=80=E5=B9=B6=E6=8A=93=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/comprehensive_data.py | 1 + app/models/daily.py | 1 + app/utils/scheduler.py | 9 +++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/api/comprehensive_data.py b/app/api/comprehensive_data.py index 6917bae..07580a5 100644 --- a/app/api/comprehensive_data.py +++ b/app/api/comprehensive_data.py @@ -394,6 +394,7 @@ def get_today_data(request: TodayDataRequest, db: Session = Depends(get_db)): # account_id = request.account_id # 根据根据实际需求决定是否需要 # 触发定时任务(如果需要传入参数,可在这里添加) + # from ..utils.scheduler import scheduled_get_max_nyid_by_point_id # scheduled_get_max_nyid_by_point_id() # 调用服务层获取数据 diff --git a/app/models/daily.py b/app/models/daily.py index 2c45f1b..ad9a470 100644 --- a/app/models/daily.py +++ b/app/models/daily.py @@ -13,3 +13,4 @@ class DailyData(Base): section_id = Column(String(255), nullable=False, comment="所属断面id") remaining = Column(Integer, nullable=False, comment="剩余天数") user_id = Column(Integer, default=1, nullable=False, comment="用户id") + is_all = Column(Integer, default=1, nullable=False, comment="是否全量数据") diff --git a/app/utils/scheduler.py b/app/utils/scheduler.py index 32862ec..f3d039a 100644 --- a/app/utils/scheduler.py +++ b/app/utils/scheduler.py @@ -238,6 +238,7 @@ def scheduled_get_max_nyid_by_point_id(): daily_data = monitor.get_due_data(result) data = daily_data['data'] error_data = daily_data['error_data'] + winters = daily_data['winter'] logger.info(f"首次获取数据完成,共{len(result)}条记录") @@ -254,9 +255,9 @@ def scheduled_get_max_nyid_by_point_id(): winters = w_list['winter'] data.extend(w_list['data']) # 过期数据一并处理 - data.extend(w_list['error_data']) - # error_data.extend(w_list['error_data']) - + # data.extend(w_list['error_data']) + error_data.extend(w_list['error_data']) + data.extend(error_data) # 4. 初始化服务实例 level_service = LevelDataService() checkpoint_db = CheckpointService() @@ -299,7 +300,7 @@ def scheduled_get_max_nyid_by_point_id(): 'linecode': d['level_data']['linecode'], 'account_id': d['account_data']['account_id'], 'section_id': d['section_data']['section_id'], - 'remaining': d['remaining'], + 'remaining': (0-int(d['overdue'])) if 'overdue' in d else d['remaining'], } daily_create_data.append(tem)