diff --git a/lib/report_generator.py b/lib/report_generator.py index 5415412..0fbe383 100644 --- a/lib/report_generator.py +++ b/lib/report_generator.py @@ -384,8 +384,12 @@ def generate_daily_report(config_id, start_time=None, end_time=None): print(f"[日报生成] 时段配置: {time_periods_config}") time_period_electricity = calculate_time_period_electricity(orders, time_periods_config) - # 将分时段电量添加到订单数据中 + # 将分时段电量添加到订单数据中(仅对驿来特订单,特来电订单已有数据) for order in orders: + # 特来电订单已有尖峰平谷电量数据,不需要重新计算 + if order.get('data_source') == '特来电': + continue + order_no = order.get('order_no') if order_no and order_no in time_period_electricity: 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)} 条订单的分时段电量") - # 计算求和 + # 计算求和(保留三位小数) sum_results = {} for field in sum_fields: if field in orders[0]: 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_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.value = sum_results[field] cell.font = Font(bold=True) - cell.number_format = '0.00' + cell.number_format = '0.000' # 保留三位小数 # 调整列宽 for col_idx, field in enumerate(selected_fields, 1):