添加特来电报表的结束原因
This commit is contained in:
@@ -195,6 +195,34 @@ def get_all_fields_with_display():
|
||||
"""获取所有字段,包含key和显示名称"""
|
||||
return [{'key': k, 'display': v} for k, v in FIELD_MAPPING.items()]
|
||||
|
||||
# 结束原因映射(finish_type + finish_code -> 中文原因)
|
||||
# finish_type: 1=正常结束, 2=补单结束
|
||||
FINISH_REASON_MAPPING = {
|
||||
(1, 0): '正常结束',
|
||||
(1, 1): '充电异常',
|
||||
(1, 2): '用户取消',
|
||||
(1, 3): '设备故障',
|
||||
(1, 4): '网络异常',
|
||||
(1, 5): '超时',
|
||||
(1, 6): '过温保护',
|
||||
(1, 7): '过流保护',
|
||||
(1, 8): '欠压保护',
|
||||
(1, 9): '过压保护',
|
||||
(1, 10): '接地故障',
|
||||
(1, 11): '绝缘故障',
|
||||
(1, 12): '通信故障',
|
||||
(1, 13): '计费异常',
|
||||
(1, 14): '结算异常',
|
||||
(1, 15): '卡异常',
|
||||
(1, 16): '授权失败',
|
||||
(1, 17): '余额不足',
|
||||
(1, 18): '功率受限',
|
||||
(1, 19): '充电中断',
|
||||
(1, 20): '自动充满',
|
||||
(2, 0): '补单结束',
|
||||
}
|
||||
|
||||
|
||||
# 默认字段列表(常用字段)
|
||||
DEFAULT_FIELDS = [
|
||||
'order_no',
|
||||
@@ -208,3 +236,28 @@ DEFAULT_FIELDS = [
|
||||
'state',
|
||||
'report_time'
|
||||
]
|
||||
|
||||
|
||||
# 获取结束原因
|
||||
def get_finish_reason(finish_type, finish_code, finish_msg):
|
||||
"""
|
||||
根据finish_type和finish_code获取中文结束原因
|
||||
|
||||
Args:
|
||||
finish_type: 完成类型
|
||||
finish_code: 完成代码
|
||||
finish_msg: 原始结束消息(作为后备)
|
||||
|
||||
Returns:
|
||||
str: 中文结束原因
|
||||
"""
|
||||
key = (finish_type, finish_code)
|
||||
if key in FINISH_REASON_MAPPING:
|
||||
return FINISH_REASON_MAPPING[key]
|
||||
|
||||
# 如果finish_msg有效,直接使用
|
||||
if finish_msg and finish_msg not in ('停止原因无效', '未知原因', 'None'):
|
||||
return finish_msg
|
||||
|
||||
# 默认返回
|
||||
return '未知原因'
|
||||
|
||||
@@ -9,7 +9,7 @@ from openpyxl.styles import Font, Alignment, PatternFill
|
||||
import pytz
|
||||
|
||||
from lib.db import execute_query, execute_insert, execute_update
|
||||
from lib.field_mapping import get_field_display_name
|
||||
from lib.field_mapping import get_field_display_name, get_finish_reason
|
||||
from lib.logger import log_info, log_error, log_warning
|
||||
|
||||
|
||||
@@ -391,9 +391,15 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
|
||||
log_info(f"[日报生成] 驿来特查询到 {len(orders)} 条订单", 'report')
|
||||
|
||||
# 添加数据来源标记
|
||||
# 添加数据来源标记并转换结束原因
|
||||
for order in orders:
|
||||
order['data_source'] = '驿来特'
|
||||
# 转换结束原因
|
||||
finish_type = order.get('finish_type')
|
||||
finish_code = order.get('finish_code')
|
||||
finish_msg = order.get('finish_msg')
|
||||
if finish_type is not None:
|
||||
order['finish_msg'] = get_finish_reason(finish_type, finish_code, finish_msg)
|
||||
|
||||
# 检查是否有补单记录(finish_type = 2 表示补单结束)
|
||||
has_supplement = any(order.get('finish_type') == 2 for order in orders)
|
||||
|
||||
Reference in New Issue
Block a user