Saltearse al contenido

Casos de uso del día a día

Esta sección ilustra cómo se ve el sistema en operación real. Cada caso incluye un diagrama de flujo o secuencia para entenderlo de un vistazo.


Caso 1 — Llega un trailer con hoja de salida QR

El flujo más común y rápido. El transportista trae el documento con QR, el personal de patio escanea y registra en ~30 segundos.

sequenceDiagram
  autonumber
  participant T as Transportista
  participant P as Personal de patio
  participant A as App móvil
  participant B as Backend
  participant G as Samsara GPS

  T->>P: Entrega hoja de salida con QR
  P->>A: Escanea QR
  A->>A: Pre-llena ~90% de campos
  P->>A: Confirma + selecciona zona
  A->>B: Registra entrada (Manual)
  B-->>A: OK (Assignment creado)
  Note over P: Tiempo total ~30 segundos

  G->>B: Reporta cruce de geofence
  B->>B: Marca entrada como GpsConfirmed
  Note over B: Sin intervención humana adicional
Caso 1 — flujo de entrada con QR de hoja de salida

Resultado: entrada registrada en 30 segundos · confirmada por GPS sin intervención humana adicional · sellos capturados · 4 fotos 360° guardadas.


Caso 2 — Llega un trailer visitante sin GPS y sin QR

Trailer externo cuya hoja de salida no tiene QR (o está dañada). Captura manual con campos mínimos desde catálogos cerrados.

flowchart TB
  A[Personal de patio ve llegar trailer] --> B{¿Hoja con QR?}
  B -- No --> C[Abre Captura manual]
  C --> D[Captura campos mínimos<br/>desde catálogos cerrados]
  D --> E[Marca Visitor + IsGpsCapable=false]
  E --> F[Selecciona zona]
  F --> G[Captura sellos + 4 fotos 360°]
  G --> H[Confirma]
  H --> I[Assignment creado]

  I -.->|En 4 horas| J{¿Zona confirmada<br/>en rondín?}
  J -- No --> K[Anomalía<br/>VisitorZoneUnconfirmed]
  J -- Sí --> L[Cerrado naturalmente]

  style C fill:#1f6feb,color:#fff
  style E fill:#ffc107,color:#212529
  style K fill:#dc3545,color:#fff
  style L fill:#28a745,color:#fff
Caso 2 — entrada manual de trailer visitante

Clave: sin GPS, la confirmación de zona en rondín es obligatoria dentro de un umbral (sugerido 4 horas) — el sistema genera anomalía si no se hace.


Caso 3 — Sale un trailer con sellos correctos

El caso esperado: el personal de patio captura los sellos al salir y coinciden con los de entrada.

sequenceDiagram
  autonumber
  participant P as Personal de patio
  participant A as App móvil
  participant B as Backend
  participant G as Samsara GPS

  P->>A: Inicia registro de salida
  A->>P: Muestra sellos capturados al entrar
  P->>A: Captura sellos al salir
  A->>A: Compara sellos
  Note over A: Coinciden ✓
  P->>A: 4 fotos 360° de salida
  P->>A: Confirma
  A->>B: Registra salida (Manual)
  B->>B: Cierra Assignment
  B-->>A: OK

  G->>B: Reporta cruce de salida (geofence)
  B->>B: Marca salida como GpsConfirmed
Caso 3 — salida con sellos correctos

Caso 4 — Salida con discrepancia de sellos

Si los sellos no coinciden, el sistema genera anomalía SealMismatch de severidad High.

flowchart LR
  A[Captura sellos al salir] --> B{¿Coinciden con<br/>los de entrada?}
  B -- Sí --> C[Salida normal]
  B -- No --> D[Anomalía SealMismatch<br/>severidad HIGH]
  D --> E[Salida queda registrada<br/>+ evidencia foto]
  E --> F[Yard Manager investiga]
  F --> G{Resolución}
  G --> H[Resolver con razón]
  G --> I[Escalar a seguridad]

  style D fill:#dc3545,color:#fff
  style C fill:#28a745,color:#fff
Caso 4 — discrepancia de sellos al salir

Política: la salida no se bloquea — se registra con la anomalía adjunta para que el Yard Manager investigue posteriormente. Esto evita atascar el patio.


Caso 5 — Yard Manager fuerza el cierre de un registro por error

El personal de patio registró un trailer por error o duplicó la entrada. El Yard Manager puede forzar el cierre desde la web.

stateDiagram-v2
  [*] --> Confirmed: Personal de patio registra entrada
  Confirmed --> Released: Salida normal
  Confirmed --> ForceClosed: Yard Manager fuerza cierre
  ForceClosed: ForceClosed<br/>(con razón documentada)
  Released --> [*]
  ForceClosed --> [*]

  note right of ForceClosed
    Razón obligatoria.
    Queda en AuditLog inmutable.
  end note
Caso 5 — cierre forzado de Assignment con auditoría

Salvaguardas:

  • Razón obligatoria (catálogo cerrado: “Error de captura”, “Duplicado”, “Trailer no presente físicamente”, etc.).
  • Queda en AuditLog con timestamp, usuario y razón.
  • No se pierde el dato original — el Assignment no se elimina, sólo cambia de estado.

Otros casos cubiertos en los workflows

Para detalle paso a paso, ver los workflows operativos: