spec.md 4.8 KB

ADDED Requirements

Requirement: 出库放行审核列表 API

系统 SHALL 提供 GET /web/admin/pilot-release-reviews 端点,返回分页的输注计划列表(附带出库放行审核状态)。列表 SHALL 基于 biz_pilot_infusion_schedule 构建,LEFT JOIN biz_outbound_release_review 获取审核结论。每个列表项 SHALL 包含:申请单号、患者姓名、输注计划编号、细胞类型、规格、输注时间、生产工单状态、质检工单状态、审核结论、审核时间。

Scenario: 查询全部输注计划审核状态

  • WHEN 管理员请求 GET /web/admin/pilot-release-reviews?page=1&page_size=20
  • THEN 系统返回分页列表,包含所有未删除的输注计划及其对应的审核状态

Scenario: 按审核结论筛选

  • WHEN 管理员请求 GET /web/admin/pilot-release-reviews?review_conclusion=tg
  • THEN 系统只返回审核结论为"通过"的输注计划

Scenario: 按关键词搜索

  • WHEN 管理员请求 GET /web/admin/pilot-release-reviews?keyword=ZSSQ202605260005
  • THEN 系统返回匹配申请单号或患者姓名的输注计划

Requirement: 出库放行审核详情聚合 API

系统 SHALL 提供 GET /web/admin/pilot-release-reviews/{schedule_id}/detail 端点,返回指定输注计划的完整审核上下文。详情 SHALL 聚合以下 6 个信息域:

  1. 申请单信息:申请单号、申请单名称、渠道名称、状态
  2. 患者信息:姓名、性别、年龄、联系电话
  3. 输注计划信息:细胞类型、规格、输注时间、地点、方式、生产状态、质检状态、输注状态
  4. 生产工单+任务信息:工单号、状态、每个任务的投入/产出/工艺步骤及结论
  5. 质检工单+任务信息:工单号、状态、实验室/第三方项目、每个任务的检测结果及结论
  6. 审核记录信息:审核结论、备注、附件、审核人、审核时间

Scenario: 查看完整审核详情

  • WHEN 管理员请求 GET /web/admin/pilot-release-reviews/{schedule_id}/detail
  • THEN 系统返回包含上述 6 个信息域的完整聚合数据

Scenario: 输注计划无生产工单

  • WHEN 输注计划尚未创建出库生产工单
  • THEN 生产工单+任务信息域返回空数组

Scenario: 输注计划无质检工单

  • WHEN 输注计划尚未创建出库质检工单
  • THEN 质检工单+任务信息域返回空数组

Requirement: 出库放行审核操作 API

系统 SHALL 提供 PUT /web/admin/pilot-release-reviews/{schedule_id}/review 端点用于单条审核,以及 PUT /web/admin/pilot-release-reviews/batch-review 用于批量审核。审核操作 SHALL 创建或更新 biz_outbound_release_review 记录,设置 review_conclusion(tg/btg)、review_remark、review_attachments、reviewer_user_id、review_time。审核时 SHALL 自动查找并填充 production_work_order_id 和 qc_work_order_id。

Scenario: 单条审核通过

  • WHEN 管理员提交审核 PUT /pilot-release-reviews/{schedule_id}/review body={"review_conclusion":"tg","review_remark":"合格"}
  • THEN 系统创建或更新审核记录,设置结论为"通过"、备注、审核人、审核时间

Scenario: 单条审核不通过

  • WHEN 管理员提交审核结论为"btg"
  • THEN 系统记录"不通过"结论

Scenario: 批量审核

  • WHEN 管理员提交 PUT /pilot-release-reviews/batch-review body={"schedule_ids":["id1","id2"],"review_conclusion":"tg","review_remark":"批量通过"}
  • THEN 系统为所有指定排程创建/更新审核记录

Scenario: 重复审核覆盖

  • WHEN 输注计划已有审核记录,再次提交审核
  • THEN 系统更新已有记录(覆盖审核结论、备注、附件、审核人、时间)

Requirement: 审核记录关联工单

创建审核记录时,系统 SHALL 根据 infusion_schedule_id 自动查询关联的出库生产工单(biz_production_work_order WHERE infusion_schedule_id=? AND work_order_type='outbound')和出库质检工单(biz_qc_work_order WHERE infusion_schedule_id=? AND qc_biz_type='outbound'),并将工单 ID 填充到 production_work_order_id 和 qc_work_order_id 字段。

Scenario: 自动关联生产工单

  • WHEN 为某输注计划创建审核记录,且该计划存在 work_order_type='outbound' 的生产工单
  • THEN 审核记录的 production_work_order_id 自动填充为该生产工单的 ID

Scenario: 自动关联质检工单

  • WHEN 为某输注计划创建审核记录,且该计划存在 qc_biz_type='outbound' 的质检工单
  • THEN 审核记录的 qc_work_order_id 自动填充为该质检工单的 ID

Scenario: 无关联工单

  • WHEN 输注计划尚无出库生产或质检工单
  • THEN 对应工单 ID 字段为空字符串