空运成交后可在本群继续锁舱;调价同步舱位费用桶;出单按空运段骨架落费并保留陆运车型尺寸;导出文件名乱码修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
linmianxun
2026-10-14 15:34:24 +08:00
co-authored by Cursor
parent 92bdf56a4d
commit cc8529f569
29 changed files with 1941 additions and 276 deletions
+56 -1
View File
@@ -3420,8 +3420,63 @@ def air_release_fail(*, work_order_no: str, operator: str, reason: str) -> str:
)
def air_lock_ask_airline(*, work_order_no: str, airline_names: list[str] | None = None) -> str:
"""
已成交后点名航线去锁舱。只在空运群另发,不改共用的「已记录为已成交」。
后台 inquiring.air_lock_ask_airline。姓名来自岗位「航线·空运」。
"""
no = (work_order_no or "").strip()
names = [str(n or "").strip() for n in (airline_names or []) if str(n or "").strip()]
at = " ".join(f"@{n}" for n in names) if names else "@航线人员"
return _cabin_copy(
"inquiring.air_lock_ask_airline",
f"{no}请锁舱{at}",
ticket_no=no,
airline_names=at,
)
def air_lock_need_deal(*, sales_name: str) -> str:
"""
销售还没回复成交、未成交或协商中,航线就要锁。点名本单销售。
后台 inquiring.air_lock_need_deal。
"""
name = (sales_name or "").strip() or "销售"
return _cabin_copy(
"inquiring.air_lock_need_deal",
f"请销售@{name}先确认工单「已成交」",
sales_name=name,
)
def air_lock_blocked_negotiating(work_order_no: str) -> str:
"""协商中已经回过,不能再当成没回复。后台 inquiring.air_lock_negotiating。"""
no = (work_order_no or "").strip()
return _cabin_copy(
"inquiring.air_lock_negotiating",
f"工单{no}还在协商中,成交后才能锁舱。",
ticket_no=no,
)
def air_lock_blocked_lost(work_order_no: str) -> str:
"""未成交不能再请销售改口确认已成交。后台 inquiring.air_lock_lost。"""
no = (work_order_no or "").strip()
return _cabin_copy(
"inquiring.air_lock_lost",
f"工单{no}已是「未成交」,不能锁舱。",
ticket_no=no,
)
def air_release_deal_blocked(work_order_no: str) -> str:
"""已成交不能释放舱位。后台 inquiring.air_release_deal_blocked。"""
"""
旧句:已成交不能取消舱位。
现口径是成交并锁舱之后仍可取消,群里不再发这句。后台编码保留,避免旧配置对不上。
"""
no = (work_order_no or "").strip()
return _cabin_copy(
"inquiring.air_release_deal_blocked",