при условии, что вы знаете, как получить данные из вашей БД (между двумя датами), и ваша единственная проблема - вывести их в pdf / excel. Самый простой и быстрый способ, которым я бы это реализовал - это вывод в формате CSV - установите заголовок ответа следующим образом:
response.setHeader("Content-disposition:", "attachment; filename="output-filename.csv";
response.setHeader("Authorization", utils.getSafeHeader(request, "Authorization", null));
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");