72 lines
4.8 KiB
Markdown
72 lines
4.8 KiB
Markdown
## 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 字段为空字符串
|