From faa25a85c10aa0fa2df824318a4bfa542f6a5a46 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期二, 20 一月 2026 13:26:55 +0800
Subject: [PATCH] feat(services): 添加主流程服务并重构时间处理逻辑
---
app/services/extruder_service.py | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/app/services/extruder_service.py b/app/services/extruder_service.py
index 4ecfd70..b22eed3 100644
--- a/app/services/extruder_service.py
+++ b/app/services/extruder_service.py
@@ -1,19 +1,25 @@
import pandas as pd
from functools import lru_cache
+from datetime import timedelta
from app.database.database import DatabaseConnection
class ExtruderService:
def __init__(self):
self.db = DatabaseConnection()
+ self.timezone_offset = 8 # 榛樿涓滃叓鍖猴紙鍖椾含鏃堕棿锛�
def get_extruder_data(self, start_date, end_date):
"""
鏌ヨ鎸ゅ嚭鏈烘暟鎹�
- :param start_date: 寮�濮嬫棩鏈�
- :param end_date: 缁撴潫鏃ユ湡
- :return: 鍖呭惈鎸ゅ嚭鏈烘暟鎹殑鏁版嵁妗�
+ :param start_date: 寮�濮嬫棩鏈� (鏈湴鏃堕棿)
+ :param end_date: 缁撴潫鏃ユ湡 (鏈湴鏃堕棿)
+ :return: 鍖呭惈鎸ゅ嚭鏈烘暟鎹殑鏁版嵁妗� (杩斿洖鏈湴鏃堕棿)
"""
try:
+ # 灏嗘湰鍦版椂闂磋浆鎹负UTC鏃堕棿杩涜鏌ヨ
+ start_date_utc = start_date - timedelta(hours=self.timezone_offset)
+ end_date_utc = end_date - timedelta(hours=self.timezone_offset)
+
# 杩炴帴鏁版嵁搴�
if not self.db.is_connected():
if not self.db.connect():
@@ -47,7 +53,11 @@
"""
# 鎵ц鏌ヨ骞惰浆鎹负DataFrame
- df = pd.read_sql(query, connection, params=(start_date, end_date))
+ df = pd.read_sql(query, connection, params=(start_date_utc, end_date_utc))
+
+ # 灏嗘煡璇㈢粨鏋滀腑鐨刄TC鏃堕棿杞崲鍥炴湰鍦版椂闂�
+ if not df.empty and 'time' in df.columns:
+ df['time'] = pd.to_datetime(df['time']) + timedelta(hours=self.timezone_offset)
return df
except Exception as e:
@@ -75,9 +85,8 @@
batch_df['compound_code_shift'] = batch_df['compound_code'].shift(1)
# 鑻ュ綋鍓嶈 compound_code 涓庡墠涓�琛屼笉鍚岋紝鍒欐爣璁颁负鎹㈡壒锛�1锛夛紝鍚﹀垯涓� 0 锛岀涓�琛岀壒娈婂鐞嗕负 0
batch_df['is_batch_change'] = (batch_df['compound_code'] != batch_df['compound_code_shift']).astype(int)
- batch_df['is_batch_change'].iloc[0] = 0
- # 鎵撳嵃batch_df
- print(batch_df)
+ batch_df.loc[batch_df.index[0], 'is_batch_change'] = 0
+
# 鎻愬彇鎵�鏈夋崲鎵逛簨浠剁殑绱㈠紩
change_indices = batch_df[batch_df['is_batch_change'] == 1].index.tolist()
--
Gitblit v1.9.3