diff --git a/inventory-backend/app/api/v1/inbound/stock.py b/inventory-backend/app/api/v1/inbound/stock.py index 5b683ec..bcd9084 100644 --- a/inventory-backend/app/api/v1/inbound/stock.py +++ b/inventory-backend/app/api/v1/inbound/stock.py @@ -602,8 +602,10 @@ def add_draft(): # 调整后的账面可用库存 = 账面总库存 - 借出未还数量 adjusted_stock_qty = stock_qty - total_borrowed - # 查找是否已存在 - draft = StocktakeDraft.query.filter_by(user_id=user_id, uuid=uuid, session_id=session_id).first() + # ★ 查找是否已存在:按 (session_id, uuid) 去重,不按 user_id 隔离 + # 修复: 同一盘点单多个用户(手机/平板不同账号)操作同一物料时, + # 之前按 user_id 匹配导致每个用户各建一条 → 重复记录 + draft = StocktakeDraft.query.filter_by(uuid=uuid, session_id=session_id).first() if draft: # 如果已存在,更新数量和时间 @@ -613,6 +615,8 @@ def add_draft(): draft.diff_qty = quantity - adjusted_stock_qty draft.source_table = source_table draft.stock_id = stock_id + # 更新操作用户(最后操作者) + draft.user_id = user_id # ★ 新增: 保存备注 if remark is not None: draft.remark = remark.strip() if isinstance(remark, str) else remark