日期:2026-08-17
状态:已实现
范围:【质检工单】【我的质检任务】的「细胞存储」「科研捐赠」Tab
当前入库列表后端按工单 create_time DESC 分页;前端卡片再按「协议组最新创建时间 + 样本编码」重排,组内工单另按触发来源权重 + 创建时间升序。用户希望细胞存储 / 科研捐赠统一按实验室入库编码倒序,同编码下按创建时间倒序,且跨页一致。
| 项 | 约定 |
|---|---|
| 页面 | 仅【质检工单】+【我的质检任务】 |
| Tab | 仅 inbound_cell_storage、inbound_research_donation |
| 主排序 | lab_storage_code / labStorageCode 字符串倒序 |
| 次排序 | 工单 create_time / createTime 倒序 |
| 空编码 | 按空字符串 '' 直接参与倒序比较 |
| 分页 | 后端按上述规则排序后再分页(跨页一致) |
| 其它 Tab | 「全部 / 出库 / 临时」等不改 |
后端入库两 Tab 专用 ORDER BY(JOIN 样本接收取编码)+ 前端展示排序对齐同一规则。
不采用:仅前端页内重排;工单表冗余 lab_storage_code。
lab_storage_code 在 biz_sample_reception,不在 biz_qc_work_order。列表排序通过 LEFT JOIN 取得,COALESCE(lab_storage_code, '')。
JOIN 对齐现有 enrich 语义:优先 BizQcWorkOrder.reception_id;无接收 ID 时再按 sample_code + tenant(及必要的 del_flag)关联,避免生产触发等无 reception_id 的工单编码全空导致乱序。
list_work_ordersreception_source ∈ {cell_storage, research_donation}:ORDER BY COALESCE(lab_storage_code, '') DESC, BizQcWorkOrder.create_time DESCcreate_time DESClist_mine_tasksreception_source 时:ORDER BY COALESCE(lab_storage_code, '') DESC, BizQcWorkOrder.create_time DESC,并以 work_order_no / task_no 作为稳定次序create_time DESC 等规则fetchAllMineTasks 拉全量;聚合后按同一规则排序再客户端分页| 文件 | 改动 |
|---|---|
qc-work-order-inbound-sample-cards.ts |
buildInboundSampleListItems:卡片序改为编码倒序 → 组内最大 createTime 倒序;去掉「协议组再样本编码」主序 |
qc-work-order-groups.ts |
仅入库路径组内排序改为 createTime 倒序(取消触发来源权重);出库 groupOutboundQcWorkOrders 保持原组内规则不变 |
qc-mine-task-groups.ts |
入库两 Tab:分页前对工单条目按编码 DESC → 工单创建时间 DESC 排序 |
不改:同协议样本胶囊内按 sampleCode 的互链排序;全部 / 出库 / 临时展示逻辑。
卡片代表字段:
labStorageCode,否则 ''createTime(同编码下新的在前)