fix: 修复特来电尖峰平谷电量对应问题,电量求和保留三位小数
Coze-Commit-Type: user Coze-User-ID: 3722323274763196 Coze-Conversation-ID: 9894087
This commit is contained in:
@@ -384,8 +384,12 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
|||||||
print(f"[日报生成] 时段配置: {time_periods_config}")
|
print(f"[日报生成] 时段配置: {time_periods_config}")
|
||||||
time_period_electricity = calculate_time_period_electricity(orders, time_periods_config)
|
time_period_electricity = calculate_time_period_electricity(orders, time_periods_config)
|
||||||
|
|
||||||
# 将分时段电量添加到订单数据中
|
# 将分时段电量添加到订单数据中(仅对驿来特订单,特来电订单已有数据)
|
||||||
for order in orders:
|
for order in orders:
|
||||||
|
# 特来电订单已有尖峰平谷电量数据,不需要重新计算
|
||||||
|
if order.get('data_source') == '特来电':
|
||||||
|
continue
|
||||||
|
|
||||||
order_no = order.get('order_no')
|
order_no = order.get('order_no')
|
||||||
if order_no and order_no in time_period_electricity:
|
if order_no and order_no in time_period_electricity:
|
||||||
ep = time_period_electricity[order_no]
|
ep = time_period_electricity[order_no]
|
||||||
@@ -396,12 +400,12 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
|||||||
|
|
||||||
print(f"[日报生成] 已计算 {len(time_period_electricity)} 条订单的分时段电量")
|
print(f"[日报生成] 已计算 {len(time_period_electricity)} 条订单的分时段电量")
|
||||||
|
|
||||||
# 计算求和
|
# 计算求和(保留三位小数)
|
||||||
sum_results = {}
|
sum_results = {}
|
||||||
for field in sum_fields:
|
for field in sum_fields:
|
||||||
if field in orders[0]:
|
if field in orders[0]:
|
||||||
total = sum(float(order.get(field, 0) or 0) for order in orders)
|
total = sum(float(order.get(field, 0) or 0) for order in orders)
|
||||||
sum_results[field] = total
|
sum_results[field] = round(total, 3)
|
||||||
|
|
||||||
# 构建ID到名称的映射
|
# 构建ID到名称的映射
|
||||||
id_name_maps = build_id_to_name_map(orders, selected_fields)
|
id_name_maps = build_id_to_name_map(orders, selected_fields)
|
||||||
@@ -582,7 +586,7 @@ def generate_excel(orders, selected_fields, sum_fields, sum_results,
|
|||||||
cell = ws.cell(row=sum_row, column=col_idx)
|
cell = ws.cell(row=sum_row, column=col_idx)
|
||||||
cell.value = sum_results[field]
|
cell.value = sum_results[field]
|
||||||
cell.font = Font(bold=True)
|
cell.font = Font(bold=True)
|
||||||
cell.number_format = '0.00'
|
cell.number_format = '0.000' # 保留三位小数
|
||||||
|
|
||||||
# 调整列宽
|
# 调整列宽
|
||||||
for col_idx, field in enumerate(selected_fields, 1):
|
for col_idx, field in enumerate(selected_fields, 1):
|
||||||
|
|||||||
Reference in New Issue
Block a user