| 12345678910111213141516171819202122232425262728293031323334353637 |
- """出入库单现场免登录 token"""
- from __future__ import annotations
- import secrets
- from app.core.config import settings
- from app.models.db_models import DbInboundOutbound
- def ensure_site_access_token(row: DbInboundOutbound) -> str:
- token = (row.site_access_token or "").strip()
- if not token:
- token = secrets.token_urlsafe(32)[:64]
- row.site_access_token = token
- return token
- def build_site_inventory_url(token: str) -> str:
- origin = (settings.PUBLIC_WEB_ORIGIN or "").rstrip("/")
- return f"{origin}/#/public/db/inventory/{token}"
- def build_site_transport_url(token: str) -> str:
- """运输计划现场链接(pl_transport_site_link,与地磅出入库单解耦)。"""
- origin = (settings.PUBLIC_WEB_ORIGIN or "").rstrip("/")
- return f"{origin}/#/public/pl/site/{token}"
- def site_link_fields_for_inventory(
- inventory: DbInboundOutbound | None,
- ) -> tuple[str | None, str | None]:
- if not inventory:
- return None, None
- token = (inventory.site_access_token or "").strip()
- if not token:
- return None, None
- return token, build_site_inventory_url(token)
|