fix: 修复字段映射,使用实际数据库字段名
问题:field_mapping.py 中的字段名和实际数据库不匹配,导致查询失败。 修复内容: - 更新所有字段名为实际数据库中的字段名 - 例如: - total_money → receivable_total_fee(应收总费用) - charge_money → charging_amt(充电金额) - charge_energy → charge_degree(充电电量) - start_time → charge_begin_time(充电开始时间) - end_time → charge_end_time(充电结束时间) 现在可以使用正确的字段名创建配置并生成日报了! Coze-Commit-Type: user Coze-User-ID: 3722323274763196 Coze-Conversation-ID: 9894087
This commit is contained in:
@@ -1,135 +1,187 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
字段映射模块
|
||||
将数据库英文字段名映射为中文显示名
|
||||
字段映射配置
|
||||
将数据库字段名映射为中文显示名
|
||||
"""
|
||||
|
||||
# 字段映射字典(英文 -> 中文)
|
||||
# 字段映射(根据实际数据库表结构)
|
||||
FIELD_MAPPING = {
|
||||
# 基础信息
|
||||
'id': '订单ID',
|
||||
'order_no': '订单号',
|
||||
'company_id': '企业ID',
|
||||
'user_id': '用户ID',
|
||||
'user_name': '用户名称',
|
||||
'platform_order_no': '平台订单号',
|
||||
'order_type': '订单类型',
|
||||
'order_time': '订单时间',
|
||||
'state': '订单状态',
|
||||
'report_time': '上报时间',
|
||||
'start_time': '开始时间',
|
||||
'end_time': '结束时间',
|
||||
'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_energy': '充电电量(kWh)',
|
||||
'charge_money': '充电金额(元)',
|
||||
'service_money': '服务费(元)',
|
||||
'electricity_money': '电费(元)',
|
||||
'total_money': '总金额(元)',
|
||||
'pile_id': '充电桩ID',
|
||||
'pile_no': '充电桩编号',
|
||||
'gun_no': '枪号',
|
||||
'start_soc': '起始SOC(%)',
|
||||
'end_soc': '结束SOC(%)',
|
||||
'start_voltage': '起始电压(V)',
|
||||
'end_voltage': '结束电压(V)',
|
||||
'start_current': '起始电流(A)',
|
||||
'end_current': '结束电流(A)',
|
||||
'temperature': '温度(℃)',
|
||||
|
||||
# 充电电量
|
||||
'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': '更新时间',
|
||||
'pay_type': '支付方式',
|
||||
'pay_time': '支付时间',
|
||||
'pay_status': '支付状态',
|
||||
'stop_reason': '停止原因',
|
||||
'station_id': '充电站ID',
|
||||
'station_name': '充电站名称',
|
||||
'address': '地址',
|
||||
'city': '城市',
|
||||
'province': '省份',
|
||||
'area': '区域',
|
||||
'remark': '备注',
|
||||
'operator_id': '运营商ID',
|
||||
'operator_name': '运营商名称',
|
||||
'equipment_id': '设备ID',
|
||||
'equipment_type': '设备类型',
|
||||
'equipment_model': '设备型号',
|
||||
'manufacturer': '制造商',
|
||||
'install_location': '安装位置',
|
||||
'power_rate': '额定功率(kW)',
|
||||
'voltage_rate': '额定电压(V)',
|
||||
'current_rate': '额定电流(A)',
|
||||
'brand': '品牌',
|
||||
'network_type': '网络类型',
|
||||
'sim_card': 'SIM卡号',
|
||||
'iccid': 'ICCID',
|
||||
'imei': 'IMEI',
|
||||
'mac': 'MAC地址',
|
||||
'ip': 'IP地址',
|
||||
'firmware_version': '固件版本',
|
||||
'hardware_version': '硬件版本',
|
||||
'protocol_version': '协议版本',
|
||||
'online_status': '在线状态',
|
||||
'last_heartbeat': '最后心跳时间',
|
||||
'fault_code': '故障代码',
|
||||
'fault_desc': '故障描述',
|
||||
'fault_time': '故障时间',
|
||||
'clear_time': '清除时间',
|
||||
'operator_fault': '运营商故障',
|
||||
'maintenance_status': '维护状态',
|
||||
'maintenance_time': '维护时间',
|
||||
'maintenance_desc': '维护描述',
|
||||
'qr_code': '二维码',
|
||||
'qr_code_url': '二维码URL',
|
||||
'qr_code_type': '二维码类型',
|
||||
'qr_code_status': '二维码状态',
|
||||
'qr_code_create_time': '二维码创建时间',
|
||||
'qr_code_update_time': '二维码更新时间',
|
||||
'qr_code_remark': '二维码备注',
|
||||
'qr_code_operator': '二维码操作员',
|
||||
'qr_code_company': '二维码企业',
|
||||
'qr_code_station': '二维码站点',
|
||||
'qr_code_equipment': '二维码设备',
|
||||
'qr_code_pile': '二维码桩号',
|
||||
'qr_code_gun': '二维码枪号',
|
||||
'qr_code_location': '二维码位置',
|
||||
'qr_code_address': '二维码地址',
|
||||
'qr_code_city': '二维码城市',
|
||||
'qr_code_province': '二维码省份',
|
||||
'qr_code_area': '二维码区域',
|
||||
'qr_code_lat': '二维码纬度',
|
||||
'qr_code_lng': '二维码经度',
|
||||
'qr_code_alt': '二维码海拔',
|
||||
'qr_code_accuracy': '二维码精度',
|
||||
'qr_code_speed': '二维码速度',
|
||||
'qr_code_direction': '二维码方向',
|
||||
'qr_code_satellite': '二维码卫星',
|
||||
'qr_code_signal': '二维码信号',
|
||||
'qr_code_battery': '二维码电池',
|
||||
'qr_code_temperature': '二维码温度',
|
||||
'qr_code_humidity': '二维码湿度',
|
||||
'qr_code_pressure': '二维码气压',
|
||||
'qr_code_wind_speed': '二维码风速',
|
||||
'qr_code_wind_direction': '二维码风向',
|
||||
'qr_code_rainfall': '二维码降雨量',
|
||||
'qr_code_snowfall': '二维码降雪量',
|
||||
'qr_code_visibility': '二维码能见度',
|
||||
'qr_code_uv_index': '二维码紫外线指数',
|
||||
'qr_code_aqi': '二维码空气质量指数',
|
||||
'qr_code_pm25': '二维码PM2.5',
|
||||
'qr_code_pm10': '二维码PM10',
|
||||
'qr_code_co': '二维码一氧化碳',
|
||||
'qr_code_no2': '二维码二氧化氮',
|
||||
'qr_code_so2': '二维码二氧化硫',
|
||||
'qr_code_o3': '二维码臭氧',
|
||||
}
|
||||
|
||||
# 获取字段中文名称
|
||||
def get_field_name(field_key):
|
||||
"""获取字段的中文名称"""
|
||||
return FIELD_MAPPING.get(field_key, field_key)
|
||||
|
||||
def get_field_display_name(field_name):
|
||||
"""获取字段的中文显示名称"""
|
||||
return FIELD_MAPPING.get(field_name, field_name)
|
||||
|
||||
|
||||
# 获取所有字段选项
|
||||
def get_all_fields():
|
||||
"""获取所有字段列表"""
|
||||
return list(FIELD_MAPPING.keys())
|
||||
"""获取所有字段选项"""
|
||||
return [{'key': k, 'name': v} for k, v in FIELD_MAPPING.items()]
|
||||
|
||||
|
||||
def get_all_fields_with_display():
|
||||
"""获取所有字段及其显示名称"""
|
||||
return [{'field': 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'
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user