refactor(db_compare): 差缺统计改为应到驱动,以出库日为批次归属日
将未到统计从实到驱动(实到锚点反推批次)改为应到驱动(batch_out_date 归属日直接取应到批次),以吸收应到任务提前 1~2 天提交的扰动(韵达固定 +1、中通偶发 +1)。 - expected_record 新增 out_date / batch_out_date + 索引;入库解析出库时间并聚合批次归属日,支持历史回填 - 新增 compare_site_outdate 应到驱动入口,保留 compare_site_date 实到驱动作对照 - 未到任务 / POST /compare / 全站汇总切换到应到驱动 - 附现状梳理、设计、实现总结三篇文档
This commit is contained in:
@@ -265,7 +265,7 @@ class CompareRequest(BaseModel):
|
||||
|
||||
@app.post("/compare")
|
||||
def run_compare(req: CompareRequest):
|
||||
"""DB 差缺比对:以实到扫描日期为锚点,反推交接批次,展开全量比对。
|
||||
"""DB 差缺比对(应到驱动):以批次归属日(batch_out_date)为锚,展开全量比对。
|
||||
返回统计指标 + 差缺明细。
|
||||
"""
|
||||
# 合法性校验
|
||||
@@ -284,11 +284,11 @@ def run_compare(req: CompareRequest):
|
||||
if target_date > today:
|
||||
raise HTTPException(status_code=400, detail=f"date 不可为未来日期: {req.date}")
|
||||
|
||||
result = db_compare.compare_site_date(req.site, req.date)
|
||||
result = db_compare.compare_site_outdate(req.site, req.date)
|
||||
if result is None:
|
||||
raise HTTPException(
|
||||
status_code=404,
|
||||
detail=f"{req.site} {req.date}: 当天无实到数据,无法比对",
|
||||
detail=f"{req.site} {req.date}: 当日无应到批次,无法比对",
|
||||
)
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user