ETest-Vue-FastAPI/.kiro/specs/sample-to-workorder/tasks.md

196 lines
5.4 KiB
Markdown
Raw Normal View History

2026-01-07 01:10:51 +08:00
# Implementation Plan
- [x] 1. 创建后端数据模型和VO
- 创建GenerateWorkOrderFromSampleModel请求模型
- 创建WorkOrderGenerationResponseModel响应模型
- 确保模型支持camelCase和snake_case转换
- _Requirements: 3.1, 3.2, 3.3, 3.4, 3.5_
- [ ] 2. 实现后端服务层逻辑
- [x] 2.1 在warehouse_sample_service.py中实现generate_work_orders_from_samples方法
- 验证样品ID列表有效性
- 验证测试流程ID有效性
- 查询样品信息并验证状态
- 获取测试流程的测试类别列表
- _Requirements: 1.4, 2.1, 4.1, 4.2_
- [x] 2.2 实现工单创建逻辑
- 为每个样品和测试类别组合创建工单
- 查询对应的测试单元(test_item)
- 查询测试任务(test_job)获取测试人员信息
- 构造工单数据并保存
- _Requirements: 2.3, 3.2, 3.3, 3.4, 3.5_
- [x] 2.3 实现样品状态更新逻辑
- 工单创建成功后更新样品状态为"测试中"
- 处理批量更新场景
- _Requirements: 4.4_
- [x] 2.4 实现错误处理和结果汇总
- 捕获单个样品的创建失败,不影响其他样品
- 记录失败原因
- 返回成功和失败的统计信息
- _Requirements: 2.4_
- [ ] 2.5 编写服务层单元测试
- 测试样品状态验证逻辑
- 测试测试流程配置查询
- 测试工单数据构造
- 测试错误处理逻辑
- _Requirements: 1.4, 2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.2, 4.4_
- [ ] 3. 实现后端API控制器
- [x] 3.1 在warehouse_sample_controller.py中添加generate_work_orders端点
- 定义POST /warehouse/sample/generate_work_orders路由
- 接收GenerateWorkOrderFromSampleModel请求
- 调用服务层方法
- 返回WorkOrderGenerationResponseModel响应
- 添加权限验证
- _Requirements: 1.2, 1.4_
- [x] 3.2 添加请求验证
- 验证sample_ids不为空
- 验证test_flow_id有效
- 添加适当的错误响应
- _Requirements: 1.4_
- [ ] 3.3 编写控制器单元测试
- 测试正常请求处理
- 测试参数验证
- 测试权限验证
- _Requirements: 1.2, 1.4_
- [ ] 4. 实现前端样品管理页面增强
- [x] 4.1 在warehouse/sample/index.vue中添加"生成工单"按钮
- 在操作按钮区域添加"生成工单"按钮
- 按钮仅在选中样品时启用
- 添加权限控制
- _Requirements: 1.1_
- [x] 4.2 添加工单生成对话框
- 创建el-dialog组件
- 添加测试流程选择下拉框
- 添加工单名称输入框
- 添加备注输入框
- 显示选中的样品数量
- _Requirements: 1.2, 5.1, 5.2_
- [x] 4.3 实现测试流程选择功能
- 加载测试流程选项列表
- 监听测试流程变化
- 获取并显示测试流程标签
- 使用彩色标签展示测试类别
- _Requirements: 1.3, 2.2_
- [x] 4.4 实现工单生成提交逻辑
- 收集表单数据
- 调用后端API
- 处理成功响应(显示成功消息,刷新列表)
- 处理失败响应(显示错误详情)
- 关闭对话框
- _Requirements: 1.4, 1.5_
- [x] 4.5 添加前端数据字段和方法
- 添加workOrderDialogVisible状态
- 添加workOrderForm表单对象
- 添加testFlowOptions选项列表
- 添加testFlowTags标签列表
- 实现handleGenerateWorkOrder方法
- 实现loadTestFlowOptions方法
- 实现fetchTestFlowTags方法
- 实现submitWorkOrderGeneration方法
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5_
- [ ] 4.6 编写前端组件测试
- 测试对话框打开和关闭
- 测试表单验证
- 测试API调用
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5_
- [ ] 5. 创建API接口文件
- [x] 5.1 在ruoyi-fastapi-frontend/src/api/warehouse/sample.js中添加generateWorkOrders方法
- 定义POST请求方法
- 配置请求URL和参数
- 导出方法供组件使用
- _Requirements: 1.4_
- [ ] 6. 测试和验证
- [ ] 6.1 端到端测试
- 创建测试样品数据
- 测试单个样品生成工单
- 测试批量样品生成工单
- 验证工单数据正确性
- 验证样品状态更新
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.2, 4.4_
- [ ] 6.2 属性测试
- **Property 1: 工单创建完整性**
- **Validates: Requirements 2.3**
- [ ] 6.3 属性测试
- **Property 2: 样品状态一致性**
- **Validates: Requirements 4.4**
- [ ] 6.4 属性测试
- **Property 3: 工单数据关联正确性**
- **Validates: Requirements 3.2**
- [ ] 6.5 属性测试
- **Property 4: 测试类别映射正确性**
- **Validates: Requirements 2.2**
- [ ] 6.6 属性测试
- **Property 5: 批量操作原子性**
- **Validates: Requirements 2.4**
- [ ] 6.7 属性测试
- **Property 6: 工单命名规则一致性**
- **Validates: Requirements 5.5**
- [ ] 7. 错误场景测试
- [ ] 7.1 测试样品不存在场景
- 提供不存在的样品ID
- 验证错误处理
- _Requirements: 2.4_
- [ ] 7.2 测试样品状态不符合场景
- 使用非"待测试"状态的样品
- 验证被正确拒绝
- _Requirements: 4.1, 4.2_
- [ ] 7.3 测试测试流程不存在场景
- 提供不存在的测试流程ID
- 验证错误响应
- _Requirements: 2.1_
- [ ] 7.4 测试部分失败场景
- 混合有效和无效样品
- 验证部分成功的处理
- 验证失败信息记录
- _Requirements: 2.4_
- [ ] 8. 最终检查点
- 确保所有测试通过
- 验证前后端集成正常
- 检查用户体验流畅性
- 如有问题,询问用户