# 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. 最终检查点 - 确保所有测试通过 - 验证前后端集成正常 - 检查用户体验流畅性 - 如有问题,询问用户