# 生产工单隐藏无效协议关联工单 ## 背景 【生产工单】【我的生产任务】中,细胞存储 / 科研捐赠类入库生产工单在关联采集协议或捐赠协议进入无效态后,默认不应干扰日常列表;用户可通过检索区勾选框查看历史单据。 ## 无效协议状态 与样本接收模块一致:`yzf`(已作废)、`sdfq`(属地废弃)。 常量:`INACTIVE_PROTOCOL_STATUSES = ("yzf", "sdfq")`,置于 `app/core/protocol_status_display.py`。 ## 过滤规则 | 条件 | 默认勾选(隐藏) | 取消勾选 | |------|------------------|----------| | 入库 + 细胞存储 + 协议状态 ∈ 无效集 | 不展示 | 展示 | | 入库 + 科研捐赠 + 协议状态 ∈ 无效集 | 不展示 | 展示 | | 出库 / 临时 / 其他状态 | 始终展示 | 始终展示 | | 协议缺失或状态为空 | 展示 | 展示 | ## 影响范围 - Tab:细胞存储生产、科研捐赠生产、「所有」(仅过滤列表中入库两类条目) - 页面:生产工单(manage)、我的生产任务(mine) - Tab 角标 / 侧栏待办:始终按默认(隐藏无效协议关联工单)统计 ## 实现 - 后端 `excludeVoidProtocol` 查询参数,默认 `true` - `list_production_work_orders`、`list_production_tasks`、`_base_active_step_count_query` 共用 SQL 过滤 - 前端检索区 `el-checkbox`,文案「不展示协议已作废或属地废弃的工单」,默认勾选 ## 非目标 - 不改变工单自身 `workOrderStatus=yzf` 的筛选逻辑 - 不隐藏 `zky` / `zckc` / `ygq` 等状态