Files
LabelChange-server/.trae/documents/当天应该换单数最终匹配修复计划.md
2026-06-01 16:30:29 +08:00

1.5 KiB
Raw Blame History

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

差异现象

  • 明细统计正确9593单
  • 汇总SQL统计8537单
  • 差值1056单其中包含16单没有首次扫描时间的订单

根因分析

  1. 无扫描时间订单被过滤:当交接单没有首次扫描记录时,FirstScanTime_UTC5为nullGREATEST函数计算时包含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与明细完全一致

验证方法

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