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

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. 最终检查点

    • 确保所有测试通过
    • 验证前后端集成正常
    • 检查用户体验流畅性
    • 如有问题,询问用户