Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Cambio de idioma

ConsultaController

    @GetMapping("/relatorio-mensual/{mes}")     --> En Portugues <--
    public ResponseEntity<List<DatosRelatoriosConsultaMensual>> generarRelatorioConsultaMensual(@PathVariable
                                                                                                    YearMonth mes) {
        //var relatorio = consultaRepository.?
        return ResponseEntity.ok(null);
    }

Para Argentina:

  @GetMapping("/reporte-mensual/{mes}")
    public ResponseEntity<List<DatosReporteConsultaMensual>> generarReporteConsultaMensual(
            @PathVariable @DateTimeFormat(pattern = "yyyy-MM") YearMonth mes) {

        // Calculamos el inicio y fin del mes en Argentina
        var inicio = mes.atDay(1).atStartOfDay();
        var fin = mes.atEndOfMonth().atTime(23, 59, 59);

        var reporte = consultaRepository.buscarReporteMensual(inicio, fin);

        return ResponseEntity.ok(reporte);
    }

Modificamos DatosReporteConsultaMensual:

public record DatosReporteConsultaMensual(  --> Portugues <--
//        String nome,
//        String crm,
//        Long quantidadeConsultasNoMes) {
//}

Por una interface, para no tener problemas con las consulta JPQL y los package. Ademas sacamos la interface del package 'dto' y lo pasamos a 'consulta'

public interface DatosReporteConsultaMensual {
        String getNombreMedico();
        Long getCantidadDeConsultas();
}

El ConsultaRepository:

 @Query("""
    SELECT c.medico.nombre AS nombreMedico, COUNT(c) AS cantidadDeConsultas
    FROM Consulta c
    WHERE c.fecha BETWEEN :inicio AND :fin
    GROUP BY c.medico.nombre
""")
    List<DatosReporteConsultaMensual> buscarReporteMensual(
            @Param("inicio") LocalDateTime inicio,
            @Param("fin") LocalDateTime fin
    );

Mi postman:
Imagen Postman

1 respuesta

¡Hola, Christian, espero que estés bien!

Parece que estás en el camino correcto para cambiar el idioma de tu aplicación de portugués a español. Aquí tienes algunas sugerencias para asegurarte de que todo funcione correctamente:

  1. Rutas y Endpoints:

    • Asegúrate de que el nuevo endpoint /reporte-mensual/{mes} esté correctamente configurado en tu controlador y que el cliente (Postman) lo esté llamando correctamente.
  2. Interfaz DatosReporteConsultaMensual:

    • Has hecho bien al cambiar los nombres de los métodos en la interfaz para que estén en español. Esto ayudará a mantener la consistencia en tu código.
  3. Consulta JPQL:

    • La consulta parece estar bien estructurada. Solo asegúrate de que los nombres de las columnas y las propiedades en la consulta coincidan con los de tu base de datos.
  4. Pruebas en Postman:

    • Según la imagen, parece que la respuesta está retornando correctamente con el nombre del médico y la cantidad de consultas. Si necesitas probar con más datos, considera agregar más médicos y consultas en tu base de datos para verificar que la agrupación y conteo funcionan como esperas.
  5. Errores Comunes:

    • Si encuentras algún error, verifica los logs de tu aplicación para obtener más detalles. A menudo, los errores de mapeo o de consulta se pueden diagnosticar rápidamente revisando los mensajes de error.

Espero que estas sugerencias te sean útiles. ¡Bons estudos!