Package com.gestorrh.api.repository
Interface AusenciaRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<Ausencia,,Long> org.springframework.data.jpa.repository.JpaRepository<Ausencia,,Long> org.springframework.data.repository.ListCrudRepository<Ausencia,,Long> org.springframework.data.repository.ListPagingAndSortingRepository<Ausencia,,Long> org.springframework.data.repository.PagingAndSortingRepository<Ausencia,,Long> org.springframework.data.repository.query.QueryByExampleExecutor<Ausencia>,org.springframework.data.repository.Repository<Ausencia,Long>
@Repository
public interface AusenciaRepository
extends org.springframework.data.jpa.repository.JpaRepository<Ausencia,Long>
Repositorio para gestionar las operaciones de base de datos de la entidad
Ausencia.
Gestiona solicitudes de vacaciones, bajas médicas y otros tipos de ausencias de los empleados.-
Method Summary
Modifier and TypeMethodDescriptioncontarAusenciasAprobadasPorTipo(Long idEmpresa) Obtiene el recuento de ausencias aprobadas agrupadas por tipo para una empresa.contarAusenciasPorEstado(Long idEmpresa) Obtiene el recuento de ausencias agrupadas por estado para una empresa.contarEmpleadosAusentesHoy(Long idEmpresa, LocalDate fechaHoy) Cuenta el número de empleados distintos que están ausentes hoy (con ausencia aprobada).findAusenciasSolapadas(Long idEmpleado, List<EstadoAusencia> estados, LocalDate fechaInicio, LocalDate fechaFin) Busca ausencias de un empleado que se solapen con un rango de fechas dado.findByEmpleadoEmpresaIdEmpresa(Long idEmpresa) Recupera todas las ausencias de una empresa.findByEmpleadoEmpresaIdEmpresaAndEmpleadoDepartamentoIgnoreCase(Long idEmpresa, String departamento) Busca ausencias en un departamento específico de una empresa.findByEmpleadoEmpresaIdEmpresaAndEmpleadoDepartamentoIgnoreCaseAndEstado(Long idEmpresa, String departamento, EstadoAusencia estado) Busca ausencias en un departamento específico y con un estado determinado.findByEmpleadoEmpresaIdEmpresaAndEstado(Long idEmpresa, EstadoAusencia estado) Recupera las ausencias de una empresa filtradas por su estado.findByEmpleadoIdEmpleado(Long idEmpleado) Recupera todas las ausencias asociadas a un empleado.findByEmpleadoIdEmpleadoAndEstado(Long idEmpleado, EstadoAusencia estado) Recupera las ausencias de un empleado filtradas por estado.booleantieneAusenciaAprobadaEnFecha(Long idEmpleado, EstadoAusencia estado, LocalDate fecha) Verifica si un empleado tiene una ausencia aprobada en una fecha específica.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findByEmpleadoEmpresaIdEmpresa
Recupera todas las ausencias de una empresa.- Parameters:
idEmpresa- El ID de la empresa.- Returns:
- Lista de ausencias de la empresa.
-
findByEmpleadoEmpresaIdEmpresaAndEstado
Recupera las ausencias de una empresa filtradas por su estado.- Parameters:
idEmpresa- El ID de la empresa.estado- El estado de la ausencia (PENDIENTE, APROBADA, RECHAZADA).- Returns:
- Lista de ausencias en ese estado.
-
findByEmpleadoEmpresaIdEmpresaAndEmpleadoDepartamentoIgnoreCase
List<Ausencia> findByEmpleadoEmpresaIdEmpresaAndEmpleadoDepartamentoIgnoreCase(Long idEmpresa, String departamento) Busca ausencias en un departamento específico de una empresa.- Parameters:
idEmpresa- El ID de la empresa.departamento- El nombre del departamento.- Returns:
- Lista de ausencias en el departamento.
-
findByEmpleadoEmpresaIdEmpresaAndEmpleadoDepartamentoIgnoreCaseAndEstado
List<Ausencia> findByEmpleadoEmpresaIdEmpresaAndEmpleadoDepartamentoIgnoreCaseAndEstado(Long idEmpresa, String departamento, EstadoAusencia estado) Busca ausencias en un departamento específico y con un estado determinado.- Parameters:
idEmpresa- El ID de la empresa.departamento- El nombre del departamento.estado- El estado de la ausencia.- Returns:
- Lista de ausencias filtradas.
-
findByEmpleadoIdEmpleado
Recupera todas las ausencias asociadas a un empleado.- Parameters:
idEmpleado- El ID del empleado.- Returns:
- Lista de ausencias del empleado.
-
findByEmpleadoIdEmpleadoAndEstado
Recupera las ausencias de un empleado filtradas por estado.- Parameters:
idEmpleado- El ID del empleado.estado- El estado de la ausencia.- Returns:
- Lista de ausencias del empleado en ese estado.
-
tieneAusenciaAprobadaEnFecha
@Query("SELECT COUNT(a) > 0 FROM Ausencia a WHERE a.empleado.idEmpleado = :idEmpleado AND a.estado = :estado AND :fecha BETWEEN a.fechaInicio AND a.fechaFin") boolean tieneAusenciaAprobadaEnFecha(@Param("idEmpleado") Long idEmpleado, @Param("estado") EstadoAusencia estado, @Param("fecha") LocalDate fecha) Verifica si un empleado tiene una ausencia aprobada en una fecha específica.- Parameters:
idEmpleado- El ID del empleado.estado- El estado de la ausencia (normalmente APROBADA).fecha- La fecha a comprobar.- Returns:
- True si existe una ausencia aprobada en esa fecha, false en caso contrario.
-
findAusenciasSolapadas
@Query("SELECT a FROM Ausencia a WHERE a.empleado.idEmpleado = :idEmpleado AND a.estado IN :estados AND (a.fechaInicio <= :fechaFin AND a.fechaFin >= :fechaInicio)") List<Ausencia> findAusenciasSolapadas(@Param("idEmpleado") Long idEmpleado, @Param("estados") List<EstadoAusencia> estados, @Param("fechaInicio") LocalDate fechaInicio, @Param("fechaFin") LocalDate fechaFin) Busca ausencias de un empleado que se solapen con un rango de fechas dado.- Parameters:
idEmpleado- El ID del empleado.estados- Lista de estados a considerar (ej. PENDIENTE, APROBADA).fechaInicio- Fecha inicial del rango.fechaFin- Fecha final del rango.- Returns:
- Lista de ausencias que coinciden en el tiempo con el periodo indicado.
-
contarAusenciasAprobadasPorTipo
@Query("SELECT a.tipo, COUNT(a) FROM Ausencia a WHERE a.empleado.empresa.idEmpresa = :idEmpresa AND a.estado = \'APROBADA\' GROUP BY a.tipo") List<Object[]> contarAusenciasAprobadasPorTipo(@Param("idEmpresa") Long idEmpresa) Obtiene el recuento de ausencias aprobadas agrupadas por tipo para una empresa.- Parameters:
idEmpresa- El ID de la empresa.- Returns:
- Lista de objetos con el tipo y el conteo.
-
contarAusenciasPorEstado
@Query("SELECT a.estado, COUNT(a) FROM Ausencia a WHERE a.empleado.empresa.idEmpresa = :idEmpresa GROUP BY a.estado") List<Object[]> contarAusenciasPorEstado(@Param("idEmpresa") Long idEmpresa) Obtiene el recuento de ausencias agrupadas por estado para una empresa.- Parameters:
idEmpresa- El ID de la empresa.- Returns:
- Lista de objetos con el estado y el conteo.
-
contarEmpleadosAusentesHoy
@Query("SELECT COUNT(DISTINCT a.empleado.idEmpleado) FROM Ausencia a WHERE a.empleado.empresa.idEmpresa = :idEmpresa AND a.estado = \'APROBADA\' AND :fechaHoy BETWEEN a.fechaInicio AND a.fechaFin") Long contarEmpleadosAusentesHoy(@Param("idEmpresa") Long idEmpresa, @Param("fechaHoy") LocalDate fechaHoy) Cuenta el número de empleados distintos que están ausentes hoy (con ausencia aprobada).- Parameters:
idEmpresa- El ID de la empresa.fechaHoy- La fecha actual.- Returns:
- Número total de empleados ausentes hoy.
-