Skip to content
Snippets Groups Projects
Commit fea84d78 authored by OZG-Cloud Team's avatar OZG-Cloud Team
Browse files

OZG-5651 [wip] read Antragsteller when it's a firm

parent 01c480a1
No related branches found
No related tags found
No related merge requests found
...@@ -33,6 +33,7 @@ import lombok.Getter; ...@@ -33,6 +33,7 @@ import lombok.Getter;
public class Antragsteller { public class Antragsteller {
private String anrede; private String anrede;
private String firmName;
private String vorname; private String vorname;
private String nachname; private String nachname;
private String geburtsname; private String geburtsname;
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
</modules> </modules>
<properties> <properties>
<vorgang-manager.version>2.6.0</vorgang-manager.version> <vorgang-manager.version>2.7.0-SNAPSHOT</vorgang-manager.version>
<jsoup.version>1.14.3</jsoup.version> <jsoup.version>1.14.3</jsoup.version>
<xmlschema.version>2.3.0</xmlschema.version> <xmlschema.version>2.3.0</xmlschema.version>
......
...@@ -27,10 +27,12 @@ import static java.util.Objects.*; ...@@ -27,10 +27,12 @@ import static java.util.Objects.*;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -57,6 +59,15 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper { ...@@ -57,6 +59,15 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper {
static final String PLZ = "sh_plz"; static final String PLZ = "sh_plz";
static final String ORT = "ort"; static final String ORT = "ort";
static final String FIELD_FIRMA_NAME = "firm_name";
static final String FIELD_FIRMA_STRASSE = "firma_strasse";
static final String FIELD_FIRMA_HAUSNUMMER = "firma_hausnummer";
static final String FIELD_FIRMA_PLZ = "firma_plz";
static final String FIELD_FIRMA_STADT = "firma_stadt";
static final String FIELD_ANSPRECHPARTNER_ANREDE = "firma_ansprechpartner_anrede";
static final String FIELD_ANSPRECHPARTNER_VORNAME = "firma_ansprechpartner_vorname";
static final String FIELD_ANSPRECHPARTNER_NACHNAME = "firma_ansprechpartner_nachname";
@Autowired @Autowired
private AfmAntragstellerHeaderMapper antragstellerHeaderMapper; private AfmAntragstellerHeaderMapper antragstellerHeaderMapper;
...@@ -81,15 +92,21 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper { ...@@ -81,15 +92,21 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper {
return (String) formDataMap.get(POSTFACH_ID); return (String) formDataMap.get(POSTFACH_ID);
} }
@SuppressWarnings("unchecked")
private Optional<Map<String, Object>> getAntragstellerMap(Map<String, Object> formDataMap) { private Optional<Map<String, Object>> getAntragstellerMap(Map<String, Object> formDataMap) {
return Optional.ofNullable(formDataMap.get(ANTRAGSTELLER)) return Optional.ofNullable(formDataMap.get(ANTRAGSTELLER))
.or(() -> Optional.ofNullable(formDataMap.get(ANTRAGSTELLER_UPPERCASE))) .or(() -> Optional.ofNullable(formDataMap.get(ANTRAGSTELLER_UPPERCASE)))
.map(Map.class::cast).map(LinkedHashMap::new); .map(Map.class::cast).map(LinkedHashMap<String, Object>::new);
} }
private Antragsteller.AntragstellerBuilder addAntragstellerData(Antragsteller.AntragstellerBuilder builder, private Antragsteller.AntragstellerBuilder addAntragstellerData(Antragsteller.AntragstellerBuilder builder,
Map<String, Object> antragstellerMap) { Map<String, Object> antragstellerMap) {
return isNull(antragstellerMap.get(FIELD_FIRMA_NAME))
? addPrivateAntragstellerData(builder, antragstellerMap)
: addFirmAntragstellerData(builder, antragstellerMap);
}
private Antragsteller.AntragstellerBuilder addPrivateAntragstellerData(Antragsteller.AntragstellerBuilder builder,
Map<String, Object> antragstellerMap) {
return builder // return builder //
.anrede((String) antragstellerMap.get(ANREDE)) // .anrede((String) antragstellerMap.get(ANREDE)) //
.vorname((String) antragstellerMap.get(VORNAME)) // .vorname((String) antragstellerMap.get(VORNAME)) //
...@@ -103,17 +120,37 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper { ...@@ -103,17 +120,37 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper {
.hausnummer((String) antragstellerMap.get(HAUSNUMMER)) // .hausnummer((String) antragstellerMap.get(HAUSNUMMER)) //
.plz((String) antragstellerMap.get(PLZ)) // .plz((String) antragstellerMap.get(PLZ)) //
.ort((String) antragstellerMap.get(ORT)) // .ort((String) antragstellerMap.get(ORT)) //
.data(getNotMappedData(antragstellerMap)); .data(getNotMappedData(antragstellerMap, getPrivateFields()));
}
Antragsteller.AntragstellerBuilder addFirmAntragstellerData(Antragsteller.AntragstellerBuilder builder,
Map<String, Object> antragstellerMap) {
return builder
.firmName(MapUtils.getString(antragstellerMap, FIELD_FIRMA_NAME))
.strasse(MapUtils.getString(antragstellerMap, FIELD_FIRMA_STRASSE))
.hausnummer(MapUtils.getString(antragstellerMap, FIELD_FIRMA_HAUSNUMMER))
.plz(MapUtils.getString(antragstellerMap, FIELD_FIRMA_PLZ))
.ort(MapUtils.getString(antragstellerMap, FIELD_FIRMA_STADT))
.anrede(MapUtils.getString(antragstellerMap, FIELD_ANSPRECHPARTNER_ANREDE))
.vorname(MapUtils.getString(antragstellerMap, FIELD_ANSPRECHPARTNER_VORNAME))
.nachname(MapUtils.getString(antragstellerMap, FIELD_ANSPRECHPARTNER_NACHNAME))
.telefon(MapUtils.getString(antragstellerMap, TELEFON))
.email(MapUtils.getString(antragstellerMap, EMAIL))
.data(getNotMappedData(antragstellerMap, getFirmaFields()));
}
private Map<String, Object> getNotMappedData(Map<String, Object> antragstellerMap, Set<String> mappedFields) {
return antragstellerMap.entrySet().stream().filter(entry -> !mappedFields.contains(entry.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (key1, key2) -> key1, LinkedHashMap::new));
} }
private Map<String, Object> getNotMappedData(Map<String, Object> antragstellerMap) { private Set<String> getPrivateFields() {
var map = new LinkedHashMap<>(antragstellerMap); return Set.of(ANREDE, VORNAME, NACHNAME, GEBURTSNAME, GEBURTSDATUM, GEBURTSORT, EMAIL, TELEFON, STRASSE, HAUSNUMMER, PLZ, ORT);
getFields().forEach(map::remove);
return map;
} }
private List<String> getFields() { private Set<String> getFirmaFields() {
return List.of(ANREDE, VORNAME, NACHNAME, GEBURTSNAME, GEBURTSDATUM, GEBURTSORT, EMAIL, TELEFON, STRASSE, HAUSNUMMER, PLZ, ORT); return Set.of(FIELD_FIRMA_NAME, FIELD_FIRMA_STRASSE, FIELD_FIRMA_HAUSNUMMER, FIELD_FIRMA_PLZ, FIELD_FIRMA_STADT,
FIELD_ANSPRECHPARTNER_ANREDE, FIELD_ANSPRECHPARTNER_VORNAME, FIELD_ANSPRECHPARTNER_NACHNAME, TELEFON, EMAIL);
} }
private Map<String, Object> removeMappedData(Map<String, Object> formDataMap) { private Map<String, Object> removeMappedData(Map<String, Object> formDataMap) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment