Tareas
Alta manual o desde el WMS, cancelación, recuperación, destino y prioridad.
Es la capa entre el WMS y los equipos físicos: RGV, elevadores, puertas y transportadores. Análisis del original en Java 8 y Spring Boot 2.2.
Alta manual o desde el WMS, cancelación, recuperación, destino y prioridad.
RGV por disponibilidad, batería, región, tipo y coste. Máximo dos tareas por RGV.
A* que penaliza giros y nodos ocupados; elevador si cambia de piso.
Reserva por tramos, detecta bloqueos tipo 1, 2 y ciclos; tareas de evitación.
Un hilo por tarea ejecuta el programa del puerto según el estado del PLC.
Mapa y estado de RGV, elevadores y apiladores por WebSocket cada segundo.
Usuarios, roles, menús, diccionarios, tareas programadas y auditoría.
| WMS externo | REST /fromWms/* (13) · 11 callbacks | Alta, cancelación, estado, destino; avisos de fase |
| Operador / UI Vue | REST con JWT (~700) y WebSocket | Tareas, mapas y equipos; estado en vivo |
| RGV | Socket TCP con el RES; 6.0 con Seer | Movimiento, pala, estado, latidos, batería, mapas |
| PLC | Modbus TCP cada 300 ms [V] | Palabra del elevador, buzón, puertas |
| MySQL | JDBC | Tareas, nodos, equipos, configuración, logs |
| RabbitMQ | AMQP | Cola con prioridad por puerto y por piso |
| Redis | Contadores | taskNo, cmdNo [I]; uso total [?] |
| AGV de terceros | HTTP / socket (Seer RDS, HK) | Integración parcial [?] |
El WMS envía la tarea (o la UI la genera). Se guarda en wcs_task con estado NEW.
POST /fromWms/taskReceive con palé, puerto y celda.FINISH al WMS.src/
├─ domain/ task rgv grid lifter plc policies ports
├─ use-cases/ generate · assign · execute-task
│ deadlock · charge · notify-wms
├─ adapters/in http · amqp-consumer · schedulers
├─ adapters/out mysql · amqp · wms · res · plc-modbus
├─ workers/ rgv-worker.ts · plc-poller.ts (300 ms)
└─ infra/ config · container · logger · mainadapters/ ni infra/.Los estados se guardan con el código de BD, no con el ordinal.Librerías propuestas, no verificadas en el original.Map por número de RGV.handle() en cada subclase.x-max-priority y cola de muertos.application.yml.queryTaskInfo.checkCode no es autenticación.plcId = 1000 + id % 1000 colisiona.backNode(Node).isTimeOut().wcs_interface_log está vacía.wcs_connect_config vacía.isWcsOnline puede estar invertida en el nombre.Referencia: 17 de octubre de 2026 · Fuentes: project/00–16, ROADMAP-sesión.md, project/rea-artifacts/