spawn-temp-work-order-from-task
Purpose
从生产任务执行弹窗「产出(细胞产品)」发起临时生产工单,并复制已保存原材料至新任务。
Requirements
Requirement: 产出页派发临时工单入口
任务执行弹窗(非只读,或已完成只读查看)SHALL 在「产出(细胞产品)」详情底栏提供「派发临时工单」按钮。入库、出库、临时生产工单下的任务均 MAY 派发;生产工单或任务状态为已完成(ywc)时 SHALL 仍允许派发(只读查看入口亦须可用)。
Scenario: 展示按钮
- WHEN 用户打开生产任务执行弹窗(含临时生产工单任务)并进入「产出(细胞产品)」
- THEN 底栏显示「派发临时工单」按钮(描边样式,带图标)
Scenario: 临时工单任务可继续派发
- WHEN 当前任务所属工单
workOrderType 为 temporary,且已保存原材料
- THEN 仍可点击「派发临时工单」,系统创建新的 LSSC 临时工单并复制原材料
Scenario: 已完成工单或任务仍可派发
- WHEN 生产工单或生产任务状态为
ywc(已完成),且任务已保存原材料
- THEN 在产出页仍可点击「派发临时工单」(含只读「查看」进入的执行弹窗)
Requirement: 原材料门禁
系统 SHALL 仅在来源任务原材料已填写完整且已保存(无未保存的 input 变更)时允许派发;否则按钮禁用或点击后提示。
Scenario: 未保存原材料
- WHEN 原材料存在未保存修改
- THEN 用户无法完成派发,并提示先保存原材料
Scenario: 原材料为空
- WHEN 来源任务无任何已保存原材料
- THEN API 返回 400,提示先填写并保存原材料
Requirement: 创建临时工单与复制原材料
派发确认后,系统 SHALL 创建 work_order_type=temporary 的生产工单(LSSC 编号);用户通过既有「派发生产任务」创建新任务后,系统 SHALL 将来源任务已保存的原材料复制至新任务 biz_production_task_input;SHALL NOT 复制来源任务产出(细胞产品)。
Scenario: 成功派发
- WHEN 用户填写备注并确认,随后在派发弹窗中成功创建临时工单下的生产任务
- THEN 新任务原材料与来源任务已保存原材料一致(样本/细胞产品类型与关联 id 一致)
Scenario: 不复制产出
- WHEN 来源任务已保存多条产出(细胞产品)
- THEN 新任务原材料中不包含上述产出记录
Requirement: 新增临时工单弹窗一致
派发时弹出的备注弹窗 SHALL 与生产工单「临时」Tab「新增临时工单」交互一致(标题、备注字段、确认/取消)。
Scenario: 弹窗交互
- WHEN 用户点击「派发临时工单」且通过原材料门禁
- THEN 展示「新增临时工单」弹窗,确认后创建临时工单