Отправьте начальную и конечную дату в запросе сопоставления в контроллере остальных при весенней загрузке - PullRequest
2 голосов
/ 21 октября 2019

Я получаю данные из нескольких таблиц при весенней загрузке, используя hibernate jpa. Мой запрос идеален и работает нормально, я просто застрял в том, как передать старт и дату из контроллера rest и вызвать URL. Вот мой код контроллера отдыха:

@RequestMapping("/employeeMonthlyAttendance/startDate/{startDate}/endDate/{endDate}")
public String generateEmployeeMonthlyAttendanceReport(HttpServletResponse response, @PathVariable Date startDate, @PathVariable Date endDate){

    try {
        System.out.println("METHOD CALLED");

        List<EmployeeMonthlyAttendanceReport> employees = employeeMonthlyAttendanceReportService.getEmployeeMonthlyAttendance(startDate, endDate) ;

        // Get your data source
        JRBeanCollectionDataSource jrBeanCollectionDataSource = new JRBeanCollectionDataSource(employees);

        // Add parameters
//            Map<String, Object> parameters = new HashMap<>();


        JasperPrint jasperPrint = null;

        //For Download PDF File
//            response.setContentType("application/x-download");
//            response.setHeader("Content-Disposition",   String.format("attachment; filename=\"All Sections Employees.pdf\""));

        //For  Direct View PDF FILE
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", String.format("inline; filename=\"Employees Monthly Attendance Report.pdf\""));

        OutputStream out = response.getOutputStream();
        jasperPrint = jasperReportService.exportPDFFileWithData("EmployeeMonthlyAttendanceReport", new HashedMap(), jrBeanCollectionDataSource);
        JasperExportManager.exportReportToPdfStream(jasperPrint, out);

        System.out.println("Done");

        return "Report successfully generated";
    } catch (Exception e) {
        e.printStackTrace();
        return "Error--> check the console log";
    }


}

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Прежде всего, вам нужно добавить DateTimeFormat в параметре вашего метода, добавив import org.springframework.format.annotation.DateTimeFormat в разделе импорта вашего контроллера покоя.

Ваш метод контроллера будет выглядеть так:

    @RequestMapping("/employeeMonthlyAttendance/startDate/{startDate}/endDate/{endDate}")
        public String generateEmployeeMonthlyAttendanceReport(HttpServletResponse response, 
        @PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate){
        }

Теперь вы можете позвонить на конечную точку с любого клиента REST, передав форматированную дату.

Ваш URL будет выглядеть следующим образом: http://localhost:9999/reports/employees/employeeMonthlyAttendance/startDate/2019-07-01/endDate/2019-07-31

Надеюсь, это то, что вы ищете

1 голос
/ 21 октября 2019

@ PathVariable ("startDate") @DateTimeFormat (pattern = "yyyy-MM-dd") Дата startDate @PathVariable ("endDate") @DateTimeFormat (pattern = "yyyy-MM-dd") Дата endDate

Попробуйте внести эти изменения в метод generateEmployeeMonthlyAttendanceReport (). Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...