fix: webhook 匹配支持 external_serial 外部业务序列号

- mom-inbound/mom-outbound 用 or_ 双字段联合匹配 serial_number 与 external_serial
- MOM 推送 ceshi123 等自定义序列号时也能精准认领产品并闭环状态
This commit is contained in:
2026-09-01 15:25:42 +08:00
parent 3749aa766b
commit 2b889b99d6

View File

@ -46,13 +46,16 @@ async def mom_inbound_webhook(
if not settings.TRACK_WEBHOOK_KEY or x_api_key != settings.TRACK_WEBHOOK_KEY:
raise HTTPException(status_code=401, detail="Unauthorized: invalid X-API-Key")
# ── 按 serial_number(优先)或 sku 匹配"当前位于仓库"的产品 ──
# ── 按 serial_number / external_serial双字段联合)或 sku 匹配"当前位于仓库"的产品 ──
product = None
if payload.serial_number:
product = (
await db.execute(
select(Product).where(
Product.serial_number == payload.serial_number,
or_(
Product.serial_number == payload.serial_number,
Product.external_serial == payload.serial_number,
),
Product.current_location_id == "virtual_warehouse",
)
)
@ -151,7 +154,10 @@ async def mom_outbound_webhook(
product = (
await db.execute(
select(Product).where(
Product.serial_number == payload.serial_number,
or_(
Product.serial_number == payload.serial_number,
Product.external_serial == payload.serial_number,
),
where_cond,
)
)