From 52f1930f9ac108c8046fe619255a21625f338860 Mon Sep 17 00:00:00 2001 From: ywb <347742090@qq.com> Date: Tue, 16 Jun 2026 16:24:31 +0800 Subject: [PATCH] - --- agv_app/utils/mission_executor.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/agv_app/utils/mission_executor.py b/agv_app/utils/mission_executor.py index d7272fa..120aa70 100644 --- a/agv_app/utils/mission_executor.py +++ b/agv_app/utils/mission_executor.py @@ -780,7 +780,7 @@ class MissionExecutorV3: def _lookup_model(self, qr_value: Optional[str]) -> str: """通过 /api/customs/printer 接口查询机型,同时更新查验计数 - 如果机型不在当前报关单中,弹窗要求重新扫码/输入""" + 如果机型不在当前报关单中/超量/查询失败,均弹窗要求重新扫码/输入(不可跳过)""" if not qr_value: return "机器1" while True: @@ -803,40 +803,39 @@ class MissionExecutorV3: inspected = matched.get('inspected', 0) quantify = matched.get('quantify', 0) # 超量检查:已查验数量超过报关单数量 - if inspected > quantify: + if inspected >= quantify: self._log(f" ⚠️ 机型「{model}」已查验 {inspected} 台,超过报关单数量 {quantify} 台") new_qr = self._request_manual_qr( - f"机型「{model}」在报关单中只需查验 {quantify} 台,\n当前已扫到第 {inspected} 台,请重新扫描或手动输入正确的二维码:" + f"机型「{model}」在报关单中只需查验 {quantify} 台,\n当前已扫到第 {inspected + 1} 台,请重新扫描或手动输入正确的二维码:" ) - # 超量时不能跳过,必须重新输入 if self._stop.is_set(): return model qr_value = new_qr - continue # 用新二维码重试 + continue self._log(f" 🏷️ 机型: {model} (物料:{inv_code}) — 查验 {inspected}/{quantify}") return model elif has_inspection and not matched: - # 有查验但机型不在报关单中 → 弹窗 + # 有查验但机型不在报关单中 → 弹窗(不可跳过) self._log(f" ⚠️ 机型「{model}」(物料:{inv_code})不在当前报关单中") new_qr = self._request_manual_qr( f"二维码「{qr_value}」对应机型「{model}」不在当前报关单中,\n请重新扫描或手动输入正确的二维码:" ) - if new_qr is None or self._stop.is_set(): - return model # 用户跳过/停止,保留原机型 + if self._stop.is_set(): + return model qr_value = new_qr - continue # 用新二维码重试 + continue else: # 无查验或匹配成功 self._log(f" 🏷️ 机型: {model} (物料:{inv_code})") return model else: self._log(f" ⚠️ printer 返回 ok=false: {data}") - # API 失败也弹窗 + # API 失败 / ok=false / 无数据 → 弹窗(不可跳过) self._log(f" ⚠️ 查询机型失败, HTTP {resp.status_code}") new_qr = self._request_manual_qr( - f"无法查询二维码「{qr_value}」对应的机型,\n请重新扫描或手动输入正确的二维码:" + f"无法查询二维码「{qr_value}」对应的机型信息,\n请重新扫描或手动输入正确的二维码:" ) - if new_qr is None or self._stop.is_set(): + if self._stop.is_set(): return "机器1" qr_value = new_qr except Exception as e: @@ -844,7 +843,7 @@ class MissionExecutorV3: new_qr = self._request_manual_qr( f"查询机型接口异常,请重新扫描或手动输入正确的二维码:" ) - if new_qr is None or self._stop.is_set(): + if self._stop.is_set(): return "机器1" qr_value = new_qr