Workflow — Rondín
Esta página se importa íntegra desde la fuente de verdad técnica:
yms-docs/03-workflows-operativos/rondin.md— cualquier corrección debe hacerse allí.
Ciclo de validación GPS ↔ Manual
flowchart LR
GPS[GPS Samsara<br/>reporta zona ±15-30m] -->|señal débil| ZA[Zona asignada al trailer]
ZA --> RONDIN[Personal de patio<br/>en rondín]
RONDIN --> COMP{¿Trailer está<br/>físicamente ahí?}
COMP -- Sí --> CONF[Toca Confirmar zona]
COMP -- No, está en otra --> CORR[Toca Corregir zona]
COMP -- No aparece físicamente --> NF[Toca No encontrado]
CONF --> EVT1[Evento<br/>OperatorZoneConfirmed]
CORR --> EVT2[Evento OperatorZoneCorrected<br/>+ anomalía informativa<br/>OperatorCorrectedGpsZone]
NF --> EVT3[Anomalía<br/>TrailerNotFoundOnRound<br/>severidad MEDIUM]
style CONF fill:#28a745,color:#fff
style CORR fill:#17a2b8,color:#fff
style NF fill:#ffc107,color:#212529
style EVT3 fill:#dc3545,color:#fff Trailers visitantes — confirmación obligatoria
stateDiagram-v2 [*] --> PendingConfirmation: Entrada de visitante registrada PendingConfirmation --> Confirmed: Personal confirma/corrige en rondín PendingConfirmation --> Anomaly: Pasaron 4 horas sin confirmar Anomaly: Anomalía<br/>VisitorZoneUnconfirmed Anomaly --> Confirmed: Personal confirma tardíamente Confirmed --> [*]
Documento ejecutivo de referencia
Versión: 1.0 (depuración post-cobertura) Última actualización: 13 de mayo de 2026 Reemplaza a:
inventario.md(versión 1.4). El “inventario físico” se mantiene como subworkflow dentro del rondín digital, no como flujo separado en papel.
Este documento explica cómo el personal de patio hace rondines por el patio con la app móvil para (a) confirmar o corregir la zona de cada trailer presente, y (b) validar inventario físico cuando el yard manager lo solicite. El rondín es el mecanismo que cierra el ciclo de validación GPS↔Manual establecido por ADR-039.
¿Qué es un rondín?
Un rondín es un recorrido físico del personal de patio por el patio, ejecutado con yms-mobile, para verificar que cada trailer presente está en la zona que el sistema dice. Hay dos modalidades:
| Modalidad | Frecuencia | Quién | Propósito |
|---|---|---|---|
| Rondín de confirmación de zonas (principal) | Continuo durante el turno | Operator | Confirmar zona reportada por GPS o establecer zona manualmente para trailers sin GPS. Cierra el ciclo GPS↔Manual. |
| Inventario físico (excepcional) | Por petición del YardManager (mensual, post-incidente, auditoría) | Operator coordinado por YardManager | Validar globalmente que el sistema refleja la realidad del patio. |
Ambas modalidades comparten la misma pantalla en yms-mobile y los mismos comandos. El “inventario físico” es esencialmente un rondín exhaustivo cubriendo el yard completo con reporte final.
Modalidad 1 — Rondín de confirmación de zonas (principal)
Reglas duras
- Todo trailer presente en el yard debe tener su zona confirmada dentro del umbral configurado (sugerencia 4h para visitantes sin GPS, opcional para trailers con GPS).
- El personal de patio es la fuente de verdad (ADR-039). Si confirma o corrige zona, el sistema acepta su input.
- Cada confirmación o corrección genera un
MovementEventauditado. - Confirmar la zona reportada por GPS no genera anomalía. Es el flujo feliz.
- Corregir zona genera anomalía informativa (
OperatorCorrectedGpsZone, Low) — útil para detectar trailers con GPS calibrado mal o dispositivo deslocalizado. - No encontrar un trailer en rondín genera anomalía
TrailerNotFoundOnRoundpara investigación del YardManager.
Flujo paso a paso
T+0 Personal de patio inicia turno. Abre yms-mobile → tab "Rondín".
T+1 Pantalla muestra lista de trailers presentes en el yard, ordenados por: 1. Visitantes sin GPS pendientes de confirmar zona (urgentes, contador de umbral visible). 2. Trailers con GPS recién ingresados sin confirmar (recientes). 3. Resto, ordenado por última confirmación más antigua primero.
T+2 Cada item muestra: - Trailer.Number + tipo + ownership. - Zona actual (según GPS o según última corrección manual). - Último estado: "Confirmado hace 2h" / "Sin confirmar — GPS sugiere Zona Norte". - Color del item: verde (confirmado reciente), amarillo (pendiente), rojo (visitante fuera de umbral).
T+3 Personal de patio camina por la zona. Para cada trailer que ve físicamente:
Caso A — Está en la zona que el sistema dice: Toca el trailer → toca "Confirmar zona". Sistema: crea MovementEvent (Type=OperatorZoneConfirmed, Source=OperatorRound, RegisteredByUserId, ZoneId). Actualiza Trailer.ManualZoneConfirmedAt, Trailer.LastConfirmedZoneId. Item pasa a verde.
Caso B — Está en OTRA zona: Toca el trailer → toca "Corregir zona" → selecciona zona real. Sistema: crea MovementEvent (Type=OperatorZoneCorrected, OldZoneId=GPS, NewZoneId=personal de patio, Source=OperatorRound). Actualiza Trailer.CurrentZoneId y Trailer.LastConfirmedZoneId. Genera Anomaly tipo OperatorCorrectedGpsZone (Low, informativa). Item pasa a verde.
Caso C — No encuentra físicamente el trailer: Toca el trailer → toca "No encontrado en rondín". Sistema: marca el evento + genera Anomaly tipo TrailerNotFoundOnRound (Medium) para investigación. Item se marca con icono de alerta y queda pendiente para revisión del YardManager.
T+4 Personal de patio continúa hasta cubrir todos los trailers visibles (o los del subconjunto que decida). El rondín NO requiere completarse en una sesión — la lista persiste.
T+5 Indicadores en la pantalla: - "X de Y trailers confirmados esta jornada" - "N visitantes pendientes (alerta si superan umbral)"Permisos
Operator+, YardManager+, Admin.
Eventos generados
| Caso | Evento |
|---|---|
| Confirmar zona | MovementEvent.OperatorZoneConfirmed |
| Corregir zona | MovementEvent.OperatorZoneCorrected + Anomaly.OperatorCorrectedGpsZone (Low) |
| No encontrado | Anomaly.TrailerNotFoundOnRound (Medium) |
Modalidad 2 — Inventario físico (excepcional)
Cuándo se hace
- Hay duda específica sobre un trailer “perdido” en el patio.
- Sospecha de discrepancias acumuladas (ej. el cliente reportó múltiples errores recientes).
- Auditoría externa lo solicita.
- Cambio de turno crítico o post-incidente operativo.
- Validación periódica definida por el cliente (ej. mensual, trimestral).
El inventario físico NO es operación diaria. Si tuvieras que hacerlo seguido, indicaría un problema sistemático.
Cómo se ejecuta sobre la misma herramienta
T+0 YardManager (en yms-web) inicia un "Inventario físico": - Selecciona yard. - Define alcance (yard completo, una zona específica). - Marca el inicio (timestamp).
T+1 El sistema genera un reporte de baseline: lista de todos los trailers que considera presentes en el alcance, agrupados por zona. El reporte se puede imprimir como PDF si el equipo prefiere papel.
T+2 El personal de patio asignado abre yms-mobile → tab "Rondín" → filtro "Inventario activo". La lista se filtra al alcance del inventario.
T+3 El personal de patio recorre el patio con la misma mecánica de la Modalidad 1 (Confirmar / Corregir / No encontrado). Cada acción cuenta hacia el inventario activo.
T+4 Adicionalmente, en inventario, el personal de patio puede: - Reportar trailers físicamente presentes que el sistema NO lista (botón "+ Trailer no listado"). → Esto crea un Trailer + Assignment manual + anomalía ManualReport con nota "Detectado en inventario sin registro".
T+5 Cuando el personal de patio termina (o cuando YardManager cierra el inventario): - Sistema genera reporte final: trailers confirmados, corregidos, no encontrados, listados no-registrados. - Reporte queda inmutable en histórico (asociado al InventoryRound del yard). - El YardManager investiga las discrepancias y resuelve cada anomalía generada.
T+6 El cliente puede exportar el reporte a PDF/CSV desde yms-web.Reglas adicionales para inventario
- El inventario NO bloquea operaciones normales (entradas/salidas siguen funcionando).
- Las discrepancias detectadas se registran como anomalías estándar — los flujos de resolución son los mismos.
- No hay reconciliación automática: si el sistema dice “Trailer ABC-1234 en Zona Norte” pero el personal de patio lo encuentra en Zona Sur, debe ejecutar “Corregir zona” — no hay un botón “el sistema estaba bien”.
Permisos
- Iniciar/cerrar inventario: YardManager+, Admin.
- Recorrer y registrar hallazgos: Operator+, YardManager+, Admin.
Cómo se distingue visualmente trailers con/sin GPS
En la lista del rondín:
| Indicador | Significado |
|---|---|
| Icono Samsara (verde) | Trailer con GPS. Confirmación de zona es opcional pero recomendada. |
| Icono Samsara (rojo) | Trailer con GPS pero sin reporte reciente (NoGpsSignal). |
| Sin icono Samsara (gris) | Trailer visitante sin GPS (IsGpsCapable = false). Confirmación obligatoria dentro de umbral. |
Esto permite al personal de patio priorizar visitantes sin GPS al inicio del rondín.
Modo offline
La lista de trailers y las acciones de confirmar/corregir/no-encontrado funcionan offline (caché local de Dexie/IndexedDB). Cuando recupera red, sincroniza automáticamente. Si hubo conflictos (otro miembro del personal de patio hizo algo en el mismo trailer mientras estaba offline), la app muestra opciones para resolverlos sin perder datos.
Decisiones técnicas referenciadas
- ADR-038 — Zona como unidad operativa mínima.
- ADR-039 — GPS como mecanismo de confirmación; rondín cierra el ciclo.
- Modelo de datos —
01-tecnico/propuesta-maestra.md§8.0.
Documentos relacionados
registro-entrada.md— el rondín valida lo capturado al entrar.anomalias.md— tipos generados por el rondín.00-vision-general/roles-permisos.md— matriz de permisos.
Workflow de rondín — referencia operativa.