ETest-Vue-FastAPI/工单显示问题快速检查清单.md

4.2 KiB
Raw Blame History

工单显示问题快速检查清单

当前状态

数据库有数据(已验证) SQL 查询能返回数据test_workorder_query.sql 执行成功) DO 模型正确name=String(200), batch_id=BigInteger VO 模型正确(有 batch_id 和 batch_name 字段) DAO 代码正确(使用 LEFT JOIN 和 .label() 前端代码正确(使用 batchName 数据库字段已修复name=VARCHAR(200)

⚠️ 最可能的问题:后端服务未重启

为什么必须重启?

修改了 DO 模型后Python 不会自动重新加载:

  • SQLAlchemy 的模型定义在启动时加载到内存
  • 修改 test_work_order_do.py 后,旧的定义仍在使用
  • 必须重启服务才能加载新的模型定义

如何重启后端服务?

方法 1: 如果在终端运行

# 1. 按 Ctrl+C 停止服务
# 2. 重新启动
cd ruoyi-fastapi-backend
python main.py

方法 2: 如果使用 uvicorn

# 1. 停止服务Ctrl+C
# 2. 重新启动
cd ruoyi-fastapi-backend
uvicorn main:app --reload --port 9099

方法 3: 如果是后台运行

# 1. 查找进程
ps aux | grep python | grep main.py

# 2. 停止进程
kill -9 <进程ID>

# 3. 重新启动
cd ruoyi-fastapi-backend
nohup python main.py &

方法 4: Windows 系统

# 1. 查找进程
tasklist | findstr python

# 2. 停止进程
taskkill /F /PID <进程ID>

# 3. 重新启动
cd ruoyi-fastapi-backend
python main.py

验证步骤

1. 确认后端服务已重启

# 查看后端日志,应该看到启动信息
tail -f logs/app.log

应该看到类似的输出:

INFO:     Started server process
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:9099

2. 清除浏览器缓存

  • Windows: Ctrl + Shift + R
  • Mac: Cmd + Shift + R

3. 打开开发者工具

  1. F12 打开开发者工具
  2. 切换到 Network 标签
  3. 刷新工单列表页面

4. 检查 API 请求

找到 /system/test_work_order/list 请求:

正常响应200 OK

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "rows": [
      {
        "id": 821,
        "batchId": 1767886248798,
        "batchName": "批次-20260108233048",
        "name": "SN0001-出库测试PCBA",
        "testEutName": "SN0001",
        "creatorName": "管理员",
        "testCategoryName": "PCBA测试",
        "testItemName": "出库测试",
        "testStep": 0,
        "testStatus": 0
      }
    ],
    "total": 10,
    "pageNum": 1,
    "pageSize": 10
  }
}

异常响应500 错误)

{
  "code": 500,
  "msg": "服务器内部错误"
}

解决方案: 查看后端日志

异常响应(空数据)

{
  "code": 200,
  "data": {
    "rows": [],
    "total": 0
  }
}

解决方案: 执行 diagnose_workorder_display.sql 检查数据

5. 检查 Console 标签

查看是否有 JavaScript 错误:

  • 红色错误信息
  • 字段映射错误
  • 类型转换错误

如果问题仍未解决

执行数据库诊断

mysql -u root -p < diagnose_workorder_display.sql

查看后端日志

# 查看最近的日志
tail -100 logs/app.log

# 实时查看日志
tail -f logs/app.log

检查后端启动是否有错误

cd ruoyi-fastapi-backend
python main.py

查看是否有:

  • ImportError
  • SyntaxError
  • 数据库连接错误

预期结果

修复后,工单列表应该显示:

  • 工单分组(批次-20260108233048
  • 产品SNSN0001
  • 创建人(管理员)
  • 测试类别PCBA测试
  • 测试项(出库测试)
  • 测试人员、一审人员等

需要提供的信息

如果问题仍未解决,请提供:

  1. 后端服务状态

    ps aux | grep python
    
  2. 后端日志

    tail -50 logs/app.log
    
  3. 浏览器 Network 标签截图

    • /system/test_work_order/list 的 Response
  4. 浏览器 Console 标签截图

    • 是否有 JavaScript 错误
  5. 数据库诊断结果

    mysql -u root -p < diagnose_workorder_display.sql
    

完成时间

2026-01-09 00:20