Saltar al contenido principal

Sitios, patios y canvas

El primer paso para montar TankOS es definir dónde viven los tanques. La estructura física de la instalación se modela como una jerarquía de tres niveles que el ingeniero configura desde el módulo de Ingeniería. Esta página explica la jerarquía, las listas de sitios y patios, y el canvas visual donde se disponen los tanques dentro de cada patio.

La jerarquía Site → Yard → Tank

TankOS organiza la planta en tres niveles anidados:

NivelQué representaEjemplo
Sitio (Site)Una instalación o refinería completaRefinería El Palito
Patio (Yard)Una zona delimitada dentro del sitio (un dique, un grupo de tanques)Patio Norte
Tanque (Tank)Cada tanque de almacenamiento individualTK-401

Esta jerarquía es el aislamiento lógico del sistema: TankOS es de una sola organización por despliegue (single-tenant on-prem), de modo que la separación entre zonas, productos y equipos de trabajo no se modela con multi-tenancy sino con esta estructura Site → Yard → Tank combinada con el control de acceso por rol (RBAC).

Identificación de tanques

El tag de cada tanque (su código corto, p. ej. TK-401) es único por patio — la combinación (patio, tag) no se repite. Dos patios distintos pueden tener cada uno un tanque TK-01 sin conflicto.

Todo se almacena en unidades SI

TankOS guarda las alturas en milímetros, los volúmenes en metros cúbicos, las temperaturas en grados Celsius y las presiones en kilopascales. La conversión a unidades imperiales (pies, pulgadas, barriles) ocurre únicamente al mostrar los datos en pantalla, nunca en el almacenamiento.

Lista de sitios

En Ingeniería › Sitios se gestionan los sitios de la instalación. La tabla muestra el código, el nombre y el conteo de patios de cada sitio. Desde la barra de herramientas, el botón Nuevo sitio abre el formulario de creación (disponible para los perfiles de ingeniero y administrador).

Lista de sitios en Ingeniería

Cada fila ofrece acciones para editar, archivar o restaurar un sitio. Cuando aún no hay sitios creados, la pantalla muestra un estado vacío que invita a crear el primero.

Lista de patios

En Ingeniería › Patios se gestionan los patios. La tabla lista el código, el nombre y el sitio al que pertenece cada patio. El botón Nuevo patio abre el formulario de creación, y cada fila permite editar, archivar o restaurar.

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md.

Canvas de patio

El canvas de patio (Ingeniería › Patios › <patio> › Patio) es la vista visual donde se disponen los tanques tal como están físicamente en el terreno. Es la herramienta clave para que el operador reconozca de un vistazo qué tanque es cuál.

El canvas funciona así:

  1. Diques (drag-and-drop). El patio se compone de uno o más diques. El botón de la barra de herramientas abre el DikeCreateDialog para crear un dique nuevo; los diques se arrastran y sueltan para reordenarlos dentro del lienzo.
  2. Grilla por dique. Cada dique contiene una grilla de filas × columnas (row × col). Cada celda de la grilla representa la posición de un tanque.
  3. Render del tanque. Cada celda ocupada dibuja el TankSVG del tanque correspondiente, de modo que el canvas reproduce el plano del patio.
  4. Inspector lateral. Al seleccionar una celda, se abre el InspectorRail a un costado con los detalles del tanque seleccionado y accesos a su configuración.

La disposición se persiste por revisión: la posición de cada tanque se guarda como (dikeId, row, col), y cada patio mantiene su propia revisión de layout (YardLayoutRevision). Esto permite versionar los cambios de disposición sin perder el historial.

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md.

El canvas ofrece además vistas alternativas (Grilla / Lista / Tabla) desde la barra de herramientas, para revisar la misma información en formato tabular cuando convenga.

Concurrencia: edición simultánea del layout

El layout del patio usa bloqueo optimista: cada revisión lleva un número de versión (patioVersion). Si dos personas editan la disposición del mismo patio al mismo tiempo, TankOS detecta la divergencia y evita que un cambio sobrescriba silenciosamente al otro.

Banner de versión obsoleta

Cuando el patioVersion de tu sesión difiere del que tiene el servidor — porque otro usuario guardó el layout mientras editabas — aparece el StaleVersionBanner. Antes de continuar, recarga la vista para traer la última revisión y vuelve a aplicar tus cambios sobre ella. No fuerces el guardado: perderías el trabajo del otro usuario.

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md.

Siguiente paso

Con la estructura física definida, el siguiente paso es configurar cada tanque en detalle: identidad, geometría, propiedades de cálculo, tablas de aforo, dispositivos y alarmas. Continúa con el editor de tanque.

Si necesitas ubicarte en el conjunto del manual, vuelve a la introducción del manual o consulta la guía de uso por rol.