3.2 KiB
3.2 KiB
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 校验规则
- 运单号必须为纯数字
- 运单号必须以 "420" 开头
- 运单号长度至少为 7 位
- 对于 420 + 5 位邮编的情况:
- 从第 9 位开始(索引 8)检查是否以 92/93/94/95 开头
- 对于 420 + 9 位邮编的情况:
- 从第 13 位开始(索引 12)检查是否以 92/93/94/95 开头
2.3 备注提取规则
- 对于 420 + 5 位邮编的情况:提取从第 9 位开始的部分作为备注
- 对于 420 + 9 位邮编的情况:提取从第 13 位开始的部分作为备注
2.4 渠道识别规则
在 IdentifyChannel 方法中,需要同时支持:
- 直接以 92/93/94 开头的 USPS 运单号
- 420 + 5 位邮编 + 92/93/94 开头的 USPS 运单号
- 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 运单号
- 420 + 5 位邮编 + 92 开头:420123459212345678
- 420 + 5 位邮编 + 93 开头:420123459312345678
- 420 + 5 位邮编 + 94 开头:420123459412345678
- 420 + 5 位邮编 + 95 开头:420123459512345678
- 420 + 9 位邮编 + 92 开头:4201234567899212345678
- 420 + 9 位邮编 + 93 开头:4201234567899312345678
- 420 + 9 位邮编 + 94 开头:4201234567899412345678
- 420 + 9 位邮编 + 95 开头:4201234567899512345678
4.2 无效的 USPS 运单号
- 非纯数字:42012345ABC12345678
- 不以 420 开头:123123459212345678
- 长度不足:420123
- 420 + 5 位邮编但不以 92/93/94/95 开头:420123451212345678
- 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. 预期结果
修改后,系统应能正确处理以下情况:
- 识别并处理 420 + 5 位邮编 + 92/93/94/95 开头的 USPS 运单号
- 识别并处理 420 + 9 位邮编 + 92/93/94/95 开头的 USPS 运单号
- 正确提取以 92/93/94/95 开头的部分作为备注
- 在渠道识别中正确识别这两种格式的 USPS 运单号