Class ReporteController
Proporciona endpoints para obtener datos detallados o resumidos, tanto en formato JSON como en documentos PDF descargables, facilitando la auditoría y el control de horas trabajadas.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate org.springframework.http.ResponseEntity<byte[]> construirRespuestaPdf(byte[] pdfBytes, String nombreArchivo) Construye la respuesta HTTP estándar para la descarga de un archivo PDF.private StringconstruirSubtituloFechas(LocalDate fechaInicio, LocalDate fechaFin) Construye la cadena de subtítulo con el rango de fechas formateado para los documentos PDF.org.springframework.http.ResponseEntity<byte[]> descargarPdfDetalle(LocalDate fechaInicio, LocalDate fechaFin, Long idEmpleado) Genera y permite la descarga de un documento PDF con el reporte detallado de fichajes.org.springframework.http.ResponseEntity<byte[]> descargarPdfResumen(LocalDate fechaInicio, LocalDate fechaFin, Long idEmpleado) Genera y permite la descarga de un documento PDF con el resumen de horas por empleado.org.springframework.http.ResponseEntity<List<ReporteDetalleDTO>> generarReporteDetallado(LocalDate fechaInicio, LocalDate fechaFin, Long idEmpleado) Obtiene el historial pormenorizado de fichajes y cálculos de horas realizados en un rango de fechas.org.springframework.http.ResponseEntity<List<ReporteResumenDTO>> generarReporteResumen(LocalDate fechaInicio, LocalDate fechaFin, Long idEmpleado) Obtiene un resumen consolidado de las horas totales y extras trabajadas por los empleados en un periodo.
-
Field Details
-
reporteService
-
reportePdfService
-
-
Constructor Details
-
ReporteController
public ReporteController()
-
-
Method Details
-
generarReporteDetallado
@GetMapping("/detalle") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'SUPERVISOR\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<List<ReporteDetalleDTO>> generarReporteDetallado(@RequestParam @DateTimeFormat(iso=DATE) LocalDate fechaInicio, @RequestParam @DateTimeFormat(iso=DATE) LocalDate fechaFin, @RequestParam(required=false) Long idEmpleado) Obtiene el historial pormenorizado de fichajes y cálculos de horas realizados en un rango de fechas.Este endpoint es idóneo para ser utilizado como fuente de datos en informes detallados, permitiendo filtrar opcionalmente por un empleado específico.
URL de acceso:
GET http://localhost:8080/api/reportes/detalle?fechaInicio=2026-03-01&fechaFin=2026-03-31- Parameters:
fechaInicio- Fecha inicial del periodo a consultar (formato ISO: YYYY-MM-DD).fechaFin- Fecha final del periodo a consultar (formato ISO: YYYY-MM-DD).idEmpleado- Identificador opcional del empleado para filtrar los resultados.- Returns:
- ResponseEntity con una lista de
ReporteDetalleDTOy estado HTTP 200 (OK).
-
generarReporteResumen
@GetMapping("/resumen") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'SUPERVISOR\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<List<ReporteResumenDTO>> generarReporteResumen(@RequestParam @DateTimeFormat(iso=DATE) LocalDate fechaInicio, @RequestParam @DateTimeFormat(iso=DATE) LocalDate fechaFin, @RequestParam(required=false) Long idEmpleado) Obtiene un resumen consolidado de las horas totales y extras trabajadas por los empleados en un periodo.Los datos se agrupan por empleado, siendo ideal para visualizaciones en cuadros de mando y revisiones ejecutivas de productividad.
URL de acceso:
GET http://localhost:8080/api/reportes/resumen?fechaInicio=2026-03-01&fechaFin=2026-03-31- Parameters:
fechaInicio- Fecha inicial del periodo a resumir (formato ISO: YYYY-MM-DD).fechaFin- Fecha final del periodo a resumir (formato ISO: YYYY-MM-DD).idEmpleado- Identificador opcional del empleado para filtrar el resumen.- Returns:
- ResponseEntity con una lista de
ReporteResumenDTOy estado HTTP 200 (OK).
-
descargarPdfDetalle
@GetMapping("/detalle/pdf") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'SUPERVISOR\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<byte[]> descargarPdfDetalle(@RequestParam("fechaInicio") @DateTimeFormat(iso=DATE) LocalDate fechaInicio, @RequestParam("fechaFin") @DateTimeFormat(iso=DATE) LocalDate fechaFin, @RequestParam(value="idEmpleado",required=false) Long idEmpleado) Genera y permite la descarga de un documento PDF con el reporte detallado de fichajes.El documento incluye el nombre de la empresa autenticada y el rango de fechas seleccionado.
URL de acceso:
GET http://localhost:8080/api/reportes/detalle/pdf?fechaInicio=2026-03-01&fechaFin=2026-03-31- Parameters:
fechaInicio- Fecha de inicio del reporte.fechaFin- Fecha de fin del reporte.idEmpleado- Identificador opcional del empleado para el cual se genera el reporte.- Returns:
- ResponseEntity con el contenido binario del PDF, cabeceras de tipo de contenido y disposición de archivo.
-
descargarPdfResumen
@GetMapping("/resumen/pdf") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'SUPERVISOR\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<byte[]> descargarPdfResumen(@RequestParam("fechaInicio") @DateTimeFormat(iso=DATE) LocalDate fechaInicio, @RequestParam("fechaFin") @DateTimeFormat(iso=DATE) LocalDate fechaFin, @RequestParam(value="idEmpleado",required=false) Long idEmpleado) Genera y permite la descarga de un documento PDF con el resumen de horas por empleado.Facilita una visión rápida y profesional de la distribución de horas en un intervalo temporal.
URL de acceso:
GET http://localhost:8080/api/reportes/resumen/pdf?fechaInicio=2026-03-01&fechaFin=2026-03-31- Parameters:
fechaInicio- Fecha de inicio del resumen.fechaFin- Fecha de fin del resumen.idEmpleado- Identificador opcional del empleado para el cual se genera el resumen.- Returns:
- ResponseEntity con el contenido binario del PDF y cabeceras adecuadas para su descarga.
-
construirSubtituloFechas
Construye la cadena de subtítulo con el rango de fechas formateado para los documentos PDF.- Parameters:
fechaInicio- Fecha de inicio del rango.fechaFin- Fecha de fin del rango.- Returns:
- Cadena con el formato "Del dd/MM/yyyy al dd/MM/yyyy".
-
construirRespuestaPdf
private org.springframework.http.ResponseEntity<byte[]> construirRespuestaPdf(byte[] pdfBytes, String nombreArchivo) Construye la respuesta HTTP estándar para la descarga de un archivo PDF.- Parameters:
pdfBytes- Contenido binario del documento PDF generado.nombreArchivo- Nombre del archivo que se propondrá en la descarga.- Returns:
- ResponseEntity con el PDF, las cabeceras de tipo de contenido y disposición de archivo.
-