# 当天应该换单数最终匹配修复计划

## 差异现象
- 明细统计（正确）：9593单
- 汇总SQL统计：8537单
- 差值：1056单，其中包含16单没有首次扫描时间的订单

## 根因分析
1. **无扫描时间订单被过滤**：当交接单没有首次扫描记录时，`FirstScanTime_UTC5`为null，GREATEST函数计算时包含null参数会返回null，导致`DATE(AssessmentBaseTime)`为null，和日期比较时返回false，这些订单被错误过滤
2. **标签率条件多余**：考核时间本身只有在标签率≥80%时才会计算，有考核时间的订单必然满足标签率≥80%，额外加`LabelRate >= 0.8`条件属于冗余，可能导致边界情况漏算

## 修复方案
### 最终统计规则
「当天应该换单数」= 所有满足以下条件的订单：
1. 有考核时间（AssessmentTime IS NOT NULL）
2. 考核基准日期是当天 或 考核截止日期是当天
> 自动满足标签率≥80%，无需额外判断

## 执行步骤
1. 修复考核基准时间计算逻辑：
   - 当`FirstScanTime_UTC5`为null时，直接用`GREATEST(fr.ReceiptTime, flr.FirstQualifiedTime_UTC5)`计算基准时间，不包含null参数
2. 移除汇总SQL中「当天应该换单数」的`ofi.LabelRate >= 0.8`条件
3. 验证5月1日统计结果 = 9593（与明细完全一致）

## 验证方法
修复后运行汇总SQL，5月1日的「当天应该换单数」数值必须等于明细统计的9593，完全匹配则修复完成。