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

87 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 运单号