# 尊祐客户分拣信息回传 - 实现计划

## [ ] 任务 1: 实现 SendWebhookToZunYou 方法
- **Priority**: P0
- **Depends On**: None
- **Description**:
  - 在 LabelController.cs 中添加新的私有方法 SendWebhookToZunYou
  - 方法参数包括 waybillNumber, scanTime, printTime, scanResult, finalMileTrackingNumber
  - 实现向尊祐系统发送回传通知的逻辑
  - 构造符合尊祐系统要求的 JSON 数据
  - 设置请求头包含指定的 token
  - 处理响应和错误情况
- **Acceptance Criteria Addressed**: AC-2, AC-3, AC-4, AC-5
- **Test Requirements**:
  - `programmatic` TR-1.1: 方法能够正确构造回传数据格式
  - `programmatic` TR-1.2: 方法能够正确设置请求头的 token
  - `programmatic` TR-1.3: 方法能够正确处理网络错误和响应错误
  - `human-judgment` TR-1.4: 方法的代码风格与现有回传方法一致
- **Notes**: 参考现有的 SendWebhookToPatuen 和 SendWebhookToXunTong 方法的实现方式

## [ ] 任务 2: 在回传逻辑中添加尊祐客户判断
- **Priority**: P0
- **Depends On**: 任务 1
- **Description**:
  - 在 DownloadLabelByWaybillNumber 方法的 finally 块中，添加对尊祐客户(ZY_SH)的判断
  - 当客户代码为 ZY_SH 时，调用 SendWebhookToZunYou 方法
  - 确保使用异步方式调用，不阻塞主流程
- **Acceptance Criteria Addressed**: AC-1
- **Test Requirements**:
  - `programmatic` TR-2.1: 当客户代码为 ZY_SH 时，能够触发回传
  - `programmatic` TR-2.2: 回传调用不阻塞主流程
  - `human-judgment` TR-2.3: 代码逻辑与现有回传判断逻辑一致
- **Notes**: 参考现有的 PT_GZ 和 XT_JX 客户的回传判断逻辑

## [ ] 任务 3: 测试回传功能
- **Priority**: P1
- **Depends On**: 任务 1, 任务 2
- **Description**:
  - 模拟尊祐客户的标签下载请求
  - 验证回传请求是否正确发送
  - 检查日志记录是否完整
  - 验证错误处理是否正常
- **Acceptance Criteria Addressed**: AC-1, AC-2, AC-3, AC-4, AC-5
- **Test Requirements**:
  - `programmatic` TR-3.1: 系统能够正确触发尊祐客户的回传
  - `programmatic` TR-3.2: 回传数据格式符合要求
  - `human-judgment` TR-3.3: 日志记录完整且清晰
  - `human-judgment` TR-3.4: 错误处理机制正常工作
- **Notes**: 可以使用现有的测试方法 TestXunTongWebhook 作为参考，创建类似的测试方法