Key Capabilities
Production Orders
Import from SAP, track execution across multiple processes, and manage order lifecycle from creation to closure.
Shift Operations
Open daily shift logs (bitácoras), assign personnel, record production data, and close shifts with automatic validation.
Multi-Process Execution
Execute orders across 9 industrial processes including extrusion, weaving, lamination, printing, and conversion.
Real-Time Tracking
Monitor production progress, machine status, downtime events, and quality checkpoints in real-time.
Production Order Lifecycle
Creating Orders
Production orders are imported from SAP using the Import Orders workflow:- Upload Excel Export: Users upload the SAP production orders report (Series de documentos format)
- Preview & Validation: System parses the file and validates:
- 7-digit document numbers
- SAP series mapped to internal process IDs (ExtruPP→1, Telar→2, etc.)
- Duplicate detection against existing PROD-SYS orders
- Confirm Import: User reviews new orders, already-existing orders, and unrecognized series before confirming
orden_produccion table):
- Parser:
backend/domains/production/ordenProduccion.parser.js - Service:
backend/domains/production/ordenProduccion.service.js:106(procesarImportacionExcel) - Repository:
backend/domains/production/ordenProduccion.repository.js:45(create)
Order States
Orders progress through these states:| State | Description | Allowed Actions |
|---|---|---|
| Creada | Imported from SAP, not yet released to production | Edit specifications, update quantity/dates, release |
| Liberada | Released to production, ready for execution | Start execution, pause, cancel |
| En producción | Active execution in at least one process | Record production, pause, close |
| Pausada | Temporarily halted | Resume, close, cancel |
| Cerrada | Completed (requires motivo_cierre) | View only |
| Cancelada | Cancelled (requires motivo_cierre) | View only |
- Orders in
Liberada,En producción,Pausada,Cerrada, orCanceladaonly allow status changes (no technical modifications) - Closing or cancelling requires a
motivo_cierre(closure reason) - Auditing: All state changes are logged via
auditService.logStatusChange
backend/domains/production/ordenProduccion.service.js:69 (update method)
Shift Operations (Bitácoras)
Opening a Shift
Production supervisors open a bitácora de turno at the start of each shift: UI Flow:- Navigate to Operations → Open Shift
- Select shift (Día/Noche), operational date, and inspector name
- System validates: only one active bitácora allowed at a time
- System creates bitácora record with state
ABIERTA
bitacora_turno table):
backend/domains/production/bitacora.service.js:36 (openBitacora)
Recording Production Data
During the shift, operators record production for each process: UI Flow:- Navigate to active bitácora → Select process (e.g., “Extrusor PP”)
- If process is non-operational: Mark as “No Operativo” with reason (e.g., “Mantenimiento preventivo”)
- If operational:
- Quality First: Record quality samples (muestras) before production
- Production: Record output quantities per order and machine
- Downtime: Log any stoppages (paros) with motivo and duration
lineas_ejecucion):
registros_trabajo):
backend/domains/production/bitacora.service.js:350 (saveProcesoData)
Process State Dashboard
The bitácora summary shows real-time status for all 9 processes: Status Indicators:- ⚪ Sin datos: No activity recorded
- 🟡 Esperando Calidad: Production blocked until minimum quality samples recorded
- 🟡 Esperando Producción: Quality validated, awaiting production records
- 🟡 Parcial: Some data recorded, not yet complete
- 🔴 Revisión: Rejected quality samples or incidents detected
- 🟢 Completo: All required data recorded, quality validated
- Quality samples must meet minimum count per process (defined in process contracts)
- Production cannot be recorded until quality is validated
- Rejected samples trigger
REVISIONstate and require observaciones
backend/domains/production/bitacora.service.js:167 (getResumenProcesos)
Closing a Shift
When the shift ends, the supervisor closes the bitácora: Closure Validation:- Personnel Check: All processes with recorded activity must have assigned personnel for the shift
- Downtime Validation: Total paro time cannot exceed programmed time (default 480 minutes)
- Quality Validation: Check for rejected samples or incidents
- Observations Required: If deviations detected, detailed observations are mandatory
- CERRADA: Normal closure (all validations passed, no quality issues)
- REVISION: Requires supervisor review (quality rejections or incidents detected)
- Shift owner (inspector who opened the bitácora) can close
- Administrators and Supervisors can close any bitácora
backend/domains/production/bitacora.service.js:58 (closeBitacora)
Multi-Process Execution
Process Registry
PROD-SYS supports 9 industrial processes, each with a dedicated Process Contract defining:processId: Numeric identifier (1-9)nombre: Display nameunidadProduccion: Production unit (KG, M2, MIL, UND)parametrosRequeridos: Required operational parametersfrecuenciaMuestreo: Quality sampling requirements (e.g., muestrasMinTurno: 2)validaUnidad(): Unit validation methodvalidarParametro(): Parameter validation method
| ID | Process | Unit | Description |
|---|---|---|---|
| 1 | Extrusor PP | KG | Polypropylene extrusion |
| 2 | Telar | M2 | Weaving |
| 3 | Laminado | M2 | Lamination |
| 4 | Imprenta | MIL | Printing (thousands) |
| 5 | ConverSA | UND | Bag conversion |
| 6 | ExtruPE | KG | Polyethylene extrusion |
| 7 | ConverLI | UND | Liner conversion |
| 8 | Peletiza | KG | Pelletizing |
| 9 | VestidoM | UND | Bag dressing |
backend/domains/production/contracts/ProcessRegistry.js
Machine Management
Each process has multiple machines tracked in the system: Machine States:- Operativa: Active and available
- Mantenimiento: Under maintenance
- Parada: Stopped/inactive
- Baja: Decommissioned
MAQUINAS):
maquina_estados_historial):
backend/domains/production/maquina.repository.js
Downtime Tracking
Downtime events (paros) are recorded per process and shift: Downtime Schema (PARO_PROCESO):
CATALOGO_MOTIVO_PARO):
- Programmed time: 480 minutes (8-hour shift) by default
- Effective time = Programmed time - Total paro minutes
- Validation: Total paros cannot exceed programmed time
backend/domains/production/paro.repository.js
Incident Management
Incidents are recorded for production issues requiring corrective action: Incident Schema (incidentes):
- Operator creates incident with severity level
- Supervisor assigns corrective action
- Incident tracked until closure
- Closed incidents with severity ≥ Media trigger bitácora REVISION state
backend/domains/production/incidente.repository.js
Weekly Planning
Supervisors create weekly production plans (plan_semanal):
Planning Workflow:
- Create Plan: Define ISO week (year + week number)
- Assign Orders: Schedule orders to specific days, shifts, processes, and machines
- Assign Personnel: Assign workers to processes and shifts
- Activate Plan: Change state from
BORRADORtoACTIVO - Create Baseline Snapshot: Lock the current plan as a baseline for deviation tracking
plan_semanal):
plan_detalle_ordenes):
desviaciones_plan):
- Order deviations: Planned order not executed, or unplanned order executed
- Personnel deviations: Different workers assigned than planned
- Quantity deviations: Actual production differs from planned
backend/domains/production/planning.repository.js
Next Steps
Quality Control
Learn how quality samples, batch management, and traceability work
Resource Tracking
Track material consumption and inventory integration
Personnel Management
Manage workers, assignments, and shift groups
API Reference
Explore the REST API endpoints for production management