diff --git a/inventory-backend/app/services/outbound_service.py b/inventory-backend/app/services/outbound_service.py index 1a14fe0..6b86b92 100644 --- a/inventory-backend/app/services/outbound_service.py +++ b/inventory-backend/app/services/outbound_service.py @@ -238,10 +238,9 @@ class OutboundService: 'signature_path': data.get('signature_path'), 'operator_name': operator_name, 'remark': data.get('remark'), - # ★ 申请人从**关联审批单**带出。落这一列是为了让后续「退回 → 补发」 - # 能把补发单挂回真正该拿东西的人名下 —— consumer_name 是自由文本 - # (可能是客户名),不能作为依据。 - 'applicant_id': approval.applicant_id, + # ⚠ applicant_id 不在这里赋值 —— 此刻 approval 尚未查询(见下方 + # 第 2 步「强制按单出库」),在这里引用它会直接 UnboundLocalError。 + # 待 approval 取出并校验后再补进本字典。 } beijing_tz = timezone(timedelta(hours=8)) @@ -279,6 +278,13 @@ class OutboundService: f"仅已通过的审批单方可执行出库" ) + # ★ 申请人从**关联审批单**带出。落这一列是为了让后续「退回 → 补发」能把 + # 补发单挂回真正该拿东西的人名下 —— consumer_name 是扫码时自由填写的 + # 领用人/客户名,不能作为依据。 + # ⚠ 必须放在 approval 取出并校验**之后**:common_data 在上面就已构造, + # 在那里引用 approval 会直接 UnboundLocalError(上线时踩过)。 + common_data['applicant_id'] = approval.applicant_id + model_map = { 'stock_buy': StockBuy, 'stock_semi': StockSemi,