69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
|
|
#!/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)
|
||
|
|
|