diff --git a/backend/app/api/v1/endpoints/webhooks.py b/backend/app/api/v1/endpoints/webhooks.py index b60a76e..6fa4f6a 100644 --- a/backend/app/api/v1/endpoints/webhooks.py +++ b/backend/app/api/v1/endpoints/webhooks.py @@ -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, ) )