fix: webhook 匹配支持 external_serial 外部业务序列号
- mom-inbound/mom-outbound 用 or_ 双字段联合匹配 serial_number 与 external_serial - MOM 推送 ceshi123 等自定义序列号时也能精准认领产品并闭环状态
This commit is contained in:
@ -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,
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user