Package com.gestorrh.api.service
Class EstadisticasService
java.lang.Object
com.gestorrh.api.service.EstadisticasService
Servicio encargado de la generación de métricas y datos estadísticos estructurados para el panel de control.
Proporciona Indicadores Clave de Rendimiento (KPIs) en tiempo real, así como desgloses agregados para su representación gráfica (gráficos de tarta, de barras, etc.).
Permite a las empresas visualizar de un vistazo el estado de su plantilla, incluyendo la puntualidad, el ausentismo y la distribución departamental, garantizando un soporte sólido para la toma de decisiones gerenciales.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AsignacionTurnoRepositoryprivate final AusenciaRepositoryprivate final EmpleadoRepositoryprivate final EmpresaRepositoryprivate final FichajeRepository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate List<DatoGraficoDTO> mapearResultados(List<Object[]> resultados) Utilidad privada para transformar resultados brutos de consultas JPA (Object[]) en DTOs para gráficos.Recupera el conteo de ausencias aprobadas agrupadas por su tipo (Vacaciones, Enfermedad, etc.).Obtiene la distribución de ausencias según su estado actual (Solicitada, Aprobada, Rechazada).Obtiene el desglose de empleados por departamento para su representación en gráficos (ej.private LongRecupera el identificador de la empresa del usuario autenticado.Recupera los indicadores clave de rendimiento (KPIs) globales consolidados para la fecha actual.Identifica a los empleados con mayor número de retrasos acumulados en sus fichajes de entrada.
-
Field Details
-
empleadoRepository
-
empresaRepository
-
ausenciaRepository
-
fichajeRepository
-
asignacionTurnoRepository
-
-
Constructor Details
-
EstadisticasService
public EstadisticasService()
-
-
Method Details
-
obtenerKpisDashboard
Recupera los indicadores clave de rendimiento (KPIs) globales consolidados para la fecha actual.Las métricas proporcionadas incluyen:
totalEmpleados: Cantidad de trabajadores activos en la empresa.planificadosHoy: Número de trabajadores que tienen al menos un turno asignado para hoy.ausentesHoy: Conteo de trabajadores con ausencias aprobadas vigentes en la fecha actual.
- Returns:
- Map con las etiquetas descriptivas de los KPIs como clave y sus correspondientes valores numéricos.
-
obtenerEmpleadosPorDepartamento
Obtiene el desglose de empleados por departamento para su representación en gráficos (ej. Pie Chart).- Returns:
- List de DatoGraficoDTO con el nombre del departamento y el número de empleados asociados.
-
obtenerAusenciasAprobadasPorTipo
Recupera el conteo de ausencias aprobadas agrupadas por su tipo (Vacaciones, Enfermedad, etc.).- Returns:
- List de DatoGraficoDTO con la distribución por tipo de ausencia.
-
obtenerAusenciasPorEstado
Obtiene la distribución de ausencias según su estado actual (Solicitada, Aprobada, Rechazada).- Returns:
- List de DatoGraficoDTO con los totales por estado.
-
obtenerTopRetrasos
Identifica a los empleados con mayor número de retrasos acumulados en sus fichajes de entrada. Los resultados se limitan a los 5 casos más destacados.- Returns:
- List de DatoGraficoDTO con el nombre del empleado y el conteo de sus retrasos.
-
mapearResultados
Utilidad privada para transformar resultados brutos de consultas JPA (Object[]) en DTOs para gráficos.- Parameters:
resultados- Lista de arreglos de objetos devueltos por la base de datos.- Returns:
- List de DatoGraficoDTO mapeada.
-
obtenerIdEmpresaAutenticada
Recupera el identificador de la empresa del usuario autenticado. Si el usuario es un empleado o supervisor, se obtiene el ID de la empresa a la que pertenece.- Returns:
- Long El identificador único de la empresa asociada al contexto de seguridad.
- Throws:
jakarta.persistence.EntityNotFoundException- Si la empresa o el empleado no existen en el sistema.
-