Class FichajeController

java.lang.Object
com.gestorrh.api.controller.FichajeController

@RestController @RequestMapping("/api/fichajes") public class FichajeController extends Object
Controlador REST para la gestión de los registros de jornada laboral (fichajes).

Proporciona funcionalidades para registrar entradas y salidas, consultar el historial de fichajes y realizar modificaciones manuales por parte de perfiles autorizados.

  • Field Details

  • Constructor Details

    • FichajeController

      public FichajeController()
  • Method Details

    • ficharEntrada

      @PostMapping("/entrada") @PreAuthorize("hasAnyRole(\'EMPLEADO\', \'SUPERVISOR\')") public org.springframework.http.ResponseEntity<RespuestaFichajeDTO> ficharEntrada(@Valid @RequestBody @Valid PeticionFichajeEntradaDTO peticion)
      Registra el inicio de la jornada laboral de un empleado (fichaje de entrada).

      Este endpoint es utilizado principalmente por la aplicación móvil.

      URL de acceso: POST http://localhost:8080/api/fichajes/entrada

      Parameters:
      peticion - DTO con la información necesaria para el registro de entrada.
      Returns:
      ResponseEntity con el RespuestaFichajeDTO generado y estado HTTP 201 (Created).
    • ficharSalida

      @PutMapping("/salida") @PreAuthorize("hasAnyRole(\'EMPLEADO\', \'SUPERVISOR\')") public org.springframework.http.ResponseEntity<RespuestaFichajeDTO> ficharSalida(@Valid @RequestBody @Valid PeticionFichajeSalidaDTO peticion)
      Registra el fin de la jornada laboral de un empleado (fichaje de salida).

      Actualiza el registro de entrada correspondiente con la hora de salida y calcula la jornada.

      URL de acceso: PUT http://localhost:8080/api/fichajes/salida

      Parameters:
      peticion - DTO con la información necesaria para el registro de salida.
      Returns:
      ResponseEntity con el RespuestaFichajeDTO actualizado y estado HTTP 200 (OK).
    • consultarFichajes

      @GetMapping @PreAuthorize("hasAnyRole(\'EMPLEADO\', \'SUPERVISOR\', \'EMPRESA\')") public org.springframework.http.ResponseEntity<List<RespuestaFichajeDTO>> consultarFichajes(@RequestParam @DateTimeFormat(iso=DATE) LocalDate fechaInicio, @RequestParam @DateTimeFormat(iso=DATE) LocalDate fechaFin, @RequestParam(required=false) Long empleadoId)
      Permite consultar el historial de fichajes realizados en un rango de fechas determinado.

      Puede ser filtrado opcionalmente por un empleado específico si el usuario tiene permisos.

      URL de acceso: GET http://localhost:8080/api/fichajes?fechaInicio=2026-03-01&fechaFin=2026-03-31

      Parameters:
      fechaInicio - Fecha de inicio para el rango de búsqueda.
      fechaFin - Fecha de fin para el rango de búsqueda.
      empleadoId - Identificador opcional del empleado a consultar.
      Returns:
      ResponseEntity con la lista de RespuestaFichajeDTO encontrados y estado HTTP 200 (OK).
    • modificarFichajeManual

      @PutMapping("/{idFichaje}/modificar") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'SUPERVISOR\')") public org.springframework.http.ResponseEntity<RespuestaFichajeDTO> modificarFichajeManual(@PathVariable Long idFichaje, @Valid @RequestBody PeticionModificacionFichajeDTO peticion)
      Permite a un Supervisor o Administrador de Empresa modificar manualmente la hora de entrada o salida de un fichaje.

      Esta acción queda registrada para auditoría a través de un campo de incidencias.

      URL de acceso: PUT http://localhost:8080/api/fichajes/{idFichaje}/modificar

      Parameters:
      idFichaje - Identificador único del fichaje que se desea corregir.
      peticion - DTO con los nuevos datos de tiempo y el motivo de la modificación.
      Returns:
      ResponseEntity con el RespuestaFichajeDTO modificado y estado HTTP 200 (OK).