上传源代码版本

This commit is contained in:
Im-Jenisson
2026-06-01 16:30:29 +08:00
commit b2a9b7d3c2
462 changed files with 104365 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
# 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 运单号