1,修复驿来特没有数据,只特来电有,不生成报表的问题。
2,增加历史记录,每页显示多少条的功能。
This commit is contained in:
@@ -53,7 +53,8 @@ def get_report_history():
|
||||
page_size = int(request.args.get('page_size', 20))
|
||||
start_date = request.args.get('start_date')
|
||||
end_date = request.args.get('end_date')
|
||||
log_info(f'[报表API] 获取历史记录,第{page}页,日期范围: {start_date or "开始"} ~ {end_date or "结束"}', 'api')
|
||||
status = request.args.get('status')
|
||||
log_info(f'[报表API] 获取历史记录,第{page}页,状态: {status or "全部"},日期范围: {start_date or "开始"} ~ {end_date or "结束"}', 'api')
|
||||
|
||||
offset = (page - 1) * page_size
|
||||
|
||||
@@ -69,6 +70,10 @@ def get_report_history():
|
||||
where_clauses.append('DATE(end_time) <= %s')
|
||||
params.append(end_date)
|
||||
|
||||
if status is not None and status != '':
|
||||
where_clauses.append('status = %s')
|
||||
params.append(int(status))
|
||||
|
||||
where_sql = ' AND '.join(where_clauses) if where_clauses else '1=1'
|
||||
|
||||
# 查询总数
|
||||
|
||||
@@ -370,6 +370,8 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
|
||||
# 执行查询
|
||||
orders = execute_query(sql, tuple(params))
|
||||
# 转换为列表,方便后续添加特来电数据
|
||||
orders = list(orders) if orders else []
|
||||
|
||||
log_info(f"[日报生成] 驿来特查询到 {len(orders)} 条订单", 'report')
|
||||
|
||||
@@ -383,8 +385,8 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
log_info(f"[日报生成] 检测到补单记录,将在文件名中添加标记", 'report')
|
||||
|
||||
# 检查是否需要合并特来电数据
|
||||
merge_telecom = config.get('merge_telecom', 0)
|
||||
telecom_vehicle_no = config.get('telecom_vehicle_no', '')
|
||||
merge_telecom = config.get('merge_telecom') or 0
|
||||
telecom_vehicle_no = config.get('telecom_vehicle_no') or ''
|
||||
|
||||
if merge_telecom and config['split_type'] == 'company_id' and telecom_vehicle_no:
|
||||
# 解析车量自编号(支持逗号分隔的多个)
|
||||
@@ -392,6 +394,7 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
if vehicle_nos:
|
||||
log_info(f"[日报生成] 开始合并特来电数据,车量自编号: {vehicle_nos}", 'report')
|
||||
telecom_orders = query_telecom_orders(vehicle_nos, start_time_str, end_time_str)
|
||||
log_info(f"[日报生成] 特来电查询到 {len(telecom_orders)} 条订单", 'report')
|
||||
if telecom_orders:
|
||||
# 将特来电数据添加到订单列表
|
||||
orders.extend(telecom_orders)
|
||||
@@ -447,15 +450,19 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
# 计算求和(保留三位小数)
|
||||
sum_results = {}
|
||||
for field in sum_fields:
|
||||
if field in orders[0]:
|
||||
# 检查是否至少有一条订单包含该字段
|
||||
has_field = any(field in order for order in orders)
|
||||
if has_field:
|
||||
total = sum(float(order.get(field, 0) or 0) for order in orders)
|
||||
sum_results[field] = round(total, 3)
|
||||
|
||||
# 强制采集充电电量(charge_degree),即使不在求和字段配置中也要采集
|
||||
if 'charge_degree' not in sum_results and orders and 'charge_degree' in orders[0]:
|
||||
total_charge_degree = sum(float(order.get('charge_degree', 0) or 0) for order in orders)
|
||||
sum_results['charge_degree'] = round(total_charge_degree, 3)
|
||||
log_info(f"[日报生成] 强制采集充电电量: {sum_results['charge_degree']} kWh", 'report')
|
||||
if 'charge_degree' not in sum_results and orders:
|
||||
has_charge_degree = any('charge_degree' in order for order in orders)
|
||||
if has_charge_degree:
|
||||
total_charge_degree = sum(float(order.get('charge_degree', 0) or 0) for order in orders)
|
||||
sum_results['charge_degree'] = round(total_charge_degree, 3)
|
||||
log_info(f"[日报生成] 强制采集充电电量: {sum_results['charge_degree']} kWh", 'report')
|
||||
|
||||
# 构建ID到名称的映射
|
||||
id_name_maps = build_id_to_name_map(orders, selected_fields)
|
||||
|
||||
Reference in New Issue
Block a user