Package com.deusto.coffeestack.service
Class EstimacionConsumoServiceImpl
java.lang.Object
com.deusto.coffeestack.service.EstimacionConsumoServiceImpl
- All Implemented Interfaces:
EstimacionConsumoService
@Service
public class EstimacionConsumoServiceImpl
extends Object
implements EstimacionConsumoService
-
Constructor Summary
ConstructorsConstructorDescriptionEstimacionConsumoServiceImpl(InsumoRepository insumoRepository, MovimientoInventarioRepository movimientoInventarioRepository) -
Method Summary
Modifier and TypeMethodDescriptionCalcula la estimación de consumo para un insumo.doublecalcularConsumoMedioDiario(Long insumoId, int ventanaDias) Devuelve solamente el consumo medio diario de un insumo sobre la ventana indicada, sin construir el DTO completo.
-
Constructor Details
-
EstimacionConsumoServiceImpl
public EstimacionConsumoServiceImpl(InsumoRepository insumoRepository, MovimientoInventarioRepository movimientoInventarioRepository)
-
-
Method Details
-
calcular
@Transactional(readOnly=true) public EstimacionConsumoResponse calcular(Long insumoId, int ventanaDias, int horizonteDias) Description copied from interface:EstimacionConsumoServiceCalcula la estimación de consumo para un insumo.- Specified by:
calcularin interfaceEstimacionConsumoService- Parameters:
insumoId- ID del insumoventanaDias- tamaño de la ventana de muestreo (debe ser >= 1)horizonteDias- horizonte para la proyección (debe ser >= 0)- Returns:
- DTO con consumo total, media diaria y proyección al horizonte
-
calcularConsumoMedioDiario
@Transactional(readOnly=true) public double calcularConsumoMedioDiario(Long insumoId, int ventanaDias) Description copied from interface:EstimacionConsumoServiceDevuelve solamente el consumo medio diario de un insumo sobre la ventana indicada, sin construir el DTO completo.Pensado para ser reutilizado por otros servicios (sugerencias de reposición, cobertura, etc.) que únicamente necesitan el ritmo medio y no la proyección.
- Specified by:
calcularConsumoMedioDiarioin interfaceEstimacionConsumoService- Parameters:
insumoId- ID del insumoventanaDias- tamaño de la ventana de muestreo (debe ser >= 1)- Returns:
- consumo medio diario (0 si no hay movimientos en la ventana)
-