Files
zkxw/docs/superpowers/specs/2026-07-06-production-hide-inactive-protocol-design.md
T
2026-07-06 16:59:53 +08:00

38 lines
1.5 KiB
Markdown

# 生产工单隐藏无效协议关联工单
## 背景
【生产工单】【我的生产任务】中,细胞存储 / 科研捐赠类入库生产工单在关联采集协议或捐赠协议进入无效态后,默认不应干扰日常列表;用户可通过检索区勾选框查看历史单据。
## 无效协议状态
与样本接收模块一致:`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` 等状态