#!/usr/bin/env python # -*- coding: utf-8 -*- """ 测试字段映射功能 """ import json from convert_table_to_sqlserver_format import convert_temperature_table_to_sqlserver print("=" * 80) print("测试字段映射功能") print("=" * 80) # 模拟脚本数据 script_data = { "tables": [{ "token": "scriptTable1", "startRow": 0, "startCol": 0, "cells": [ {"row": 0, "col": 1, "value": "13.4"}, {"row": 1, "col": 1, "value": "2025-12-05 14:00:00"}, {"row": 1, "col": 3, "value": "2025-12-05 17:30:00"}, {"row": 4, "col": 0, "value": "14.0"}, ] }] } # 测试1: 使用现有配置的字段名 print("\n测试1: 使用现有配置的字段名") print("-" * 80) global_params_old = { 'current_date': '2025-12-03', 'executor': '朱吉生', 'part_no': 'P67-13-103', } print("输入参数:") for key, value in global_params_old.items(): print(f" {key}: {value}") result1 = convert_temperature_table_to_sqlserver(script_data, "W2001150.001", global_params_old) print("\n输出字段:") print(f" runin_date: {result1.get('runin_date')}") print(f" operator_name: {result1.get('operator_name')}") print(f" power_end_part_no: {result1.get('power_end_part_no')}") print(f" motor_speed_rpm: {result1.get('motor_speed_rpm')}") # 测试2: 使用新的字段名 print("\n\n测试2: 使用新的字段名") print("-" * 80) global_params_new = { 'runin_date': '2025-12-10', 'operator_name': '张三', 'power_end_part_no': 'PWR-600-001', 'motor_speed_rpm': '980' } print("输入参数:") for key, value in global_params_new.items(): print(f" {key}: {value}") result2 = convert_temperature_table_to_sqlserver(script_data, "W2001150.001", global_params_new) print("\n输出字段:") print(f" runin_date: {result2.get('runin_date')}") print(f" operator_name: {result2.get('operator_name')}") print(f" power_end_part_no: {result2.get('power_end_part_no')}") print(f" motor_speed_rpm: {result2.get('motor_speed_rpm')}") # 测试3: 混合使用 print("\n\n测试3: 混合使用(新旧字段名)") print("-" * 80) global_params_mixed = { 'runin_date': '2025-12-10', 'executor': '李四', 'part_no': 'P67-13-104', 'motor_speed_rpm': '1200' } print("输入参数:") for key, value in global_params_mixed.items(): print(f" {key}: {value}") result3 = convert_temperature_table_to_sqlserver(script_data, "W2001150.001", global_params_mixed) print("\n输出字段:") print(f" runin_date: {result3.get('runin_date')}") print(f" operator_name: {result3.get('operator_name')}") print(f" power_end_part_no: {result3.get('power_end_part_no')}") print(f" motor_speed_rpm: {result3.get('motor_speed_rpm')}") print("\n" + "=" * 80) print("总结") print("=" * 80) tests = [ ("测试1 (旧字段名)", result1), ("测试2 (新字段名)", result2), ("测试3 (混合)", result3), ] for test_name, result in tests: count = sum(1 for f in ['runin_date', 'operator_name', 'power_end_part_no', 'motor_speed_rpm'] if result.get(f) is not None) status = "✅" if count >= 3 else "⚠️" print(f"{status} {test_name}: {count}/4 个字段有值") print("\n" + "=" * 80)