From f05b6da0ee32a49259a7c2abff334f58e7966084 Mon Sep 17 00:00:00 2001
From: verboomp
Date: Mon, 23 Feb 2026 16:30:21 +0100
Subject: [PATCH] added download from excel and zip in frontend
---
.../service/QuestionnaireCustomerService.java | 5 --
.../core/utils/ExcelUtilsTest.java | 86 ++++---------------
2 files changed, 17 insertions(+), 74 deletions(-)
diff --git a/hartmann-foto-documentation-app/src/main/java/marketing/heyday/hartmann/fotodocumentation/core/service/QuestionnaireCustomerService.java b/hartmann-foto-documentation-app/src/main/java/marketing/heyday/hartmann/fotodocumentation/core/service/QuestionnaireCustomerService.java
index e60ace0..be1dc07 100644
--- a/hartmann-foto-documentation-app/src/main/java/marketing/heyday/hartmann/fotodocumentation/core/service/QuestionnaireCustomerService.java
+++ b/hartmann-foto-documentation-app/src/main/java/marketing/heyday/hartmann/fotodocumentation/core/service/QuestionnaireCustomerService.java
@@ -5,7 +5,6 @@ import java.util.*;
import org.apache.commons.lang3.StringUtils;
import jakarta.annotation.security.PermitAll;
-import jakarta.ejb.EJB;
import jakarta.ejb.LocalBean;
import jakarta.ejb.Stateless;
import jakarta.inject.Inject;
@@ -13,7 +12,6 @@ import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.*;
import marketing.heyday.hartmann.fotodocumentation.core.model.Questionnaire;
import marketing.heyday.hartmann.fotodocumentation.core.model.QuestionnaireCustomer;
-import marketing.heyday.hartmann.fotodocumentation.core.query.QueryService;
import marketing.heyday.hartmann.fotodocumentation.core.utils.CalendarUtil;
import marketing.heyday.hartmann.fotodocumentation.core.utils.ExcelUtils;
import marketing.heyday.hartmann.fotodocumentation.core.utils.ZipExportUtils;
@@ -35,9 +33,6 @@ import marketing.heyday.hartmann.fotodocumentation.rest.vo.QuestionnaireCustomer
@PermitAll
public class QuestionnaireCustomerService extends AbstractService {
- @EJB
- private QueryService queryService;
-
@Inject
private ZipExportUtils zipExportUtils;
diff --git a/hartmann-foto-documentation-app/src/test/java/marketing/heyday/hartmann/fotodocumentation/core/utils/ExcelUtilsTest.java b/hartmann-foto-documentation-app/src/test/java/marketing/heyday/hartmann/fotodocumentation/core/utils/ExcelUtilsTest.java
index bb959d0..92ab3ae 100644
--- a/hartmann-foto-documentation-app/src/test/java/marketing/heyday/hartmann/fotodocumentation/core/utils/ExcelUtilsTest.java
+++ b/hartmann-foto-documentation-app/src/test/java/marketing/heyday/hartmann/fotodocumentation/core/utils/ExcelUtilsTest.java
@@ -41,7 +41,7 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_singleQuestionnaire_returnsPresent() {
QuestionnaireCustomer customer = createCustomer("Müller GmbH", "C-001", "Berlin", "10115");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "What is your rating?");
+ Questionnaire questionnaire = createQuestionnaire(new Date());
Optional result = excelUtils.create(customer, List.of(questionnaire));
@@ -51,7 +51,7 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_singleQuestionnaire_returnsValidXlsx() throws IOException {
QuestionnaireCustomer customer = createCustomer("Müller GmbH", "C-001", "Berlin", "10115");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "What is your rating?");
+ Questionnaire questionnaire = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
@@ -61,14 +61,11 @@ class ExcelUtilsTest implements TestAble {
}
@Test
- void create_emptyQuestionnaires_returnsEmptyWorkbook() throws IOException {
+ void create_emptyQuestionnaires_returnsEmptyWorkbook() {
QuestionnaireCustomer customer = createCustomer("Müller GmbH", "C-001", "Berlin", "10115");
- byte[] bytes = excelUtils.create(customer, Collections.emptyList()).orElseThrow();
-
- try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytes))) {
- assertEquals(0, workbook.getNumberOfSheets());
- }
+ Optional result = excelUtils.create(customer, Collections.emptyList());
+ assertFalse(result.isPresent());
}
// --- create: sheet count ---
@@ -76,7 +73,7 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_singleQuestionnaire_createsOneSheet() throws IOException {
QuestionnaireCustomer customer = createCustomer("Müller GmbH", "C-001", "Berlin", "10115");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "Q1");
+ Questionnaire questionnaire = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
@@ -88,9 +85,9 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_multipleQuestionnaires_createsSheetPerQuestionnaire() throws IOException {
QuestionnaireCustomer customer = createCustomer("Müller GmbH", "C-001", "Berlin", "10115");
- Questionnaire q1 = createQuestionnaire(new Date(), "Q1");
- Questionnaire q2 = createQuestionnaire(new Date(), "Q2");
- Questionnaire q3 = createQuestionnaire(new Date(), "Q3");
+ Questionnaire q1 = createQuestionnaire(new Date());
+ Questionnaire q2 = createQuestionnaire(new Date());
+ Questionnaire q3 = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(q1, q2, q3)).orElseThrow();
@@ -106,73 +103,24 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_writesCustomerNameInRow0() throws IOException {
QuestionnaireCustomer customer = createCustomer("Hartmann AG", "C-100", "München", "80331");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "Q1");
+ Questionnaire questionnaire = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytes))) {
assertEquals("Hartmann AG", workbook.getSheetAt(0).getRow(0).getCell(0).getStringCellValue());
- }
- }
-
- @Test
- void create_writesCustomerNumberInRow1() throws IOException {
- QuestionnaireCustomer customer = createCustomer("Hartmann AG", "C-100", "München", "80331");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "Q1");
-
- byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
-
- try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytes))) {
assertEquals("C-100", workbook.getSheetAt(0).getRow(1).getCell(0).getStringCellValue());
- }
- }
-
- @Test
- void create_writesCustomerCityInRow2() throws IOException {
- QuestionnaireCustomer customer = createCustomer("Hartmann AG", "C-100", "München", "80331");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "Q1");
-
- byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
-
- try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytes))) {
assertEquals("München", workbook.getSheetAt(0).getRow(2).getCell(0).getStringCellValue());
- }
- }
-
- @Test
- void create_writesCustomerZipInRow3() throws IOException {
- QuestionnaireCustomer customer = createCustomer("Hartmann AG", "C-100", "München", "80331");
- Questionnaire questionnaire = createQuestionnaire(new Date(), "Q1");
-
- byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
-
- try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytes))) {
assertEquals("80331", workbook.getSheetAt(0).getRow(3).getCell(0).getStringCellValue());
}
}
- // --- create: questionnaire date in row 4 ---
-
- @Test
- void create_writesQuestionnaireDateInRow4() throws IOException {
- QuestionnaireCustomer customer = createCustomer("Test", "C-001", "Berlin", "10115");
- Date date = new Date();
- Questionnaire questionnaire = createQuestionnaire(date, "Q1");
-
- byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
-
- try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytes))) {
- XSSFRow row = workbook.getSheetAt(0).getRow(4);
- assertEquals(date, row.getCell(0).getDateCellValue());
- }
- }
-
// --- create: question data in row 7 (after 5 customer rows + 2 blank rows) ---
@Test
void create_writesFirstQuestionTitleInRow7() throws IOException {
QuestionnaireCustomer customer = createCustomer("Test", "C-001", "Berlin", "10115");
- Questionnaire questionnaire = createQuestionnaire(new Date(), null);
+ Questionnaire questionnaire = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(questionnaire)).orElseThrow();
@@ -190,7 +138,7 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_nullCustomerFields_writesNullsWithoutError() {
QuestionnaireCustomer customer = createCustomer(null, null, null, null);
- Questionnaire questionnaire = createQuestionnaire(null, null);
+ Questionnaire questionnaire = createQuestionnaire(null);
Optional result = excelUtils.create(customer, List.of(questionnaire));
@@ -202,8 +150,8 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_multipleSheets_eachSheetHasCustomerData() throws IOException {
QuestionnaireCustomer customer = createCustomer("Hartmann AG", "C-100", "München", "80331");
- Questionnaire q1 = createQuestionnaire(new Date(), "Q1");
- Questionnaire q2 = createQuestionnaire(new Date(), "Q2");
+ Questionnaire q1 = createQuestionnaire(new Date());
+ Questionnaire q2 = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(q1, q2)).orElseThrow();
@@ -219,8 +167,8 @@ class ExcelUtilsTest implements TestAble {
@Test
void create_multipleSheets_eachSheetHasQuestionData() throws IOException {
QuestionnaireCustomer customer = createCustomer("Test", "C-001", "Berlin", "10115");
- Questionnaire q1 = createQuestionnaire(new Date(), null);
- Questionnaire q2 = createQuestionnaire(new Date(), null);
+ Questionnaire q1 = createQuestionnaire(new Date());
+ Questionnaire q2 = createQuestionnaire(new Date());
byte[] bytes = excelUtils.create(customer, List.of(q1, q2)).orElseThrow();
@@ -243,7 +191,7 @@ class ExcelUtilsTest implements TestAble {
.build();
}
- private Questionnaire createQuestionnaire(Date date, String questions) {
+ private Questionnaire createQuestionnaire(Date date) {
return new Questionnaire.Builder()
.questionnaireDate(date)
.questions(QuestionnaireJsonParserTest.TEST_JSON_1)