4.2 KiB
4.2 KiB
工单显示问题快速检查清单
当前状态
✅ 数据库有数据(已验证) ✅ 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. 打开开发者工具
- 按 F12 打开开发者工具
- 切换到 Network 标签
- 刷新工单列表页面
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)
- ✅ 产品SN(SN0001)
- ✅ 创建人(管理员)
- ✅ 测试类别(PCBA测试)
- ✅ 测试项(出库测试)
- ✅ 测试人员、一审人员等
需要提供的信息
如果问题仍未解决,请提供:
-
后端服务状态
ps aux | grep python -
后端日志
tail -50 logs/app.log -
浏览器 Network 标签截图
/system/test_work_order/list的 Response
-
浏览器 Console 标签截图
- 是否有 JavaScript 错误
-
数据库诊断结果
mysql -u root -p < diagnose_workorder_display.sql
完成时间
2026-01-09 00:20