细节修改

This commit is contained in:
2026-07-20 16:42:56 +08:00
parent 70ae08fa50
commit 404450b779
6 changed files with 43 additions and 19 deletions

View File

@@ -28,7 +28,7 @@ def get_connection():
conn = pymysql.connect(**DB_CONFIG)
yield conn
except pymysql.Error as e:
log_error(f'数据库连接失败: {e}', 'db')
log_error(f'数据库连接失败: {e}', 'db', exc_info=True)
raise
finally:
try:
@@ -46,7 +46,7 @@ def execute_query(sql, params=None):
result = cursor.fetchall()
return result
except Exception as e:
log_error(f'查询失败: {e}\nSQL: {sql}\nParams: {params}', 'db')
log_error(f'查询失败: {e}\nSQL: {sql}\nParams: {params}', 'db', exc_info=True)
raise
@@ -58,7 +58,7 @@ def execute_update(sql, params=None):
affected = cursor.execute(sql, params)
return cursor.rowcount
except Exception as e:
log_error(f'更新失败: {e}\nSQL: {sql}\nParams: {params}', 'db')
log_error(f'更新失败: {e}\nSQL: {sql}\nParams: {params}', 'db', exc_info=True)
raise
@@ -71,5 +71,5 @@ def execute_insert(sql, params=None):
last_id = cursor.lastrowid
return last_id
except Exception as e:
log_error(f'插入失败: {e}\nSQL: {sql}\nParams: {params}', 'db')
log_error(f'插入失败: {e}\nSQL: {sql}\nParams: {params}', 'db', exc_info=True)
raise

View File

@@ -34,6 +34,11 @@ def _add_column_if_not_exists(table_name, column_def_sql, column_name):
return False
def _set_table_comment(table_name, comment):
"""设置表备注Doris暂不支持通过SQL修改表注释预留函数"""
pass
def init_database_tables():
"""初始化所有数据库表(应用启动时自动调用)"""
try:
@@ -64,6 +69,7 @@ def init_database_tables():
PROPERTIES("replication_num" = "1")
"""
execute_update(create_config_table)
_set_table_comment('t_daily_report_config', '日报配置表')
log_info("[数据库] t_daily_report_config 表已就绪", 'db_init')
# 创建历史表
@@ -90,6 +96,7 @@ def init_database_tables():
PROPERTIES("replication_num" = "1")
"""
execute_update(create_history_table)
_set_table_comment('t_daily_report_history', '日报生成历史记录表')
log_info("[数据库] t_daily_report_history 表已就绪", 'db_init')
# 为已存在的表添加 config_name 字段(如果不存在)
@@ -124,6 +131,7 @@ def init_database_tables():
PROPERTIES("replication_num" = "1")
"""
execute_update(create_sum_data_table)
_set_table_comment('t_daily_report_sum_data', '日报求和数据采集表')
log_info("[数据库] t_daily_report_sum_data 表已就绪", 'db_init')
# 给配置表增加 show_monthly_total 字段
@@ -176,5 +184,5 @@ def init_database_tables():
log_info("[数据库] 初始化完成", 'db_init')
return True
except Exception as e:
log_error(f"[数据库] 初始化失败: {e}", 'db_init')
log_error(f"[数据库] 初始化失败: {e}", 'db_init', exc_info=True)
return False

View File

@@ -1,4 +1,5 @@
import os
import sys
import logging
from logging.handlers import RotatingFileHandler
from datetime import datetime
@@ -68,11 +69,21 @@ def log_info(message, module='app'):
get_logger(module).info(message)
def log_error(message, module='app'):
"""记录错误日志"""
get_logger(module).error(message)
import traceback
get_logger(module).error(traceback.format_exc())
def log_error(message, module='app', exc_info=True):
"""记录错误日志
Args:
message: 错误信息
module: 模块名
exc_info: 是否包含异常堆栈默认True在except块中调用时自动打印堆栈
"""
logger = get_logger(module)
logger.error(message)
if exc_info:
import traceback
tb = traceback.format_exc()
if 'NoneType: None' not in tb:
logger.error(tb)
def log_warning(message, module='app'):

View File

@@ -591,7 +591,7 @@ def generate_excel(orders, selected_fields, sum_fields, sum_results,
reports_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'public', 'reports')
os.makedirs(reports_dir, exist_ok=True)
# 生成文件名 - 格式:序号_配置名称_几月几日消费记录.xlsx
# 生成文件名 - 格式配置名称_几月几日消费记录.xlsx
# 从 start_time 提取日期(报表数据对应的是开始时间那天的数据)
try:
start_dt = datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S')
@@ -602,12 +602,7 @@ def generate_excel(orders, selected_fields, sum_fields, sum_results,
# 如果有补单,添加标记
supplement_suffix = '_有补单' if has_supplement else ''
# 顺序号前缀(两位数字,不足补零)
sort_prefix = ''
if sort_order:
sort_prefix = f'{sort_order:02d}_'
filename = f'{sort_prefix}{config_name}_{date_str}消费记录{supplement_suffix}.xlsx'
filename = f'{config_name}_{date_str}消费记录{supplement_suffix}.xlsx'
file_path = os.path.join(reports_dir, filename)
# 创建工作簿