Skip to content

Commit

Permalink
Innføre Landkoder i adresse (#6780)
Browse files Browse the repository at this point in the history
  • Loading branch information
jolarsen authored Oct 15, 2024
1 parent b2cb697 commit 4be28e7
Show file tree
Hide file tree
Showing 24 changed files with 122 additions and 497 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import java.util.Objects;
import java.util.Optional;

import no.nav.foreldrepenger.behandlingslager.geografisk.Landkoder;

public class Adresseinfo {

private AdresseType adresseType;
Expand All @@ -13,7 +15,7 @@ public class Adresseinfo {
private String adresselinje4;
private String postnummer;
private String poststed;
private String land;
private Landkoder land;

private Adresseinfo() {
}
Expand Down Expand Up @@ -46,7 +48,7 @@ public String getPoststed() {
return poststed;
}

public String getLand() {
public Landkoder getLand() {
return land;
}

Expand Down Expand Up @@ -146,7 +148,7 @@ public Builder medPoststed(String poststed) {
return this;
}

public Builder medLand(String land) {
public Builder medLand(Landkoder land) {
this.kladd.land = land;
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,9 @@ public class PersonAdresseEntitet extends BaseEntitet implements HarAktørId, In
private String poststed;

@ChangeTracked
@Column(name = "land")
private String land;
@Convert(converter = Landkoder.KodeverdiConverter.class)
@Column(name="land")
private Landkoder land;

@ManyToOne(optional = false)
@JoinColumn(name = "po_informasjon_id", nullable = false, updatable = false)
Expand Down Expand Up @@ -174,11 +175,11 @@ void setPoststed(String poststed) {
this.poststed = poststed;
}

public String getLand() {
public Landkoder getLand() {
return land;
}

void setLand(String land) {
void setLand(Landkoder land) {
this.land = land;
}

Expand Down Expand Up @@ -208,7 +209,7 @@ void setPeriode(DatoIntervallEntitet periode) {
}

public boolean erUtlandskAdresse() {
return !Landkoder.erNorge(land) || adresseType.erUtlandsAdresseType();
return !Landkoder.NOR.equals(land) || adresseType.erUtlandsAdresseType();
}

public static boolean likeAdresser(PersonAdresseEntitet a1, PersonAdresseEntitet a2) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ public AdresseBuilder medPoststed(String poststed) {
return this;
}

public AdresseBuilder medLand(String land) {
public AdresseBuilder medLand(Landkoder land) {
kladd.setLand(land);
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
import no.nav.foreldrepenger.behandlingslager.aktør.NavBrukerRepository;
import no.nav.foreldrepenger.behandlingslager.aktør.OrganisasjonsEnhet;
import no.nav.foreldrepenger.behandlingslager.aktør.PersonstatusType;
import no.nav.foreldrepenger.behandlingslager.aktør.historikk.Gyldighetsperiode;
import no.nav.foreldrepenger.behandlingslager.aktør.historikk.PersonstatusPeriode;
import no.nav.foreldrepenger.behandlingslager.aktør.historikk.StatsborgerskapPeriode;
import no.nav.foreldrepenger.behandlingslager.behandling.Behandling;
import no.nav.foreldrepenger.behandlingslager.behandling.Behandling.Builder;
import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingResultatType;
Expand Down Expand Up @@ -103,6 +106,7 @@
import no.nav.foreldrepenger.behandlingslager.uttak.fp.FpUttakRepository;
import no.nav.foreldrepenger.behandlingslager.uttak.fp.Stønadskontoberegning;
import no.nav.foreldrepenger.behandlingslager.uttak.fp.UttakResultatPerioderEntitet;
import no.nav.foreldrepenger.domene.tid.DatoIntervallEntitet;
import no.nav.foreldrepenger.domene.typer.AktørId;
import no.nav.foreldrepenger.domene.typer.Saksnummer;

Expand Down Expand Up @@ -716,14 +720,11 @@ private void lagrePersonopplysning(BehandlingRepositoryProvider repositoryProvid
.brukerKjønn(getKjønnFraFagsak())
.fødselsdato(LocalDate.now().minusYears(25))
.sivilstand(SivilstandType.UOPPGITT))
.leggTilPersonstatus(Personstatus.builder()
.personstatus(PersonstatusType.BOSA)
.periode(LocalDate.now().minusYears(1), LocalDate.now().plusYears(1))
.aktørId(behandling.getAktørId()))
.leggTilStatsborgerskap(Statsborgerskap.builder()
.aktørId(behandling.getAktørId())
.statsborgerskap(Landkoder.NOR)
.periode(LocalDate.now().minusYears(20), LocalDate.now().plusYears(10)))
.leggTilPersonstatus(new Personstatus(behandling.getAktørId(),
new PersonstatusPeriode(Gyldighetsperiode.innenfor(LocalDate.now().minusYears(1), LocalDate.now().plusYears(1)),
PersonstatusType.BOSA)))
.leggTilStatsborgerskap(new Statsborgerskap(behandling.getAktørId(),
new StatsborgerskapPeriode(Gyldighetsperiode.innenfor(LocalDate.now().minusYears(20), LocalDate.now().plusYears(10)), Landkoder.NOR)))
.build();
lagrePersoninfo(behandling, registerInformasjon, personopplysningRepository);
}
Expand Down Expand Up @@ -758,29 +759,31 @@ private void lagrePersoninfo(Behandling behandling, PersonInformasjonBuilder per
});

personInformasjon.getAdresser().forEach(e -> {
var builder = personInformasjonBuilder.getAdresseBuilder(e.getAktørId(), e.getPeriode(),
e.getAdresseType());
builder.medAdresselinje1(e.getAdresselinje1())
.medAdresselinje2(e.getAdresselinje2())
.medAdresselinje3(e.getAdresselinje3())
.medAdresselinje4(e.getAdresselinje4())
.medLand(e.getLand())
.medPostnummer(e.getPostnummer())
.medPoststed(e.getPoststed());
var builder = personInformasjonBuilder.getAdresseBuilder(e.aktørId(),
DatoIntervallEntitet.fraOgMedTilOgMed(e.adressePeriode().gyldighetsperiode().fom(), e.adressePeriode().gyldighetsperiode().tom()),
e.adressePeriode().adresse().getAdresseType());
builder.medAdresselinje1(e.adressePeriode().adresse().getAdresselinje1())
.medAdresselinje2(e.adressePeriode().adresse().getAdresselinje2())
.medAdresselinje3(e.adressePeriode().adresse().getAdresselinje3())
.medAdresselinje4(e.adressePeriode().adresse().getAdresselinje4())
.medLand(e.adressePeriode().adresse().getLand())
.medPostnummer(e.adressePeriode().adresse().getPostnummer())
.medPoststed(e.adressePeriode().adresse().getPoststed());

personInformasjonBuilder.leggTil(builder);
});

personInformasjon.getPersonstatuser().forEach(e -> {
var builder = personInformasjonBuilder.getPersonstatusBuilder(e.getAktørId(), e.getPeriode());
builder.medPersonstatus(e.getPersonstatus());
var builder = personInformasjonBuilder.getPersonstatusBuilder(e.aktørId(),
DatoIntervallEntitet.fraOgMedTilOgMed(e.personstatusPeriode().gyldighetsperiode().fom(), e.personstatusPeriode().gyldighetsperiode().tom()));
builder.medPersonstatus(e.personstatusPeriode().personstatus());
personInformasjonBuilder.leggTil(builder);
});

personInformasjon.getStatsborgerskap().forEach(e -> {
var builder = personInformasjonBuilder.getStatsborgerskapBuilder(e.getAktørId(),
e.getPeriode(),
e.getStatsborgerskap());
var builder = personInformasjonBuilder.getStatsborgerskapBuilder(e.aktørId(),
DatoIntervallEntitet.fraOgMedTilOgMed(e.statsborgerskapPeriode().gyldighetsperiode().fom(), e.statsborgerskapPeriode().gyldighetsperiode().tom()),
e.statsborgerskapPeriode().statsborgerskap());
personInformasjonBuilder.leggTil(builder);
});

Expand All @@ -792,7 +795,9 @@ private void lagrePersoninfo(Behandling behandling, PersonInformasjonBuilder per
});

personInformasjon.getOpphold().forEach(e -> {
var builder = personInformasjonBuilder.getOppholdstillatelseBuilder(e.getAktørId(), e.getPeriode()).medOppholdstillatelse(e.getTillatelse());
var builder = personInformasjonBuilder.getOppholdstillatelseBuilder(e.aktørId(),
DatoIntervallEntitet.fraOgMedTilOgMed(e.oppholdstillatelsePeriode().gyldighetsperiode().fom(), e.oppholdstillatelsePeriode().gyldighetsperiode().tom()))
.medOppholdstillatelse(e.oppholdstillatelsePeriode().tillatelse());
personInformasjonBuilder.leggTil(builder);
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,114 +1,8 @@
package no.nav.foreldrepenger.behandlingslager.testutilities.behandling.personopplysning;

import java.time.LocalDate;
import java.util.Objects;

import no.nav.foreldrepenger.behandlingslager.aktør.OppholdstillatelseType;
import no.nav.foreldrepenger.domene.tid.DatoIntervallEntitet;
import no.nav.foreldrepenger.behandlingslager.aktør.historikk.OppholdstillatelsePeriode;
import no.nav.foreldrepenger.domene.typer.AktørId;

public class Oppholdstillatelse {

private AktørId aktørId;
private DatoIntervallEntitet periode;
private OppholdstillatelseType tillatelse = OppholdstillatelseType.UDEFINERT;

public Oppholdstillatelse() {
}

Oppholdstillatelse(Oppholdstillatelse personstatus) {
this.aktørId = personstatus.getAktørId();
this.periode = personstatus.getPeriode();
this.tillatelse = personstatus.getTillatelse();
}


public OppholdstillatelseType getTillatelse() {
return tillatelse;
}

public void setTillatelse(OppholdstillatelseType tillatelse) {
this.tillatelse = tillatelse;
}

public AktørId getAktørId() {
return aktørId;
}

void setAktørId(AktørId aktørId) {
this.aktørId = aktørId;
}


public DatoIntervallEntitet getPeriode() {
return periode;
}

void setPeriode(DatoIntervallEntitet gyldighetsperiode) {
this.periode = gyldighetsperiode;
}


@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
var entitet = (Oppholdstillatelse) o;
return Objects.equals(aktørId, entitet.aktørId) &&
Objects.equals(periode, entitet.periode) &&
Objects.equals(tillatelse, entitet.tillatelse);
}


@Override
public int hashCode() {
return Objects.hash(aktørId, periode, tillatelse);
}


@Override
public String toString() {
return "OppholdstillatelseEntitet{" +
"periode=" + periode +
", tillatelse=" + tillatelse +
'}';
}

public static Oppholdstillatelse.OppholdstillatelseBuilder builder() {
return new OppholdstillatelseBuilder(new Oppholdstillatelse());
}

public static final class OppholdstillatelseBuilder {

private final Oppholdstillatelse kladd;

private OppholdstillatelseBuilder(Oppholdstillatelse kladd) {
this.kladd = kladd;
}

public Oppholdstillatelse.OppholdstillatelseBuilder medAktørId(AktørId aktørId) {
kladd.setAktørId(aktørId);
return this;
}

public Oppholdstillatelse.OppholdstillatelseBuilder medPeriode(LocalDate fom, LocalDate tom) {
kladd.setPeriode(DatoIntervallEntitet.fraOgMedTilOgMed(fom, tom));
return this;
}

public Oppholdstillatelse.OppholdstillatelseBuilder medOppholdstillatelse(OppholdstillatelseType tillatelse) {
kladd.setTillatelse(tillatelse);
return this;
}

public Oppholdstillatelse build() {
return kladd;
}

}
public record Oppholdstillatelse(AktørId aktørId, OppholdstillatelsePeriode oppholdstillatelsePeriode) {

}
Loading

0 comments on commit 4be28e7

Please sign in to comment.