ETest-Vue-FastAPI/工单列表过滤已汇总工单修复说明.md

114 lines
3.4 KiB
Markdown
Raw 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.

# 工单列表过滤已汇总工单修复说明
## 问题描述
从工单生成订单后,这些工单仍然在工单列表中显示,导致混乱。用户希望已经汇总到新订单的工单不再在工单列表中显示。
## 问题场景
### 修复前
1. 原始订单35 → 工单661-670
2. 从工单661-670生成新订单39
3. 工单661-670的 `order_id` 更新为39
4. **问题**工单661-670仍然在工单列表中显示
5. 用户看到订单35的分组中还有这些工单造成混乱
### 修复后
1. 原始订单35 → 工单661-670
2. 从工单661-670生成新订单39
3. 工单661-670的 `order_id` 更新为39
4. **修复**工单661-670不再在工单列表中显示因为已汇总
5. 工单列表只显示还没有汇总的工单
## 解决方案
### 修改内容
`test_work_order_dao.py``get_test_work_order_list` 方法中,添加过滤条件:
```python
.where(
# ... 其他条件 ...
# 默认不显示已经关联到 order_id 的工单(已汇总到新订单的工单)
TestWorkOrder.order_id.is_(None),
)
```
### 逻辑说明
- `order_id` 为 NULL工单还没有被汇总到新订单正常显示
- `order_id` 不为 NULL工单已经被汇总到新订单不显示
## 影响范围
### 正面影响
- 工单列表更清晰,只显示待处理的工单
- 避免混淆:已汇总的工单不会重复显示
- 符合业务逻辑:已汇总的工单应该在新订单中查看
### 潜在影响
- 如果用户想查看已汇总的工单,需要:
- 方案1在新订单订单39的详情页查看
- 方案2添加一个"显示已汇总工单"的选项(未实现)
## 数据关系
### test_work_order 表字段
- `test_order_id`: 工单所属的原始订单(样品所属的订单)
- `order_id`: 工单关联的生成订单从工单生成的订单可为NULL
### 工单状态
- `order_id = NULL`: 未汇总,在工单列表中显示
- `order_id != NULL`: 已汇总,在工单列表中不显示
## 验证步骤
### 1. 重启后端服务
```bash
cd ruoyi-fastapi-backend
python main.py
```
### 2. 查看工单列表
- 进入工单列表页面
- 选择订单35的分组
- **应该看不到工单661-670**因为它们已经汇总到订单39
### 3. 查看新订单详情
- 进入订单列表
- 点击订单39
- **应该能看到工单661-670对应的样品**
### 4. 数据库验证
```sql
-- 查看工单661-670的状态
SELECT id, name, test_order_id, order_id
FROM test_work_order
WHERE id BETWEEN 661 AND 670;
-- 应该看到 order_id = 39
```
## 未来扩展
如果需要查看已汇总的工单,可以添加以下功能:
### 方案1添加查询参数
在查询参数中添加 `show_summarized` 选项:
```python
if not query_object.show_summarized:
query = query.where(TestWorkOrder.order_id.is_(None))
```
### 方案2添加"已汇总工单"页面
创建一个专门的页面显示已汇总的工单:
```python
query = query.where(TestWorkOrder.order_id.is_not(None))
```
### 方案3在订单详情中显示
在新订单订单39的详情页中显示关联的工单列表已实现
## 相关文件
- `ruoyi-fastapi-backend/module_admin/system/dao/test_work_order_dao.py` ✅ 已修复
## 总结
通过添加 `TestWorkOrder.order_id.is_(None)` 过滤条件,工单列表现在只显示未汇总的工单,避免了混乱。已汇总的工单可以在新订单的详情页中查看。