feat: 规范报表名称格式,添加补单检测,设置充电量为必选字段
Coze-Commit-Type: user Coze-User-ID: 3722323274763196 Coze-Conversation-ID: 9894087
This commit is contained in:
@@ -376,6 +376,11 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
for order in orders:
|
||||
order['data_source'] = '驿来特'
|
||||
|
||||
# 检查是否有补单记录(finish_type = 2 表示补单结束)
|
||||
has_supplement = any(order.get('finish_type') == 2 for order in orders)
|
||||
if has_supplement:
|
||||
print(f"[日报生成] 检测到补单记录,将在文件名中添加标记")
|
||||
|
||||
# 检查是否需要合并特来电数据
|
||||
merge_telecom = config.get('merge_telecom', 0)
|
||||
telecom_vehicle_no = config.get('telecom_vehicle_no', '')
|
||||
@@ -390,6 +395,9 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
# 将特来电数据添加到订单列表
|
||||
orders.extend(telecom_orders)
|
||||
print(f"[日报生成] 合并后总订单数: {len(orders)}")
|
||||
# 检查特来电数据中是否有补单记录
|
||||
if not has_supplement:
|
||||
has_supplement = any(order.get('finish_type') == 2 for order in telecom_orders)
|
||||
|
||||
if not orders:
|
||||
# 即使没有数据,也保存一条失败记录
|
||||
@@ -455,7 +463,8 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
start_time=start_time_str,
|
||||
end_time=end_time_str,
|
||||
id_name_maps=id_name_maps,
|
||||
field_custom_names=config.get('field_custom_names')
|
||||
field_custom_names=config.get('field_custom_names'),
|
||||
has_supplement=has_supplement
|
||||
)
|
||||
|
||||
print(f"[日报生成] Excel文件已生成: {file_path}")
|
||||
@@ -530,13 +539,14 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
|
||||
def generate_excel(orders, selected_fields, sum_fields, sum_results,
|
||||
config_name, split_name, start_time, end_time,
|
||||
id_name_maps=None, field_custom_names=None):
|
||||
id_name_maps=None, field_custom_names=None, has_supplement=False):
|
||||
"""
|
||||
生成Excel文件
|
||||
|
||||
Args:
|
||||
id_name_maps: ID到名称的映射字典,格式为 {field_name: {id_value: name_value}}
|
||||
field_custom_names: 字段自定义名头字典,格式为 {field_key: custom_name}
|
||||
has_supplement: 是否有补单记录
|
||||
|
||||
Returns:
|
||||
str: 文件路径
|
||||
@@ -547,9 +557,17 @@ 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)
|
||||
|
||||
# 生成文件名
|
||||
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
||||
filename = f'daily_report_{config_name}_{split_name}_{timestamp}.xlsx'
|
||||
# 生成文件名 - 格式:配置名称_几月几日消费记录.xlsx
|
||||
# 从 end_time 提取日期(格式:2026-07-13 08:00:00)
|
||||
try:
|
||||
end_dt = datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S')
|
||||
date_str = f'{end_dt.month}月{end_dt.day}日'
|
||||
except:
|
||||
date_str = datetime.now().strftime('%m月%d日')
|
||||
|
||||
# 如果有补单,添加标记
|
||||
supplement_suffix = '_有补单' if has_supplement else ''
|
||||
filename = f'{config_name}_{date_str}消费记录{supplement_suffix}.xlsx'
|
||||
file_path = os.path.join(reports_dir, filename)
|
||||
|
||||
# 创建工作簿
|
||||
|
||||
Reference in New Issue
Block a user