/
ilyaBu
/
WebSpringJava
Обзор
Документация
Войти
/
ilyaBu
/
WebSpringJava
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/ru/gb/spring/diplomawebjavaspringgb/controller/PdfGenerateController.java
98 строк
5 KB
IliaBu
Update code
14 июл 2024, 09:59
14 июл 2024, 09:59
2267cd9
Код
Авторство
О чём код?
package ru.gb.spring.diplomawebjavaspringgb.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import ru.gb.spring.diplomawebjavaspringgb.model.ListSelectedParts; import ru.gb.spring.diplomawebjavaspringgb.service.PdfGenerateService; import ru.gb.spring.diplomawebjavaspringgb.service.PriceListService; import ru.gb.spring.diplomawebjavaspringgb.service.UserService; import java.text.SimpleDateFormat; import java.util.*; @Controller public class PdfGenerateController { @Autowired private PriceListService priceListService; @Autowired private UserService userService; @Autowired private PdfGenerateService pdfGenerateService; /** * Метод генерации PDF из шаблона pdf-create.html. * * @param redirectAttributes атрибуты перенаправления * @param counterparty контрагент * @return страницу list-parts.html */ @GetMapping("/pdf") public String pdfCreate(RedirectAttributes redirectAttributes, @ModelAttribute("counterparty") String counterparty) { try { if (counterparty.isEmpty()) { counterparty = "________________"; } List<ListSelectedParts> listSelectedParts = priceListService.getRowNumberTableListSelectedParts(userService.getCurrentUserNoSymbol()); if (listSelectedParts.size() > 0) { Map<String, Object> data = new HashMap<>(); data.put("currentDate", new Date()); data.put("counterparty", counterparty); data.put("totalItems3", priceListService.getCountRowsTableListSelectedParts(userService.getCurrentUserNoSymbol())); data.put("totalVOR", priceListService.totalVOR(userService.getCurrentUserNoSymbol())); data.put("totalSTOCK", priceListService.totalSTOCK(userService.getCurrentUserNoSymbol())); data.put("totalSTOCKVAT", priceListService.totalSTOCKVAT(userService.getCurrentUserNoSymbol())); data.put("totalWeight", priceListService.totalWeight(userService.getCurrentUserNoSymbol())); data.put("totalVolume", priceListService.totalVolume(userService.getCurrentUserNoSymbol())); data.put("totalVORVAT", priceListService.totalVORVAT(userService.getCurrentUserNoSymbol())); data.put("listSelectedParts", listSelectedParts); String fileName = new SimpleDateFormat("dd.MM.yyyy").format(new Date()) + "_" + counterparty + ".pdf"; pdfGenerateService.generatePdfFile("pdf-create", data, fileName); redirectAttributes.addFlashAttribute("messageSuccess", "Файл PDF успешно создан!"); } else { redirectAttributes.addFlashAttribute("messageError", "Нет данных!"); } } catch (Exception e) { redirectAttributes.addFlashAttribute("messageError", e.getMessage()); } return "redirect:/list-parts"; } /** * Метод обработки запроса HTTP GET для загрузки PDF-файла. * Извлекает файл из хранилища по его имени и возвращает его как ResponseEntity с соответствующими заголовками. * * @param name имя PDF-файла, который необходимо загрузить. * @return объект ResponseEntity, содержащий загруженный PDF-файл. * Если файл не найден, возвращается ResponseEntity с кодом состояния 404. */ @GetMapping(path = "/download/{name}") public ResponseEntity<Resource> downloadFile(@PathVariable("name") String name) { return pdfGenerateService.downloadFile(name); } /** * Метод обработки запроса HTTP POST для удаления PDF-файла из хранилища. * * @param name имя PDF-файла, который необходимо удалить. * @return страница list-parts.html, представляющая URL-адрес перенаправления на страницу list-parts.html. * * @throws Exception если возникает ошибка при удалении файла. */ @PostMapping(path = "/deletePDF") public String delete(@RequestParam("name") String name) { pdfGenerateService.delete(name); return "redirect:/list-parts"; } }