#!/usr/bin/env python # -*- coding: utf-8 -*- """ 诊断数据库和API问题 """ import os import sys from database import Database print("="*60) print("数据库诊断") print("="*60) # 检查数据库文件 db_path = os.path.join(os.path.dirname(__file__), "wrench.db") print(f"\n1. 数据库文件路径: {db_path}") print(f" 文件存在: {os.path.exists(db_path)}") if os.path.exists(db_path): size = os.path.getsize(db_path) print(f" 文件大小: {size} 字节") # 初始化数据库 print("\n2. 初始化数据库...") try: db = Database(db_path) print(" [OK] 数据库初始化成功") except Exception as e: print(f" [FAIL] 数据库初始化失败: {e}") sys.exit(1) # 检查工单数量 print("\n3. 检查工单数据...") try: all_orders = db.get_work_orders() print(f" 总工单数: {len(all_orders)}") for order in all_orders: print(f" - {order['trace_id']} | {order['process_id']} | {order['process_name']}") except Exception as e: print(f" [FAIL] 查询失败: {e}") # 测试查询 print("\n4. 测试查询 TR20260119001 + P001...") try: available = db.get_available_work_orders("TR20260119001", "P001") print(f" 可用工单数: {len(available)}") for order in available: print(f" - {order['trace_id']} | {order['process_id']} | {order['process_name']}") except Exception as e: print(f" [FAIL] 查询失败: {e}") import traceback traceback.print_exc() # 检查认领状态 print("\n5. 检查认领状态...") try: claimed = db.get_claimed_order("TR20260119001", "P001") if claimed: print(f" [WARN] 工单已被认领: {claimed}") else: print(" [OK] 工单未被认领") except Exception as e: print(f" [FAIL] 检查失败: {e}") print("\n" + "="*60) print("诊断完成") print("="*60)