# 工单显示问题快速检查清单 ## 当前状态 ✅ 数据库有数据(已验证) ✅ 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: 如果在终端运行 ```bash # 1. 按 Ctrl+C 停止服务 # 2. 重新启动 cd ruoyi-fastapi-backend python main.py ``` #### 方法 2: 如果使用 uvicorn ```bash # 1. 停止服务(Ctrl+C) # 2. 重新启动 cd ruoyi-fastapi-backend uvicorn main:app --reload --port 9099 ``` #### 方法 3: 如果是后台运行 ```bash # 1. 查找进程 ps aux | grep python | grep main.py # 2. 停止进程 kill -9 <进程ID> # 3. 重新启动 cd ruoyi-fastapi-backend nohup python main.py & ``` #### 方法 4: Windows 系统 ```cmd # 1. 查找进程 tasklist | findstr python # 2. 停止进程 taskkill /F /PID <进程ID> # 3. 重新启动 cd ruoyi-fastapi-backend python main.py ``` ## 验证步骤 ### 1. 确认后端服务已重启 ```bash # 查看后端日志,应该看到启动信息 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) ```json { "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 错误) ```json { "code": 500, "msg": "服务器内部错误" } ``` **解决方案**: 查看后端日志 #### 异常响应(空数据) ```json { "code": 200, "data": { "rows": [], "total": 0 } } ``` **解决方案**: 执行 `diagnose_workorder_display.sql` 检查数据 ### 5. 检查 Console 标签 查看是否有 JavaScript 错误: - 红色错误信息 - 字段映射错误 - 类型转换错误 ## 如果问题仍未解决 ### 执行数据库诊断 ```bash mysql -u root -p < diagnose_workorder_display.sql ``` ### 查看后端日志 ```bash # 查看最近的日志 tail -100 logs/app.log # 实时查看日志 tail -f logs/app.log ``` ### 检查后端启动是否有错误 ```bash cd ruoyi-fastapi-backend python main.py ``` 查看是否有: - ImportError - SyntaxError - 数据库连接错误 ## 预期结果 修复后,工单列表应该显示: - ✅ 工单分组(批次-20260108233048) - ✅ 产品SN(SN0001) - ✅ 创建人(管理员) - ✅ 测试类别(PCBA测试) - ✅ 测试项(出库测试) - ✅ 测试人员、一审人员等 ## 需要提供的信息 如果问题仍未解决,请提供: 1. **后端服务状态** ```bash ps aux | grep python ``` 2. **后端日志** ```bash tail -50 logs/app.log ``` 3. **浏览器 Network 标签截图** - `/system/test_work_order/list` 的 Response 4. **浏览器 Console 标签截图** - 是否有 JavaScript 错误 5. **数据库诊断结果** ```bash mysql -u root -p < diagnose_workorder_display.sql ``` ## 完成时间 2026-01-09 00:20