32 lines
916 B
Python
32 lines
916 B
Python
|
|
# ============================================================
|
|||
|
|
# 会话焦点(moduleId: core-session-focus, 可重生 ✅)
|
|||
|
|
# 记住「刚查过的订单」等指代,支持「把这个订单排产」。
|
|||
|
|
# ============================================================
|
|||
|
|
from __future__ import annotations
|
|||
|
|
|
|||
|
|
import threading
|
|||
|
|
from typing import Any
|
|||
|
|
|
|||
|
|
_lock = threading.Lock()
|
|||
|
|
_focus: dict[str, dict[str, Any]] = {}
|
|||
|
|
|
|||
|
|
|
|||
|
|
def set_focus(session_id: str, **kwargs: Any) -> None:
|
|||
|
|
if not session_id:
|
|||
|
|
return
|
|||
|
|
with _lock:
|
|||
|
|
cur = _focus.setdefault(session_id, {})
|
|||
|
|
for k, v in kwargs.items():
|
|||
|
|
if v is not None and v != "":
|
|||
|
|
cur[k] = v
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_focus(session_id: str) -> dict[str, Any]:
|
|||
|
|
with _lock:
|
|||
|
|
return dict(_focus.get(session_id) or {})
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_last_order_no(session_id: str) -> str | None:
|
|||
|
|
f = get_focus(session_id)
|
|||
|
|
return f.get("orderNo") or None
|