Introducción
Los lotes representan agrupaciones de producción vinculadas a órdenes de producción y bitácoras de turno. Cada lote tiene un código único generado automáticamente en formato{codigo_orden}-{correlativo} y transita por estados que controlan su ciclo de vida.
Estados de lote:
activo: Lote disponible para consumo en procesos productivospausado: Lote temporalmente no disponible (requiere comentario)cerrado: Estado terminal, no puede cambiar ni ser consumido (requiere comentario)
- Cada lote pertenece a una orden de producción (
orden_produccion_id) - Se genera en una bitácora de turno específica (
bitacora_id) - Puede ser consumido por múltiples telares (tabla
telar_consumo_lote)
Listar Todos los Lotes
/api/lotes
Retorna todos los lotes disponibles (estados activo y pausado), ordenados por fecha de producción descendente.
Headers
Token de autenticación Bearer
Permisos Requeridos
VIEW_QUALITY: Ver información de calidad
Respuesta
Estado de la respuesta (
success)Array de objetos lote
ID único del lote
Código único del lote en formato
{codigo_orden}-{correlativo}ID de la orden de producción asociada
ID de la bitácora de turno donde se generó el lote
Número secuencial del lote dentro de la orden
Fecha de producción en formato ISO 8601 (YYYY-MM-DD)
Estado actual:
activo, pausado, o cerradoComentario asociado al último cambio de estado
Código de la orden de producción (JOIN)
Timestamp de creación
Usuario que creó el lote
Timestamp de última actualización
Usuario que actualizó el lote
Obtener Lotes Disponibles
/api/lotes/disponibles
Retorna lotes en estado activo o pausado, aptos para ser seleccionados en procesos de telar. Los lotes cerrados no aparecen en esta lista.
Headers
Token de autenticación Bearer
Permisos Requeridos
VIEW_QUALITY: Ver información de calidad
Respuesta
Idéntica estructura al endpoint/api/lotes. Retorna solo lotes con estado IN ('activo', 'pausado').
Obtener Lotes por Orden
/api/lotes/orden/:id
Retorna todos los lotes asociados a una orden de producción específica, ordenados por correlativo ascendente.
Path Parameters
ID de la orden de producción
Headers
Token de autenticación Bearer
Permisos Requeridos
VIEW_QUALITY: Ver información de calidad
Respuesta
Array de lotes con la misma estructura que/api/lotes, ordenados por correlativo ASC.
Obtener Consumo de Telar
/api/lotes/consumo-telar
Retorna los lotes declarados como consumidos por un telar específico en una bitácora determinada.
Query Parameters
ID de la máquina (telar)
ID de la bitácora de turno
Headers
Token de autenticación Bearer
Permisos Requeridos
VIEW_QUALITY: Ver información de calidad
Respuesta
Estado de la respuesta (
success)Array de registros de consumo
ID del registro de consumo
ID del registro de trabajo asociado
ID de la máquina (telar)
ID de la bitácora de turno
ID del lote consumido
Código del lote (JOIN)
Código de la orden de producción (JOIN)
Timestamp de creación del registro
Usuario que registró el consumo
Errores
Parámetros
maquina_id y bitacora_id son obligatoriosObtener Historial de Estado
/api/lotes/:id/historial
Retorna el historial completo de cambios de estado de un lote, ordenado cronológicamente (más reciente primero).
Path Parameters
ID del lote
Headers
Token de autenticación Bearer
Permisos Requeridos
VIEW_QUALITY: Ver información de calidad
Respuesta
Estado de la respuesta (
success)Array de registros de historial
ID del registro de historial
ID del lote
Estado antes del cambio
Estado después del cambio
Comentario explicativo del cambio
Usuario que ejecutó el cambio
Timestamp del cambio
Obtener Trazabilidad Completa
/api/lotes/:id/trazabilidad
Retorna la trazabilidad completa de un lote: información del lote, dónde se produjo, dónde se consumió (telares) y su historial de estados.
Path Parameters
ID del lote
Headers
Token de autenticación Bearer
Permisos Requeridos
VIEW_QUALITY: Ver información de calidad
Respuesta
Estado de la respuesta (
success)Objeto de trazabilidad
Información completa del lote (misma estructura que
/api/lotes)Array de registros de consumo en telares
ID del registro de consumo
ID del registro de trabajo asociado
ID de la máquina (telar)
ID de la bitácora donde se consumió
ID del lote consumido
Nombre visible del telar (JOIN con MAQUINAS)
Fecha operativa de la bitácora (YYYY-MM-DD)
Turno de la bitácora (mañana, tarde, noche)
Timestamp del registro
Usuario que registró el consumo
Array de cambios de estado (misma estructura que
/api/lotes/:id/historial)Errores
Lote no encontrado
Cambiar Estado del Lote
/api/lotes/:id/estado
Cambia el estado de un lote. Cualquier usuario autenticado puede ejecutarlo, quedando registrado el usuario que realizó el cambio.
Path Parameters
ID del lote
Headers
Token de autenticación Bearer
Body Parameters
Nuevo estado del lote:
activo, pausado, o cerradoComentario explicativo del cambio. Obligatorio para estados
pausado y cerradoPermisos Requeridos
- Usuario autenticado (no requiere permisos específicos)
Transiciones de Estado Permitidas
| Estado Actual | Estados Permitidos |
|---|---|
activo | pausado, cerrado |
pausado | activo, cerrado |
cerrado | Ninguno (terminal) |
Reglas de Negocio
- Transiciones válidas: Solo se permiten las transiciones definidas en la tabla anterior
- Comentario obligatorio: Los estados
pausadoycerradorequieren comentario no vacío - Estado terminal: Un lote en estado
cerradono puede cambiar a ningún otro estado - Auditoría automática: Cada cambio se registra en:
- Tabla
lote_historial_estado(historial de cambios) - Sistema de auditoría general (tabla
AUDIT_LOG)
- Tabla
- Usuario registrado: El sistema captura el usuario del token JWT (
req.user.nombreoreq.user.username)
Respuesta
Estado de la respuesta (
success)Errores
- Campo
estadoes obligatorio - Comentario obligatorio para
pausadoocerrado - Transición de estado no permitida
Lote no encontrado
Modelo de Datos
Tabla lotes
Tabla telar_consumo_lote
Registra qué lotes fueron consumidos por qué telares en qué bitácoras.
Tabla lote_historial_estado
Almacena el historial completo de cambios de estado de cada lote.
Relación con Muestras
Los lotes están relacionados con muestras de calidad a través de la tablamuestras. Cada muestra puede estar asociada a un lote_id, permitiendo rastrear resultados de análisis de calidad para lotes específicos.
Para más información, consulta la documentación de Muestras.