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