5.4 KiB
5.4 KiB
Implementation Plan
-
1. 创建后端数据模型和VO
- 创建GenerateWorkOrderFromSampleModel请求模型
- 创建WorkOrderGenerationResponseModel响应模型
- 确保模型支持camelCase和snake_case转换
- Requirements: 3.1, 3.2, 3.3, 3.4, 3.5
-
2. 实现后端服务层逻辑
-
2.1 在warehouse_sample_service.py中实现generate_work_orders_from_samples方法
- 验证样品ID列表有效性
- 验证测试流程ID有效性
- 查询样品信息并验证状态
- 获取测试流程的测试类别列表
- Requirements: 1.4, 2.1, 4.1, 4.2
-
2.2 实现工单创建逻辑
- 为每个样品和测试类别组合创建工单
- 查询对应的测试单元(test_item)
- 查询测试任务(test_job)获取测试人员信息
- 构造工单数据并保存
- Requirements: 2.3, 3.2, 3.3, 3.4, 3.5
-
2.3 实现样品状态更新逻辑
- 工单创建成功后更新样品状态为"测试中"
- 处理批量更新场景
- Requirements: 4.4
-
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控制器
-
3.1 在warehouse_sample_controller.py中添加generate_work_orders端点
- 定义POST /warehouse/sample/generate_work_orders路由
- 接收GenerateWorkOrderFromSampleModel请求
- 调用服务层方法
- 返回WorkOrderGenerationResponseModel响应
- 添加权限验证
- Requirements: 1.2, 1.4
-
3.2 添加请求验证
- 验证sample_ids不为空
- 验证test_flow_id有效
- 添加适当的错误响应
- Requirements: 1.4
-
3.3 编写控制器单元测试
- 测试正常请求处理
- 测试参数验证
- 测试权限验证
- Requirements: 1.2, 1.4
-
4. 实现前端样品管理页面增强
-
4.1 在warehouse/sample/index.vue中添加"生成工单"按钮
- 在操作按钮区域添加"生成工单"按钮
- 按钮仅在选中样品时启用
- 添加权限控制
- Requirements: 1.1
-
4.2 添加工单生成对话框
- 创建el-dialog组件
- 添加测试流程选择下拉框
- 添加工单名称输入框
- 添加备注输入框
- 显示选中的样品数量
- Requirements: 1.2, 5.1, 5.2
-
4.3 实现测试流程选择功能
- 加载测试流程选项列表
- 监听测试流程变化
- 获取并显示测试流程标签
- 使用彩色标签展示测试类别
- Requirements: 1.3, 2.2
-
4.4 实现工单生成提交逻辑
- 收集表单数据
- 调用后端API
- 处理成功响应(显示成功消息,刷新列表)
- 处理失败响应(显示错误详情)
- 关闭对话框
- Requirements: 1.4, 1.5
-
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接口文件
-
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. 最终检查点
- 确保所有测试通过
- 验证前后端集成正常
- 检查用户体验流畅性
- 如有问题,询问用户