60 lines
4.9 KiB
Markdown
60 lines
4.9 KiB
Markdown
# T01 亚马逊托盘标
|
|
|
|
## 已确认口径
|
|
|
|
2026-09-16 用户确认:目的仓展示 `SCK8` 这样的 FBA 仓码;完整托盘号中的仓库部分继续使用 `141` 这样的内部业务编号;国内和海外全部统一走同一打印流程。
|
|
|
|
例如:顶部 `SCK8`,条码内容与底部文字均为 `MSCU6639870-141-001`。此处为脱敏示例。打印不重新生成或替换已有托盘号,仓库内部业务编号也不等于数据库 ID。
|
|
|
|
参考原稿:[亚马逊托盘标.pdf](亚马逊托盘标.pdf)。
|
|
|
|
| 项目 | 实现口径 |
|
|
| --- | --- |
|
|
| 纸张 | 297×210 mm,A4 横向,黑白,每托一页 |
|
|
| 顶部 | 正式 FBA 仓码,如 SCK8,居中;字号上限 280 pt,按 267 mm 可用宽度适配,完整保留仓码 |
|
|
| 中间 | Code 128 矢量一维条码,编码完整托盘号;宽 230 mm、高 30 mm |
|
|
| 底部 | 完整托盘号,居中;长编号缩小字号适配,不截断 |
|
|
| 其他字段 | 不展示独立柜号、PALLET 序号、仓库名称、产地或二维码 |
|
|
| 国内打印 | 全部打印、按 FBA 仓前 N 张补打,继续从原入口进入 |
|
|
| 海外打印 | 当前 FBA 托盘单张补打,继续从原入口进入 |
|
|
| 数据来源 | 国内冻结标签 `destinationWarehouseCode/palletCode`;海外当前托盘 `fbaWarehouseCode/palletCode` |
|
|
| 统一流程 | 原业务入口鉴权并读取权威事实 → 同一 Print 内部接口 → 同一模板及校验 → 下载 PDF |
|
|
|
|
## 实现范围
|
|
|
|
版式调整:用户要求顶部仓码尽量放大,并允许缩短条码。仓码字号上限由 96 pt 提高到 280 pt,条码高度由 55 mm 降为 30 mm,调整两者垂直位置以保持清晰间隔;条码宽度、扫码内容与底部托盘号保持一致。本次为尚未发布模板的版式迭代。
|
|
|
|
该调整已重新通过 `mvn -pl print -am test -q`,包含普通及 80 位长编码的 Code 128 反向解码。已重新生成 PDF 并渲染目检,放大仓码无裁切,与条码及底部文字无重叠;实物打印与 PDA 扫码仍待人工确认。
|
|
|
|
- Print 新增 `FBA_PALLET_A4_LANDSCAPE_V1`,内部接口 `POST /internal/print/v1/pdfs/fba-pallet-labels`。
|
|
- 请求只接受 `fbaWarehouseCode` 与 `palletCode` 两个标签业务字段,条码内容直接取 `palletCode`,避免文字与扫码内容不一致。
|
|
- FBA 仓码为 1–32 位大写字母、数字或连字符,首位不是连字符。完整托盘号为 1–80 位可打印 ASCII,禁止首尾空格;不合法数据明确报错,不裁切或改号。
|
|
- Firstleg `LoadingPalletLabelService` 与海外资源服务 `PalletLabelPrintService` 均调用上述内部接口;FBA 打印不再调用 100×100 mm 入仓唛头模板。
|
|
- 其他类型仍由各自业务模板处理;本次没有改动箱唛、一件代发托盘、私人仓、仓储或退货标签。
|
|
- 托盘码生成、海外来源托盘沿用及补码编号规则不变;海外柜级补码沿用已有头程前缀和连续序号。
|
|
- 公网 API、页面按钮、权限和区域 Gateway 路由不变;新 Print 接口只允许内部服务令牌访问,不加入公网路由。
|
|
|
|
## 部署与验收
|
|
|
|
需要发布的服务为 `print-service`、`firstleg-service`、`warehouse-overseas-service`;先发布支持新接口的 Print,再发布两个调用服务。无需发布 Gateway、新配置或数据库变更。本轮不执行环境部署。
|
|
|
|
2026-09-16 离线验证结果:
|
|
|
|
| 检查 | 结果 |
|
|
| --- | --- |
|
|
| `mvn -pl print,warehouse-overseas-service -am test -q` | 通过;Print 63 项中 62 通过、1 项最大容量可选测试未启用,海外资源服务 95 项全部通过 |
|
|
| `mvn -pl firstleg -am test "-Dtest=LoadingPalletLabelServiceTest,InboundCartonLabelPrintServiceTest" "-Dsurefire.failIfNoSpecifiedTests=false" -q` | 10 项定向测试通过;包含国内全量/按仓打印映射与已有箱唛/一件代发调用回归 |
|
|
| `node scripts/mapper-scan-contract.mjs` | 通过 |
|
|
| `node --test scripts/gateway-route-contract.test.mjs` | 5 项通过;内部 Print 路径未暴露到公网 |
|
|
| `./scripts/agents-index-contract.ps1` | 1052 项检查通过 |
|
|
| 新增/修改 OpenAPI | SnakeYAML 解析通过 |
|
|
| 新版 PDF | 使用实际 Print 服务类离线生成并渲染目检;字号、间距及完整编号无裁切;测试覆盖多页顺序、嵌入字体、300 DPI Code 128 反向解码和 80 位长编码 |
|
|
|
|
本轮生成的脱敏 PDF 位于工作区 `output/pdf/fba-pallet-label.pdf`,属于可重新生成的验收产物,不纳入源码或业务索引。没有执行环境部署、真实 HTTP 或真机打印。
|
|
|
|
必须区分以下证据:
|
|
|
|
- 离线 PDF 检查:尺寸、页数、顺序、完整文本、嵌入字体、Code 128 解码及长编码。
|
|
- 调用映射检查:国内整批/按仓补打、海外单张均使用同一模板,顶部仓码与托盘内部编号不混用。
|
|
- 人工验收:国内与海外入口真实下载、纸张按实际大小打印、PDA 扫描完整托盘号。当前待部署后人工实打确认;离线测试不代替真机验收。
|