空运人工价锁舱现拉补全舱位并拦清缺参;成交/报价填表与工单陆运费率展示同步收紧。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -827,9 +827,14 @@ class MemoryLedger:
|
||||
operator_name: str = "",
|
||||
instruction_text: str = "",
|
||||
airline: str = "",
|
||||
flight_no: str = "",
|
||||
) -> dict[str, Any]:
|
||||
"""单测可注入 _cabin_lock_result;默认成功。"""
|
||||
_ = sender_id, operator_name, instruction_text, airline
|
||||
"""单测可注入 _cabin_lock_result;默认成功。
|
||||
|
||||
纯人工且视图无 TMS 舱位时,缺 option/航司/航班 → lock_incomplete,
|
||||
对齐主账「现拉仍缺才回」的口径(内存账不会真查 TMS)。
|
||||
"""
|
||||
_ = sender_id, operator_name, instruction_text
|
||||
forced = getattr(self, "_cabin_lock_result", None)
|
||||
if isinstance(forced, dict):
|
||||
return dict(forced)
|
||||
@@ -845,6 +850,27 @@ class MemoryLedger:
|
||||
quote_id = str(quote.get("quoteId") or "").strip()
|
||||
if quote_id.upper().startswith("QT-WO"):
|
||||
quote_id = ""
|
||||
air_opts = quote.get("airOptions") or quote.get("air_options") or []
|
||||
has_tms_cabin = bool(quote_id) or bool(air_opts)
|
||||
opt = (option_no or "").strip()
|
||||
air = (airline or "").strip()
|
||||
fn = (flight_no or "").strip()
|
||||
if not has_tms_cabin:
|
||||
missing: list[str] = []
|
||||
if not opt:
|
||||
missing.append("舱位编号optionNo")
|
||||
if not air:
|
||||
missing.append("航司airline")
|
||||
if not fn:
|
||||
missing.append("航班号flightNo")
|
||||
if missing:
|
||||
return {
|
||||
"ok": False,
|
||||
"error": "lock_incomplete",
|
||||
"failReason": "锁舱参数不完整,缺少:"
|
||||
+ "、".join(missing)
|
||||
+ "。请按「AIR-OPT01 CZ 航班CZ327」补舱位、航司和航班号后再锁。",
|
||||
}
|
||||
return {
|
||||
"ok": True,
|
||||
"status": "LOCKED",
|
||||
|
||||
Reference in New Issue
Block a user