From 28c574ae3685f4af26258ae80fbe8b8b90b23907 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Fri, 11 Sep 2026 18:14:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E6=89=B9=E6=8F=90=E4=BA=A4=E5=8E=9F?= =?UTF-8?q?=E5=AD=90=E6=80=A7=E7=9A=84=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 +- api/pda-loading.js | 3 +- pages/picking/picking.vue | 66 +++++++++++++++++++++------ tests/pda-loading-api.test.mjs | 7 ++- tests/picking-demo-readiness.test.mjs | 5 +- tests/picking-state.test.mjs | 28 ++++++++++++ utils/picking-state.js | 22 +++++++++ 7 files changed, 114 insertions(+), 19 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 09bdd97..4d92c57 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,7 +19,7 @@ ## 作业流程原则 - 扫码是主路径:输入焦点、连续扫描、防抖、重复码、无效码、错箱和扫描反馈必须作为一等场景处理。 -- 拣货扫描身份是后端下发的稳定箱唛箱码 `boxCode`;一次有效且未重复的箱码扫描表示拣出一箱。SKU、商品件数、入库单号和页面展示文案只用于辅助识别,不得作为扫码匹配键或拣货计数单位。 +- 普通散箱拣货的扫描身份是后端下发的稳定箱唛箱码 `boxCode`,一次有效且未重复的箱码扫描表示拣出一箱;一件代发已封托的 `SEALED_PALLET` 明细允许扫描系统 `palletNo` 或托内任一成员 `boxCode` 定位整托,但两种入口都必须按计划快照中的 `palletNo` 以 `PICK_PALLET` 一次性提交,不能逐箱累计、部分拣货或跳拣。SKU、商品件数、入库单号和页面展示文案只用于辅助识别,不得作为扫码匹配键。 - 进入任务时由服务端标记“拣货中”;扫描结果先写入绑定作业员、任务和柜次的设备持久化草稿,仅在点击提交时批量写后端,禁止逐码提交。 - 允许部分拣货和跳拣,但每个未完成项必须填写异常原因;存在未解决异常时任务挂起,不能完成或推进 `LOADED`。 - 作业提交使用对员工不可见的轻量幂等标识和服务端版本;重复提交返回原结果,版本冲突提示刷新后重试,不静默覆盖。 diff --git a/api/pda-loading.js b/api/pda-loading.js index 14814b1..e674bb4 100644 --- a/api/pda-loading.js +++ b/api/pda-loading.js @@ -119,7 +119,8 @@ export async function submitContainerPickingBatch(task, actions, { warehouseId, pickedPackageCount: action.type === 'PICK' ? action.pickedPackageCount : null, finalPickedPackageCount: action.type === 'PARTIAL' ? action.finalPickedPackageCount : null, version: action.version, - reason: action.type === 'SKIP' ? action.reason : null + reason: action.type === 'SKIP' ? action.reason : null, + palletNo: action.type === 'PICK_PALLET' ? action.palletNo : null })) return request({ url: `/first-leg/pda-loading/tasks/${encodeURIComponent(task.taskId)}/batch`, diff --git a/pages/picking/picking.vue b/pages/picking/picking.vue index e111c1d..808cd93 100644 --- a/pages/picking/picking.vue +++ b/pages/picking/picking.vue @@ -38,7 +38,7 @@ - + {{ lastScanResult.type === 'success' ? '✓' : '!' }} @@ -78,7 +78,7 @@ :class="itemState(item)" > - 拣货明细 + {{ isSealedPalletItem(item) ? '整托拣货' : '拣货明细' }} 已拣 ✓ @@ -98,7 +98,10 @@ {{ item.location }} - + + 扫描托盘码 {{ item.palletNo }} 或托内任一箱码,确认整托装柜 + + @@ -333,7 +336,7 @@