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

210 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 工单显示问题快速检查清单
## 当前状态
✅ 数据库有数据(已验证)
✅ 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