Files
LabelChange-server/USPS_Tracking_Number_Validation_Spec.md
2026-06-01 16:30:29 +08:00

3.2 KiB
Raw Blame History

USPS 运单号校验规则规范

1. 需求概述

当前系统已支持 USPS 运单号格式420 开头 + 5 位邮编 + 以 92/93/94/95 开头的追踪号。现在需要补充支持 420 开头 + 9 位邮编 + 以 92/93/94/95 开头的追踪号的格式。

2. 详细需求

2.1 运单号结构

  • 现有格式420 + 5 位邮编 + 以 92/93/94/95 开头的追踪号
  • 新增格式420 + 9 位邮编 + 以 92/93/94/95 开头的追踪号

2.2 校验规则

  1. 运单号必须为纯数字
  2. 运单号必须以 "420" 开头
  3. 运单号长度至少为 7 位
  4. 对于 420 + 5 位邮编的情况:
    • 从第 9 位开始(索引 8检查是否以 92/93/94/95 开头
  5. 对于 420 + 9 位邮编的情况:
    • 从第 13 位开始(索引 12检查是否以 92/93/94/95 开头

2.3 备注提取规则

  • 对于 420 + 5 位邮编的情况:提取从第 9 位开始的部分作为备注
  • 对于 420 + 9 位邮编的情况:提取从第 13 位开始的部分作为备注

2.4 渠道识别规则

IdentifyChannel 方法中,需要同时支持:

  1. 直接以 92/93/94 开头的 USPS 运单号
  2. 420 + 5 位邮编 + 92/93/94 开头的 USPS 运单号
  3. 420 + 9 位邮编 + 92/93/94 开头的 USPS 运单号

3. 实现方案

3.1 修改 AssociateWaybillAsync 方法

BagTagService.cs 文件的 AssociateWaybillAsync 方法中,修改 USPS 运单号处理逻辑,以支持 420 + 9 位邮编的情况。

3.2 修改 IdentifyChannel 方法

BagTagService.cs 文件的 IdentifyChannel 方法中,修改 USPS 渠道识别逻辑,以支持 420 + 9 位邮编的情况。

4. 测试用例

4.1 有效的 USPS 运单号

  1. 420 + 5 位邮编 + 92 开头420123459212345678
  2. 420 + 5 位邮编 + 93 开头420123459312345678
  3. 420 + 5 位邮编 + 94 开头420123459412345678
  4. 420 + 5 位邮编 + 95 开头420123459512345678
  5. 420 + 9 位邮编 + 92 开头4201234567899212345678
  6. 420 + 9 位邮编 + 93 开头4201234567899312345678
  7. 420 + 9 位邮编 + 94 开头4201234567899412345678
  8. 420 + 9 位邮编 + 95 开头4201234567899512345678

4.2 无效的 USPS 运单号

  1. 非纯数字42012345ABC12345678
  2. 不以 420 开头123123459212345678
  3. 长度不足420123
  4. 420 + 5 位邮编但不以 92/93/94/95 开头420123451212345678
  5. 420 + 9 位邮编但不以 92/93/94/95 开头4201234567891212345678

5. 代码修改点

5.1 AssociateWaybillAsync 方法

  • 文件:d:\EPproject\LabelReplaceServer\src\BLL\Services\BagTagService.cs
  • 行号156-172
  • 修改内容:添加对 420 + 9 位邮编情况的处理

5.2 IdentifyChannel 方法

  • 文件:d:\EPproject\LabelReplaceServer\src\BLL\Services\BagTagService.cs
  • 行号298-317
  • 修改内容:添加对 420 + 9 位邮编情况的渠道识别

6. 预期结果

修改后,系统应能正确处理以下情况:

  1. 识别并处理 420 + 5 位邮编 + 92/93/94/95 开头的 USPS 运单号
  2. 识别并处理 420 + 9 位邮编 + 92/93/94/95 开头的 USPS 运单号
  3. 正确提取以 92/93/94/95 开头的部分作为备注
  4. 在渠道识别中正确识别这两种格式的 USPS 运单号