загрузка отчета на jsp занимает слишком много времени, но не на загрузку Excel (POI) - PullRequest
1 голос
/ 09 мая 2019

Я хочу получить отчет на своей странице report.jsp, но это занимает слишком много раз, и когда я загружаю (Excel) это с помощью Apache POI, это занимает всего несколько секунд.

Я уже пробовал ниже код,

@RequestMapping(value = "/report")
public String ivrRouteReport(Model model,
@RequestParam(value="startDate", required = false) String startDate,
@RequestParam(value="endDate", required = false) String endDate) {
          model.addAttribute("listReport",serviceInterface.getAllReportResponceBetweenDate(startDate,endDate));
  return "admin/report";
}

И код загрузки есть,

@RequestMapping(value="/reportDownload", method = {RequestMethod.POST })
public ModelAndView download(Model model,
        @RequestParam(value="startDate", required = false) String startDate,
        @RequestParam(value="endDate", required = false) String endDate
        ) {
    ModelAndView modelAndView = new ModelAndView("excelReportSummary","reportList", 
                serviceInterface.getAllReportResponceBetweenDate(startDate,endDate));
    return modelAndView;
}

Оба метода контроллера наследуют один и тот же метод DaoImpl,

    @Override
public List<Report> getAllReportResponceBetweenDate(String startDate, String endDate) {
    String strqry= "SELECT c.caller_id_number as caller_id_number, c.destination_number as destination_number,"
            +" c.created_time as created_time, vbDtmf.digit as dtmf FROM VoiceBroadcastDTMF vbDtmf "
            +"LEFT JOIN cdr c ON vbDtmf.uuid=c.orig_id where (c.created_time BETWEEN '"+startDate+"%' AND '"+endDate+"%') ORDER
              BY c.created_time DESC";

    Query query = getSession().createSQLQuery(strqry)
             .addScalar("caller_id_number", new StringType())
             .addScalar("destination_number", new StringType())
             .addScalar("created_time", new StringType())
             .addScalar("dtmf", new StringType())
            .setResultTransformer(Transformers.aliasToBean(Report.class));
     List<Report> reportList =(List<Report>) query.getResultList();
     getSession().flush();
    return reportList;
}

тогда почему метод контроллера отчетов занимает слишком много времени, чтобы загрузить данные в jsp, а загрузка занимает всего несколько минут? здесь я использую Mysql и его таблица имеет приблизительные 50 тыс. данных.

Спасибо.

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