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 Type
    Method
    Description
    Obtiene el conteo de empleados agrupados por departamento para una empresa.
    Cuenta el número total de empleados activos de una empresa.
    int
    Desactiva automáticamente a los empleados cuya fecha de baja de contrato ya ha pasado.
    Busca un empleado por su correo electrónico.
    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, save

    Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository

    deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlush

    Methods inherited from interface org.springframework.data.repository.ListCrudRepository

    findAll, findAllById, saveAll

    Methods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor

    count, exists, findAll, findBy, findOne
  • Method Details

    • findByEmail

      Optional<Empleado> findByEmail(String email)
      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

      List<Empleado> findByEmpresaIdEmpresa(Long idEmpresa)
      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.