Package com.gestorrh.api.repository
Interface EmpleadoRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<Empleado,,Long> org.springframework.data.jpa.repository.JpaRepository<Empleado,,Long> org.springframework.data.repository.ListCrudRepository<Empleado,,Long> org.springframework.data.repository.ListPagingAndSortingRepository<Empleado,,Long> org.springframework.data.repository.PagingAndSortingRepository<Empleado,,Long> org.springframework.data.repository.query.QueryByExampleExecutor<Empleado>,org.springframework.data.repository.Repository<Empleado,Long>
@Repository
public interface EmpleadoRepository
extends org.springframework.data.jpa.repository.JpaRepository<Empleado,Long>
Repositorio para gestionar las operaciones de base de datos de la entidad
Empleado.
Proporciona métodos para la gestión de usuarios/empleados y estadísticas relacionadas.-
Method Summary
Modifier and TypeMethodDescriptioncontarEmpleadosPorDepartamento(Long idEmpresa) Obtiene el conteo de empleados agrupados por departamento para una empresa.contarTotalEmpleadosActivos(Long idEmpresa) Cuenta el número total de empleados activos de una empresa.intDesactiva automáticamente a los empleados cuya fecha de baja de contrato ya ha pasado.findByEmail(String email) Busca un empleado por su correo electrónico.findByEmpresaIdEmpresa(Long idEmpresa) Busca todos los empleados que pertenecen a una empresa 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
-
findByEmail
Busca un empleado por su correo electrónico. Utilizado principalmente durante el proceso de autenticación.- Parameters:
email- El correo electrónico a buscar.- Returns:
- Un Optional con el Empleado si existe.
-
findByEmpresaIdEmpresa
Busca todos los empleados que pertenecen a una empresa específica.- Parameters:
idEmpresa- El ID de la empresa.- Returns:
- Lista de empleados de esa empresa.
-
desactivarEmpleadosConContratoExpirado
@Transactional @Modifying @Query("UPDATE Empleado e SET e.activo = false WHERE e.activo = true AND e.fechaBajaContrato IS NOT NULL AND e.fechaBajaContrato <= CURRENT_DATE") int desactivarEmpleadosConContratoExpirado()Desactiva automáticamente a los empleados cuya fecha de baja de contrato ya ha pasado.- Returns:
- El número de empleados que han sido desactivados.
-
contarEmpleadosPorDepartamento
@Query("SELECT new com.gestorrh.api.dto.estadisticas.DatoGraficoDTO(COALESCE(e.departamento, \'Sin asignar\'), COUNT(e)) FROM Empleado e WHERE e.empresa.idEmpresa = :idEmpresa GROUP BY e.departamento") List<DatoGraficoDTO> contarEmpleadosPorDepartamento(@Param("idEmpresa") Long idEmpresa) Obtiene el conteo de empleados agrupados por departamento para una empresa.- Parameters:
idEmpresa- El ID de la empresa.- Returns:
- Lista de DTOs con el nombre del departamento y la cantidad de empleados.
-
contarTotalEmpleadosActivos
@Query("SELECT COUNT(e) FROM Empleado e WHERE e.empresa.idEmpresa = :idEmpresa AND e.activo = true") Long contarTotalEmpleadosActivos(@Param("idEmpresa") Long idEmpresa) Cuenta el número total de empleados activos de una empresa.- Parameters:
idEmpresa- El ID de la empresa.- Returns:
- Cantidad total de empleados en estado activo.
-