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:
|
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")
|
raise HTTPException(status_code=401, detail="Unauthorized: invalid X-API-Key")
|
||||||
|
|
||||||
# ── 按 serial_number(优先)或 sku 匹配"当前位于仓库"的产品 ──
|
# ── 按 serial_number / external_serial(双字段联合)或 sku 匹配"当前位于仓库"的产品 ──
|
||||||
product = None
|
product = None
|
||||||
if payload.serial_number:
|
if payload.serial_number:
|
||||||
product = (
|
product = (
|
||||||
await db.execute(
|
await db.execute(
|
||||||
select(Product).where(
|
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",
|
Product.current_location_id == "virtual_warehouse",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -151,7 +154,10 @@ async def mom_outbound_webhook(
|
|||||||
product = (
|
product = (
|
||||||
await db.execute(
|
await db.execute(
|
||||||
select(Product).where(
|
select(Product).where(
|
||||||
Product.serial_number == payload.serial_number,
|
or_(
|
||||||
|
Product.serial_number == payload.serial_number,
|
||||||
|
Product.external_serial == payload.serial_number,
|
||||||
|
),
|
||||||
where_cond,
|
where_cond,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user