Class EmpleadoService
Proporciona la lógica de negocio necesaria para administrar el ciclo de vida del empleado: desde el alta inicial con generación de credenciales temporales, hasta la gestión de bajas, readmisiones y el mantenimiento del perfil profesional.
Implementa políticas estrictas de seguridad multi-tenant para asegurar que los datos del personal sean accesibles únicamente por la empresa propietaria o el propio empleado.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.springframework.security.crypto.password.PasswordEncoderprivate final EmpleadoRepositoryprivate final EmpresaRepository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionactualizarEmpleado(Long idEmpleado, PeticionActualizarEmpleadoDTO peticion) Actualiza la información profesional y de contacto de un empleado.voidPermite al empleado autenticado actualizar su contraseña personal.crearEmpleado(PeticionCrearEmpleadoDTO peticion) Registra un nuevo empleado en la organización y le vincula automáticamente a la empresa solicitante.voiddarDeBajaEmpleado(Long idEmpleado, LocalDate fechaBaja) Tramita la baja laboral de un empleado en el sistema.Recupera la lista completa de empleados que pertenecen a la empresa autenticada.Recupera la información detallada del perfil del empleado que ha iniciado sesión.readmitirEmpleado(Long idEmpleado) Reincorpora a un empleado que previamente se encontraba en estado de baja.
-
Field Details
-
empleadoRepository
-
empresaRepository
-
codificadorPassword
private final org.springframework.security.crypto.password.PasswordEncoder codificadorPassword
-
-
Constructor Details
-
EmpleadoService
public EmpleadoService()
-
-
Method Details
-
crearEmpleado
Registra un nuevo empleado en la organización y le vincula automáticamente a la empresa solicitante.El proceso de alta automatiza la seguridad inicial: genera una contraseña aleatoria de 8 caracteres mediante
UUIDpara el primer inicio de sesión del trabajador.- Parameters:
peticion- ObjetoPeticionCrearEmpleadoDTOcon la información del nuevo trabajador.- Returns:
RespuestaCrearEmpleadoDTOque incluye la identificación del sistema y la contraseña temporal generada.- Throws:
RuntimeException- Si el correo electrónico ya existe en la base de datos (Restricción de unicidad).
-
obtenerEmpleadosDeEmpresa
Recupera la lista completa de empleados que pertenecen a la empresa autenticada.Calcula dinámicamente el estado de actividad basándose en la fecha de baja del contrato.
- Returns:
- List de
RespuestaEmpleadoDTOcon el personal de la empresa.
-
actualizarEmpleado
@Transactional public RespuestaEmpleadoDTO actualizarEmpleado(Long idEmpleado, PeticionActualizarEmpleadoDTO peticion) Actualiza la información profesional y de contacto de un empleado.Verifica estrictamente que el empleado pertenezca a la empresa que solicita la modificación.
- Parameters:
idEmpleado- Identificador único del empleado a modificar.peticion- DTO con los nuevos datos (nombre, apellidos, puesto, rol, etc.).- Returns:
RespuestaEmpleadoDTOcon los datos actualizados.- Throws:
RuntimeException- Si el empleado no existe o pertenece a otra empresa (Violación de seguridad).
-
darDeBajaEmpleado
Tramita la baja laboral de un empleado en el sistema.Si la fecha de baja es igual o anterior a hoy, el empleado se marca como inactivo inmediatamente. Si es posterior, la baja queda programada para su procesamiento automático futuro.
- Parameters:
idEmpleado- Identificador del empleado.fechaBaja- Fecha efectiva de la finalización del contrato.
-
readmitirEmpleado
Reincorpora a un empleado que previamente se encontraba en estado de baja.Limpia la fecha de fin de contrato, reactiva la cuenta y genera una nueva contraseña de acceso.
- Parameters:
idEmpleado- Identificador del empleado a readmitir.- Returns:
RespuestaCrearEmpleadoDTOcon la nueva contraseña de acceso para el empleado reincorporado.
-
obtenerMiPerfil
Recupera la información detallada del perfil del empleado que ha iniciado sesión. Este método se basa en el contexto de seguridad JWT.- Returns:
RespuestaEmpleadoDTOcon los datos del perfil propio del empleado.
-
cambiarMiContrasena
Permite al empleado autenticado actualizar su contraseña personal.Requiere la validación exitosa de su contraseña actual.
- Parameters:
peticion- DTO con la contraseña actual y la nueva contraseña deseada.
-