TorqueWrench/backend/check_db.py

78 lines
2.1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
检查数据库内容
"""
from database import Database
import sqlite3
db = Database("wrench.db")
print("="*60)
print("检查数据库内容")
print("="*60)
# 直接查询数据库
conn = sqlite3.connect("wrench.db")
cursor = conn.cursor()
# 检查work_orders表
print("\n1. work_orders表:")
cursor.execute("SELECT COUNT(*) FROM work_orders")
count = cursor.fetchone()[0]
print(f" 工单总数: {count}")
if count > 0:
cursor.execute("SELECT trace_id, process_id, process_name, product_name FROM work_orders LIMIT 10")
rows = cursor.fetchall()
print(" 工单列表:")
for row in rows:
print(f" - {row[0]} | {row[1]} | {row[2]} | {row[3]}")
# 检查claimed_orders表
print("\n2. claimed_orders表:")
cursor.execute("SELECT COUNT(*) FROM claimed_orders")
count = cursor.fetchone()[0]
print(f" 已认领总数: {count}")
if count > 0:
cursor.execute("SELECT trace_id, process_id, status FROM claimed_orders")
rows = cursor.fetchall()
print(" 已认领列表:")
for row in rows:
print(f" - {row[0]} | {row[1]} | {row[2]}")
# 测试查询
print("\n3. 测试查询 TR20260119001 + P001:")
trace_id = "TR20260119001"
process_id = "P001"
# 检查工单是否存在
cursor.execute("SELECT * FROM work_orders WHERE trace_id = ? AND process_id = ?", (trace_id, process_id))
work_order = cursor.fetchone()
if work_order:
print(f" [OK] 工单存在: {work_order[1]} - {work_order[2]}")
else:
print(f" [FAIL] 工单不存在")
# 检查是否被认领
cursor.execute("SELECT * FROM claimed_orders WHERE trace_id = ? AND process_id = ?", (trace_id, process_id))
claimed = cursor.fetchone()
if claimed:
print(f" [WARN] 工单已被认领: {claimed[5]} (状态: {claimed[4]})")
else:
print(f" [OK] 工单未被认领")
# 使用数据库方法查询
print("\n4. 使用数据库方法查询:")
available = db.get_available_work_orders(trace_id, process_id)
print(f" 可用工单数量: {len(available)}")
for order in available:
print(f" - {order['trace_id']} | {order['process_id']} | {order['process_name']}")
conn.close()
print("\n" + "="*60)