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

210 lines
4.2 KiB
Markdown
Raw Permalink Normal View 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: 如果在终端运行
```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
- ✅ 产品SNSN0001
- ✅ 创建人(管理员)
- ✅ 测试类别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