Skip to content

Commit

Permalink
Merge pull request #3521 from navikt/bugfie-opplysningstyper-mangler-…
Browse files Browse the repository at this point in the history
…i-bestillingen

Refactor PdlPerson class to handle birth details
  • Loading branch information
krharum authored Jun 19, 2024
2 parents b64cf0f + eae1b20 commit 5f8ae38
Show file tree
Hide file tree
Showing 32 changed files with 215 additions and 147 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ public void mapAtoB(RsBregdata bregdata, RolleoversiktTo rolleoversiktTo, Mappin
rolleoversiktTo.setAdresse(mapperFacade.map(personBolk.getPerson(), AdresseTo.class));
rolleoversiktTo.setEnheter(mapperFacade.mapAsList(bregdata.getEnheter(), RolleTo.class));
rolleoversiktTo.setFnr(personBolk.getIdent());
rolleoversiktTo.setFodselsdato(personBolk.getPerson().getFoedsel().stream().findFirst()
.orElse(new PdlPerson.Foedsel())
.getFoedselsdato());
rolleoversiktTo.setFodselsdato(personBolk.getPerson().getFoedselsdato().stream()
.map(PdlPerson.Foedselsdato::getFoedselsdato)
.findFirst().orElse(null));
rolleoversiktTo.setHovedstatus(0);
rolleoversiktTo.setNavn(mapperFacade.map(personBolk.getPerson().getNavn().stream().findFirst()
.orElse(new PdlPerson.Navn()), NavnTo.class));
Expand All @@ -66,7 +66,7 @@ public void mapAtoB(RsBregdata.RolleTo rsRolleTo, RolleTo rolleTo, MappingContex
public void mapAtoB(PdlPerson.Person person, AdresseTo adresseTo, MappingContext context) {

if (!person.getBostedsadresse().isEmpty()) {
var adresse = person.getBostedsadresse().get(0);
var adresse = person.getBostedsadresse().getFirst();
if (nonNull(adresse.getVegadresse())) {
adresseTo.setAdresse1(format("%s %s", adresse.getVegadresse().getAdressenavn(),
adresse.getVegadresse().getHusnummer()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ public void mapAtoB(PdlPersonBolk.PersonBolk person, PensjonPersonRequest pensjo

pensjonPersonRequest.setFnr(person.getIdent());

pensjonPersonRequest.setFodselsDato(getFoedselsdato(person.getPerson().getFoedsel().stream()
.map(PdlPerson.Foedsel::getFoedselsdato)
pensjonPersonRequest.setFodselsDato(getFoedselsdato(person.getPerson().getFoedselsdato().stream()
.map(PdlPerson.Foedselsdato::getFoedselsdato)
.filter(Objects::nonNull)
.findFirst().orElse(null), pensjonPersonRequest.getFnr()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@ public void mapAtoB(PdlPersonBolk.Data persondata, Pasient pasient, MappingConte
.findFirst().orElse(new PdlPerson.Navn()), pasient);
pasient.setAdresse(mapperFacade.map(person.getPerson().getBostedsadresse().stream()
.findFirst().orElse(new BostedadresseDTO()), Adresse.class, context));
pasient.setFoedselsdato(person.getPerson().getFoedsel().getFirst().getFoedselsdato());
pasient.setFoedselsdato(person.getPerson().getFoedselsdato().stream()
.map(PdlPerson.Foedselsdato::getFoedselsdato)
.findFirst().orElse(null));

pasient.setTelefon(person.getPerson().getTelefonnummer().stream()
.filter(telefonnummer -> telefonnummer.getPrioritet() == 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public UdiPersonWrapper merge(RsUdiPerson nyUdiPerson, UdiPersonResponse eksiste
udiPerson.setIdent(personBolk.getIdent());
udiPerson.setNavn(mapperFacade.map(personBolk.getPerson().getNavn().stream()
.findFirst().orElse(new PdlPerson.Navn()), UdiPersonNavn.class));
udiPerson.setFoedselsDato(personBolk.getPerson().getFoedsel().stream().map(PdlPerson.Foedsel::getFoedselsdato)
udiPerson.setFoedselsDato(personBolk.getPerson().getFoedselsdato().stream()
.map(PdlPerson.Foedselsdato::getFoedselsdato)
.findFirst().orElse(null));

udiPerson.setAliaser(personBolk.getPerson().getFolkeregisteridentifikator().stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import no.nav.testnav.libs.data.pdlforvalter.v1.DeltBostedDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.DoedfoedtBarnDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FalskIdentitetDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedestedDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.ForeldreansvarDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FullmaktDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.InnflyttingDTO;
Expand Down Expand Up @@ -103,7 +104,8 @@ public static class Identer {
public static class Person {

private List<PdlPerson.Navn> navn;
private List<PdlPerson.Foedsel> foedsel;
private List<PdlPerson.Foedselsdato> foedselsdato;
private List<FoedestedDTO> foedested;
private List<PdlPerson.ForelderBarnRelasjon> forelderBarnRelasjon;
private List<PdlPerson.Sivilstand> sivilstand;
private List<PdlPerson.Doedsfall> doedsfall;
Expand Down Expand Up @@ -137,13 +139,6 @@ public List<PdlPerson.Navn> getNavn() {
return navn;
}

public List<PdlPerson.Foedsel> getFoedsel() {
if (isNull(foedsel)) {
foedsel = new ArrayList<>();
}
return foedsel;
}

public List<PdlPerson.ForelderBarnRelasjon> getForelderBarnRelasjon() {
if (isNull(forelderBarnRelasjon)) {
forelderBarnRelasjon = new ArrayList<>();
Expand Down Expand Up @@ -311,6 +306,20 @@ public List<InnflyttingDTO> getInnflyttingTilNorge() {
}
return innflyttingTilNorge;
}

public List<Foedselsdato> getFoedselsdato() {
if (isNull(foedselsdato)) {
foedselsdato = new ArrayList<>();
}
return foedselsdato;
}

public List<FoedestedDTO> getFoedested() {
if (isNull(foedested)) {
return foedested;
}
return foedested;
}
}

@lombok.Data
Expand Down Expand Up @@ -363,6 +372,17 @@ public static class Foedsel extends DbVersjonDTO {
private LocalDate foedselsdato;
}

@lombok.Data
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public static class Foedselsdato extends DbVersjonDTO {

private Integer foedselsaar;
private LocalDate foedselsdato;
}

@lombok.Data
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
Expand Down Expand Up @@ -514,7 +534,7 @@ public enum Personstatus {
MIDLERTIDIG("midlertidig"),
INAKTIV("inaktiv");

private String beskrivelse;
private final String beskrivelse;

Personstatus(String camelCaseValue) {
this.beskrivelse = camelCaseValue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import no.nav.dolly.domain.resultset.pdldata.PdlPersondata;
import no.nav.dolly.mapper.MappingStrategy;
import no.nav.testnav.libs.data.pdlforvalter.v1.BestillingRequestDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedestedDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedselsdatoDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.Identtype;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -34,6 +36,10 @@ public void mapAtoB(PdlPersondata kilde, BestillingRequestDTO destinasjon, Mappi
if (StringUtils.isBlank(destinasjon.getOpprettFraIdent()) && isNull(destinasjon.getIdenttype())) {
destinasjon.setIdenttype(Identtype.FNR);
}
if (nonNull(destinasjon.getPerson())) {
destinasjon.getPerson().setFoedselsdato(mapperFacade.mapAsList(kilde.getPerson().getFoedselsdato(), FoedselsdatoDTO.class));
destinasjon.getPerson().setFoedested(mapperFacade.mapAsList(kilde.getPerson().getFoedested(), FoedestedDTO.class));
}
}
})
.byDefault()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,12 @@ private static String getBarn(List<PdlPerson.ForelderBarnRelasjon> barn) {
private static String getPartnere(List<PdlPerson.Sivilstand> partnere) {

return partnere.stream()
.filter(partner -> nonNull(partner.getRelatertVedSivilstand()))
.map(PdlPerson.Sivilstand::getRelatertVedSivilstand)
.filter(Objects::nonNull)
.collect(Collectors.joining(",\n"));
}

private static String getFoedselsdato(PdlPerson.Foedsel foedsel) {
private static String getFoedselsdato(PdlPerson.Foedselsdato foedsel) {

return nonNull(foedsel) && nonNull(foedsel.getFoedselsdato()) ? foedsel.getFoedselsdato().format(NORSK_DATO) : "";
}
Expand Down Expand Up @@ -228,7 +228,7 @@ private static String formatVegadresse(VegadresseDTO vegadresse, String coAdress
isNotBlank(vegadresse.getBruksenhetsnummer()) ?
String.format("Bruksenhet: %s",
vegadresse.getBruksenhetsnummer()) : null,
String.format(DUAL_FMT, vegadresse.getPostnummer(),
String.format("%s %s %s", vegadresse.getPostnummer(),
postnummer.get(vegadresse.getPostnummer()),
isNotBlank(coAdresseNavn) ? String.format(CO_ADRESSE, coAdresseNavn) : null))
.filter(StringUtils::isNotBlank)
Expand All @@ -243,10 +243,9 @@ private static String getKontaktadresse(PdlPerson.Kontaktadresse kontaktadresse,
return formatVegadresse(kontaktadresse.getVegadresse(), kontaktadresse.getCoAdressenavn(), postnummer);

} else if (nonNull(kontaktadresse.getPostboksadresse())) {
return Stream.of(kontaktadresse.getPostboksadresse().getPostbokseier(),
kontaktadresse.getPostboksadresse().getPostboks(),
kontaktadresse.getPostboksadresse().getPostnummer())
.collect(Collectors.joining(COMMA_DELIM));
return String.join(COMMA_DELIM, kontaktadresse.getPostboksadresse().getPostbokseier(),
kontaktadresse.getPostboksadresse().getPostboks(),
kontaktadresse.getPostboksadresse().getPostnummer());

} else if (nonNull(kontaktadresse.getUtenlandskAdresse())) {

Expand Down Expand Up @@ -420,32 +419,34 @@ private Mono<List<Object[]>> getPersoner(List<Testident> testidenter) {
.collectList()));
}

private Object[] prepDataRow(PdlPersonBolk.PersonBolk person, Tuple3 kodeverk, List<Testident> identer) {
private Object[] prepDataRow(PdlPersonBolk.PersonBolk person,
Tuple3<Map<String, String>, Map<String, String>, Map<String, String>> kodeverk,
List<Testident> identer) {
return new Object[]{
person.getIdent(),
IdentTypeUtil.getIdentType(person.getIdent()).name(),
getFornavn(person.getPerson().getNavn().stream().findFirst().orElse(null)),
getEtternavn(person.getPerson().getNavn().stream().findFirst().orElse(null)),
getAlder(person.getIdent(), person.getPerson().getDoedsfall().isEmpty() ? null :
person.getPerson().getDoedsfall().stream().findFirst().get().getDoedsdato()),
getAlder(person.getIdent(), person.getPerson().getDoedsfall().stream()
.map(PdlPerson.Doedsfall::getDoedsdato).findFirst().orElse(null)),
getKjoenn(person.getPerson().getKjoenn().stream().findFirst().orElse(null)),
getFoedselsdato(person.getPerson().getFoedsel().stream().findFirst().orElse(null)),
getFoedselsdato(person.getPerson().getFoedselsdato().stream().findFirst().orElse(null)),
getDoedsdato(person.getPerson().getDoedsfall().stream().findFirst().orElse(null)),
getPersonstatus(person.getPerson().getFolkeregisterpersonstatus().stream().findFirst().orElse(null)),
getStatsborgerskap(person.getPerson().getStatsborgerskap().stream().findFirst().orElse(null),
(Map<String, String>) kodeverk.getT1()),
kodeverk.getT1()),
getAdressebeskyttelse(person.getPerson().getAdressebeskyttelse().stream().findFirst().orElse(null)),
getBoadresse(person.getPerson().getBostedsadresse().stream().findFirst().orElse(new BostedadresseDTO()),
(Map<String, String>) kodeverk.getT3(),
(Map<String, String>) kodeverk.getT2(),
(Map<String, String>) kodeverk.getT1()),
kodeverk.getT3(),
kodeverk.getT2(),
kodeverk.getT1()),
getKontaktadresse(person.getPerson().getKontaktadresse().stream().findFirst().orElse(new PdlPerson.Kontaktadresse()),
(Map<String, String>) kodeverk.getT3(),
(Map<String, String>) kodeverk.getT1()),
kodeverk.getT3(),
kodeverk.getT1()),
getOppholdsadresse(person.getPerson().getOppholdsadresse().stream().findFirst().orElse(new OppholdsadresseDTO()),
(Map<String, String>) kodeverk.getT3(),
(Map<String, String>) kodeverk.getT2(),
(Map<String, String>) kodeverk.getT1()),
kodeverk.getT3(),
kodeverk.getT2(),
kodeverk.getT1()),
getSivilstand(person.getPerson().getSivilstand().stream().findFirst().orElse(null)),
getPartnere(person.getPerson().getSivilstand()),
getBarn(person.getPerson().getForelderBarnRelasjon()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,11 @@ public void mapAtoB(PersonRequestDTO kilde, HentIdenterRequest destinasjon, Mapp
public void mapAtoB(BestillingRequestDTO kilde, HentIdenterRequest destinasjon, MappingContext context) {

destinasjon.setIdenttype(mapIdenttype(kilde.getIdenttype()));
var foedsel = kilde.getPerson().getFoedsel().stream()
.findFirst().orElse(new FoedselDTO());
var foedsel = kilde.getPerson().getFoedselsdato().stream()
.findFirst()
.orElse(kilde.getPerson().getFoedsel().stream()
.findFirst()
.orElse(new FoedselDTO()));

if (nonNull(foedsel.getFoedselsaar())) {
destinasjon.setFoedtEtter(LocalDate.of(foedsel.getFoedselsaar() - 1, 12, 31));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public void mapAtoB(VegadresseDTO kilde, KontaktinformasjonForDoedsboAdresse des
public void mapAtoB(Map kilde, KontaktinformasjonForDoedsboAdresse destinasjon, MappingContext context) {

var adresselinjer = (List<String>) kilde.get("adresselinjer");
destinasjon.setAdresselinje1(!adresselinjer.isEmpty() ? adresselinjer.get(0) : "Ingen adresselinje funnet");
destinasjon.setAdresselinje1(!adresselinjer.isEmpty() ? adresselinjer.getFirst() : "Ingen adresselinje funnet");
destinasjon.setAdresselinje2(adresselinjer.size() > 1 ? adresselinjer.get(1) : null);

destinasjon.setPostnummer((String) kilde.get("postnr"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
import no.nav.pdl.forvalter.dto.HentIdenterRequest;
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.BostedadresseDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedselDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedestedDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedselsdatoDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FolkeregisterPersonstatusDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FolkeregistermetadataDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.KjoennDTO;
Expand Down Expand Up @@ -43,7 +44,8 @@ public class CreatePersonService {
private final MergeService mergeService;
private final PersonRepository personRepository;
private final KjoennService kjoennService;
private final FoedselService foedselService;
private final FoedselsdatoService foedselsdatoService;
private final FoedestedService foedestedService;
private final StatsborgerskapService statsborgerskapService;
private final BostedAdresseService bostedAdresseService;
private final NavnService navnService;
Expand All @@ -56,7 +58,10 @@ private static PersonDTO buildPerson(PersonRequestDTO request) {
.kjoenn(List.of(KjoennDTO.builder().kjoenn(request.getKjoenn())
.folkeregistermetadata(new FolkeregistermetadataDTO())
.build()))
.foedsel(List.of(FoedselDTO.builder()
.foedselsdato(List.of(FoedselsdatoDTO.builder()
.folkeregistermetadata(new FolkeregistermetadataDTO())
.build()))
.foedested(List.of(FoedestedDTO.builder()
.folkeregistermetadata(new FolkeregistermetadataDTO())
.build()))
.navn(List.of(nonNull(request.getNyttNavn()) ?
Expand Down Expand Up @@ -99,9 +104,10 @@ public PersonDTO execute(PersonRequestDTO request) {
.getIdent());

Stream.of(
Flux.just(foedselService.convert(mergedPerson)),
Flux.just(foedselsdatoService.convert(mergedPerson)),
Flux.just(navnService.convert(mergedPerson)),
Flux.just(bostedAdresseService.convert(mergedPerson, null)),
Flux.just(foedestedService.convert(mergedPerson)),
Flux.just(kjoennService.convert(mergedPerson)),
Flux.just(statsborgerskapService.convert(mergedPerson)),
Flux.just(adressebeskyttelseService.convert(mergedPerson)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
import ma.glasnost.orika.MapperFacade;
import no.nav.pdl.forvalter.consumer.AdresseServiceConsumer;
import no.nav.pdl.forvalter.database.repository.PersonRepository;
import no.nav.pdl.forvalter.utils.DatoFraIdentUtility;
import no.nav.pdl.forvalter.utils.FoedselsdatoUtility;
import no.nav.pdl.forvalter.utils.IdenttypeUtility;
import no.nav.testnav.libs.data.pdlforvalter.v1.BostedadresseDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.DeltBostedDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.FoedselDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.UkjentBostedDTO;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -73,10 +72,8 @@ public void handle(DeltBostedDTO deltBostedBestilling, PersonDTO hovedperson, St
personRepository.findByIdent(barnIdent)
.ifPresent(dbPerson -> {
if (isNull(deltBosted.getStartdatoForKontrakt())) {
deltBosted.setStartdatoForKontrakt(dbPerson.getPerson().getFoedsel().stream()
.map(FoedselDTO::getFoedselsdato)
.findFirst()
.orElse(DatoFraIdentUtility.getDato(barnIdent).atStartOfDay()));
deltBosted.setStartdatoForKontrakt(
FoedselsdatoUtility.getFoedselsdato(dbPerson.getPerson()));
}
setDeltBosted(dbPerson.getPerson(), deltBosted);
});
Expand Down
Loading

0 comments on commit 5f8ae38

Please sign in to comment.