test_analysis_report.py 2.08 KB
"""
测试分析报告生成功能
"""
import sys
sys.path.insert(0, "src")

from fw_pms_ai.agent.analysis_report_node import generate_analysis_report_node

def test_generate_analysis_report():
    """测试为 AI-FB34CA0EE6C4 生成分析报告"""
    
    # 模拟数据
    part_ratios = [
        {"part_code": "C211F280503-1800-AA", "part_name": "牌照灯总成", 
         "valid_storage_cnt": 0, "avg_sales_cnt": 2, "out_stock_cnt": 5, "cost_price": 14},
        {"part_code": "TEST-001", "part_name": "测试配件1", 
         "valid_storage_cnt": 10, "avg_sales_cnt": 0, "out_stock_cnt": 0, "cost_price": 100},
        {"part_code": "TEST-002", "part_name": "测试配件2", 
         "valid_storage_cnt": 0, "avg_sales_cnt": 0.5, "out_stock_cnt": 0, "cost_price": 50},
    ]
    
    part_results = [
        {"part_code": "C211F280503-1800-AA", "part_name": "牌照灯总成", 
         "total_suggest_cnt": 4, "total_suggest_amount": 56.0, "priority": 1},
    ]
    
    allocated_details = [
        {"part_code": "C211F280503-1800-AA", "suggest_cnt": 4, "suggest_amount": 56.0},
    ]
    
    # 构建 state
    state = {
        "task_no": "AI-FB34CA0EE6C4",
        "group_id": 2,
        "dealer_grouping_id": 48,
        "dealer_grouping_name": "测试分组",
        "brand_grouping_id": None,
        "statistics_date": "2026-02-05",
        "part_ratios": part_ratios,
        "part_results": part_results,
        "allocated_details": allocated_details,
    }
    
    print("开始生成分析报告...")
    result = generate_analysis_report_node(state)
    
    if "error" in result.get("analysis_report", {}):
        print(f"\n❌ 生成失败: {result['analysis_report']['error']}")
        return False
    else:
        print(f"\n✅ 分析报告生成成功!")
        report = result.get("analysis_report", {})
        print(f"  - replenishment_insights: {str(report.get('replenishment_insights', ''))[:100]}...")
        print(f"  - urgency_assessment: {str(report.get('urgency_assessment', ''))[:100]}...")
        return True

if __name__ == "__main__":
    test_generate_analysis_report()