Files
ylt_diy/lib/field_mapping.py
user9994793890 81945f467a feat: 添加合并特来电平台数据功能
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 11:11:10 +08:00

207 lines
6.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
字段映射配置
将数据库字段名映射为中文显示名
"""
# 字段映射(根据实际数据库表结构)
FIELD_MAPPING = {
# 基础信息
'id': '订单ID',
'order_no': '订单号',
'platform_order_no': '平台订单号',
'order_type': '订单类型',
'order_time': '订单时间',
'state': '订单状态',
'operate_state': '操作状态',
# 用户信息
'user_id': '用户ID',
'user_card_no': '用户卡号',
'company_id': '企业ID',
'charge_plate_no': '车牌号',
'charge_vin': 'VIN码',
# 充电站信息
'station_id': '充电站ID',
'equipment_id': '设备ID',
'connector_id': '连接器ID',
# 充电时间
'charge_begin_time': '充电开始时间',
'charge_end_time': '充电结束时间',
'charge_duration': '充电时长(秒)',
# 充电电量
'charge_begin_degree': '开始电量',
'charge_end_degree': '结束电量',
'charge_degree': '充电电量(kWh)',
'charge_ah': '充电安时',
# 充电SOC
'charge_begin_soc': '开始SOC',
'charge_end_soc': '结束SOC',
'charge_cur_soc': '当前SOC',
# 充电费用(应收)
'receivable_electric_fee': '应收电费(元)',
'receivable_service_fee': '应收服务费(元)',
'receivable_total_fee': '应收总费用(元)',
# 充电费用(实际)
'charge_elecfee_amount': '电费金额(元)',
'charge_elecfee_cost_amount': '电费成本(元)',
'charge_service_amount': '服务费金额(元)',
'charging_amt': '充电金额(元)',
# 支付信息
'actual_pay_amount': '实际支付金额(元)',
'pay_amount': '支付金额(元)',
'pay_order_no': '支付订单号',
'pay_method': '支付方式',
'pay_status': '支付状态',
'pay_time': '支付时间',
# 单价信息
'charge_unit_price': '单价(元/度)',
'charge_unit_cost': '单位成本',
'charge_unit_service_fee': '单位服务费',
# 结算信息
'charge_settle_type': '结算类型',
'settle_electric_fee': '结算电费(元)',
'settle_service_fee': '结算服务费(元)',
'settle_fee': '结算费用(元)',
'settle_method': '结算方式',
'settle_status': '结算状态',
'settle_coupon_amount': '结算优惠券金额',
# 优惠券信息
'user_coupon_id': '优惠券ID',
'coupon_name': '优惠券名称',
'coupon_type': '优惠券类型',
'coupon_amount': '优惠券金额',
'coupon_total_amount': '优惠券总金额',
'elecfee_coupon_amount': '电费优惠券金额',
'servicefee_coupon_amount': '服务费优惠券金额',
# 发票信息
'invoice_id': '发票ID',
'invoice_fee': '发票金额',
'ticket_status': '开票状态',
# 活动信息
'activity_electric_fee': '活动电费',
'activity_service_fee': '活动服务费',
'activity_name': '活动名称',
'activity_total_fee': '活动总费用',
# 企业活动信息
'company_activity_id': '企业活动ID',
'company_activity_name': '企业活动名称',
'company_activity_total_fee': '企业活动总费用',
'company_activity_service_fee': '企业活动服务费',
'company_activity_electric_fee': '企业活动电费',
# 补贴信息
'subsidy_degree': '补贴电量',
'subsidy_fee': '补贴费用',
# 运营商信息
'operator_id': '运营商ID',
'operator_income': '运营商收入',
'plat_service_fee': '平台服务费',
# 佣金信息
'com_service_fee': '佣金服务费',
'com_electric_fee': '佣金电费',
'com_total_fee': '佣金总费用',
'com_charge_discount_type': '佣金折扣类型',
'com_charge_discount': '佣金折扣',
# 报告信息
'report_time': '上报时间',
'has_shallow_report': '是否有浅层报告',
'has_deep_report': '是否有深层报告',
'shallow_report_is_received': '浅层报告是否接收',
# 订单完成信息
'finish_type': '完成类型',
'finish_code': '完成代码',
'finish_msg': '完成消息',
'finish_time': '完成时间',
# 取消信息
'cancel_type': '取消类型',
'cancel_code': '取消代码',
'cancel_msg': '取消消息',
'cancel_time': '取消时间',
# 异常信息
'exception_flag': '异常标志',
'exception_msg': '异常消息',
'is_exception': '是否异常',
# 其他信息
'platform_sale_type': '平台销售类型',
'platform_driver_id': '平台司机ID',
'platform_phone': '平台电话',
'charge_strategy': '充电策略',
'charge_strategy_param': '充电策略参数',
'boot_mode': '启动模式',
'settlement_type': '结算类型',
'is_parking_coupon': '是否停车优惠券',
'control_source': '控制来源',
'charge_market_id': '充电市场ID',
'charge_times_degree': '充电次数电量',
'special_channel_order_source': '特殊渠道订单来源',
# 时间戳
'create_time': '创建时间',
'update_time': '更新时间',
# 分时段电量从detail表计算
'sharp_electricity': '尖时电量(kWh)',
'peak_electricity': '峰时电量(kWh)',
'flat_electricity': '平时电量(kWh)',
'valley_electricity': '谷时电量(kWh)',
# 数据来源
'data_source': '数据来源',
}
# 获取字段中文名称
def get_field_name(field_key):
"""获取字段的中文名称"""
return FIELD_MAPPING.get(field_key, field_key)
# 获取字段显示名称(别名)
def get_field_display_name(field_key):
"""获取字段的中文显示名称"""
return FIELD_MAPPING.get(field_key, field_key)
# 获取所有字段选项
def get_all_fields():
"""获取所有字段选项"""
return [{'key': k, 'name': v} for k, v in FIELD_MAPPING.items()]
# 获取所有字段(带显示名称)
def get_all_fields_with_display():
"""获取所有字段包含key和显示名称"""
return [{'key': k, 'display': v} for k, v in FIELD_MAPPING.items()]
# 默认字段列表(常用字段)
DEFAULT_FIELDS = [
'order_no',
'company_id',
'user_id',
'charge_begin_time',
'charge_end_time',
'charge_degree',
'receivable_total_fee',
'actual_pay_amount',
'state',
'report_time'
]