generated from it-at-m/oss-repository-en-template
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feat/dave 108 export pdf report (#61)
* Options der Messstelle werden nun übergeben * neu generiert * OPtionen der Messstelle angebunden * Neu generiert, Groesse der Zeitintervalle wird nun beruecksichtigt * zeitauswahl der spitzenstunde angebunden * rename field * fix error * fix error * darstellungsoptionen der listenausgabe angebunden * Roundingservice erstellt * Titel erweitert * Tests geschrieben * Messstelle Listenausgabe angebunden * fix border * Logik fuer MessstellenPDF's ausgelagert
- Loading branch information
1 parent
32f9f49
commit 4ca2e8c
Showing
10 changed files
with
318 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 61 additions & 0 deletions
61
src/main/java/de/muenchen/dave/domain/mapper/DatentabellePdfMessstelleMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
package de.muenchen.dave.domain.mapper; | ||
|
||
import de.muenchen.dave.domain.dtos.laden.messwerte.LadeMesswerteDTO; | ||
import de.muenchen.dave.domain.dtos.messstelle.FahrzeugOptionsDTO; | ||
import de.muenchen.dave.domain.pdf.helper.DatentabellePdfZaehldaten; | ||
import de.muenchen.dave.domain.pdf.helper.DatentabellePdfZaehldatum; | ||
import java.util.List; | ||
import org.apache.commons.lang3.StringUtils; | ||
import org.mapstruct.AfterMapping; | ||
import org.mapstruct.Mapper; | ||
import org.mapstruct.Mapping; | ||
import org.mapstruct.MappingTarget; | ||
import org.mapstruct.Mappings; | ||
|
||
/** | ||
* Mapper wird benötigt, da Mustache nicht mit @JsonGetter umgehen kann. | ||
* Mustache ist eine Sprache für Templates aus denen die für die PDF benötigten HTML Strings | ||
* entstehen. | ||
*/ | ||
@Mapper(componentModel = "spring") | ||
public interface DatentabellePdfMessstelleMapper { | ||
|
||
String UHRZEIT_23_59 = "23:59"; | ||
String UHRZEIT_24_00 = "24:00"; | ||
|
||
@Mappings({ | ||
@Mapping(target = "endeUhrzeit", source = "dto.endeUhrzeit", dateFormat = "HH:mm"), | ||
@Mapping(target = "startUhrzeit", source = "dto.startUhrzeit", dateFormat = "HH:mm"), | ||
}) | ||
DatentabellePdfZaehldatum ladeMesswerteDTO2bean(LadeMesswerteDTO dto); | ||
|
||
@AfterMapping | ||
default void ladeMesswerteDTO2beanAfterMapping(@MappingTarget DatentabellePdfZaehldatum bean, LadeMesswerteDTO dto) { | ||
if (StringUtils.equals(bean.getEndeUhrzeit(), UHRZEIT_23_59)) { | ||
bean.setEndeUhrzeit(UHRZEIT_24_00); | ||
} | ||
} | ||
|
||
List<DatentabellePdfZaehldatum> ladeMesswerteDTOList2beanList(List<LadeMesswerteDTO> LadeMesswerteDTOList); | ||
|
||
@Mapping(target = "activeTabsFahrzeugtypen", ignore = true) | ||
@Mapping(target = "activeTabsFahrzeugklassen", ignore = true) | ||
@Mapping(target = "activeTabsAnteile", ignore = true) | ||
@Mapping(target = "showPkwEinheiten", ignore = true) | ||
@Mapping(target = "zaehldatenList", ignore = true) | ||
@Mapping(target = "showPersonenkraftwagen", source = "personenkraftwagen") | ||
@Mapping(target = "showLastkraftwagen", source = "lastkraftwagen") | ||
@Mapping(target = "showLastzuege", source = "lastzuege") | ||
@Mapping(target = "showLieferwagen", source = "lieferwagen") | ||
@Mapping(target = "showBusse", source = "busse") | ||
@Mapping(target = "showKraftraeder", source = "kraftraeder") | ||
@Mapping(target = "showRadverkehr", source = "radverkehr") | ||
@Mapping(target = "showFussverkehr", source = "fussverkehr") | ||
@Mapping(target = "showKraftfahrzeugverkehr", source = "kraftfahrzeugverkehr") | ||
@Mapping(target = "showSchwerverkehr", source = "schwerverkehr") | ||
@Mapping(target = "showGueterverkehr", source = "gueterverkehr") | ||
@Mapping(target = "showSchwerverkehrsanteilProzent", source = "schwerverkehrsanteilProzent") | ||
@Mapping(target = "showGueterverkehrsanteilProzent", source = "gueterverkehrsanteilProzent") | ||
DatentabellePdfZaehldaten fahrzeugOptionsToDatentabellePdfZaehldaten(final FahrzeugOptionsDTO options); | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
src/main/java/de/muenchen/dave/domain/pdf/assets/MessstelleDatatableAsset.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package de.muenchen.dave.domain.pdf.assets; | ||
|
||
import de.muenchen.dave.domain.dtos.messstelle.MessstelleOptionsDTO; | ||
import de.muenchen.dave.domain.pdf.helper.DatentabellePdfZaehldaten; | ||
import lombok.Data; | ||
|
||
@Data | ||
public class MessstelleDatatableAsset extends BaseAsset { | ||
|
||
private DatentabellePdfZaehldaten datentabelleZaehldaten; | ||
|
||
private String randomTableId; | ||
|
||
private String text; | ||
|
||
private MessstelleOptionsDTO options; | ||
|
||
private String mstId; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
98 changes: 98 additions & 0 deletions
98
src/main/java/de/muenchen/dave/services/pdfgenerator/FillPdfBeanMessstelleService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
package de.muenchen.dave.services.pdfgenerator; | ||
|
||
import de.muenchen.dave.domain.dtos.laden.messwerte.LadeMesswerteDTO; | ||
import de.muenchen.dave.domain.dtos.laden.messwerte.LadeMesswerteListenausgabeDTO; | ||
import de.muenchen.dave.domain.dtos.messstelle.FahrzeugOptionsDTO; | ||
import de.muenchen.dave.domain.dtos.messstelle.MessstelleOptionsDTO; | ||
import de.muenchen.dave.domain.mapper.DatentabellePdfMessstelleMapper; | ||
import de.muenchen.dave.domain.pdf.helper.DatentabellePdfZaehldaten; | ||
import de.muenchen.dave.services.messstelle.MesswerteService; | ||
import java.util.List; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
public class FillPdfBeanMessstelleService { | ||
|
||
private final MesswerteService messwerteService; | ||
private final DatentabellePdfMessstelleMapper datentabellePdfMessstelleMapper; | ||
|
||
/** | ||
* Diese Methode befüllt ein Objekt der Klasse {@link DatentabellePdfZaehldaten} und gibt dieses | ||
* zurück. | ||
* | ||
* @param options Die im Frontend ausgewählten Optionen. | ||
* @param mstId ID der im Frontend ausgewählten Messstelle | ||
* @return Befülltes Objekt vom Typ {@link DatentabellePdfZaehldaten}. | ||
*/ | ||
public DatentabellePdfZaehldaten getDatentabellePdf(final MessstelleOptionsDTO options, final String mstId) { | ||
final LadeMesswerteListenausgabeDTO zaehldatenTable = messwerteService.ladeMesswerte(mstId, options).getZaehldatenTable(); | ||
final List<LadeMesswerteDTO> zaehlwerteDtos = zaehldatenTable.getZaehldaten(); | ||
|
||
final FahrzeugOptionsDTO optionsFahrzeuge = options.getFahrzeuge(); | ||
final DatentabellePdfZaehldaten datentabellePdfZaehldaten = this.datentabellePdfMessstelleMapper | ||
.fahrzeugOptionsToDatentabellePdfZaehldaten(optionsFahrzeuge); | ||
datentabellePdfZaehldaten.setActiveTabsFahrzeugtypen(this.calcActiveTabsFahrzeugtypen(optionsFahrzeuge)); | ||
datentabellePdfZaehldaten.setActiveTabsFahrzeugklassen(this.calcActiveTabsFahrzeugklassen(optionsFahrzeuge)); | ||
datentabellePdfZaehldaten.setActiveTabsAnteile(this.calcActiveTabsAnteile(optionsFahrzeuge)); | ||
|
||
datentabellePdfZaehldaten.setZaehldatenList(this.datentabellePdfMessstelleMapper.ladeMesswerteDTOList2beanList(zaehlwerteDtos)); | ||
return datentabellePdfZaehldaten; | ||
} | ||
|
||
private int calcActiveTabsFahrzeugtypen(final FahrzeugOptionsDTO optionsDTO) { | ||
int activeTabsFahrzeugtypen = 0; | ||
if (optionsDTO.isPersonenkraftwagen()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isLastkraftwagen()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isLastzuege()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isLieferwagen()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isBusse()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isKraftraeder()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isRadverkehr()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
if (optionsDTO.isFussverkehr()) { | ||
activeTabsFahrzeugtypen++; | ||
} | ||
return activeTabsFahrzeugtypen; | ||
} | ||
|
||
private int calcActiveTabsFahrzeugklassen(final FahrzeugOptionsDTO optionsDTO) { | ||
int activeTabsFahrzeugklasse = 0; | ||
if (optionsDTO.isKraftfahrzeugverkehr()) { | ||
activeTabsFahrzeugklasse++; | ||
} | ||
if (optionsDTO.isSchwerverkehr()) { | ||
activeTabsFahrzeugklasse++; | ||
} | ||
if (optionsDTO.isGueterverkehr()) { | ||
activeTabsFahrzeugklasse++; | ||
} | ||
return activeTabsFahrzeugklasse; | ||
} | ||
|
||
private int calcActiveTabsAnteile(final FahrzeugOptionsDTO optionsDTO) { | ||
int activeTabsAnteile = 0; | ||
if (optionsDTO.isSchwerverkehrsanteilProzent()) { | ||
activeTabsAnteile++; | ||
} | ||
if (optionsDTO.isGueterverkehrsanteilProzent()) { | ||
activeTabsAnteile++; | ||
} | ||
return activeTabsAnteile; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.