From 0cff048a0b1ca8c53aff4340b8fbd1e486eabe81 Mon Sep 17 00:00:00 2001 From: Petter Ekern <43809623+pekern@users.noreply.github.com> Date: Mon, 16 Dec 2024 08:58:54 +0100 Subject: [PATCH] =?UTF-8?q?Legger=20med=20hjemmel=20p=C3=A5=20status=20som?= =?UTF-8?q?=20er=20fastsatt=20(#580)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BeregningsgrunnlagAktivitetStatusDto.java | 43 +++++++++++++++++++ .../detaljert/BeregningsgrunnlagDto.java | 40 +++++++++++++++-- 2 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagAktivitetStatusDto.java diff --git a/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagAktivitetStatusDto.java b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagAktivitetStatusDto.java new file mode 100644 index 00000000..09c4efeb --- /dev/null +++ b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagAktivitetStatusDto.java @@ -0,0 +1,43 @@ +package no.nav.folketrygdloven.kalkulus.response.v1.beregningsgrunnlag.detaljert; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import no.nav.folketrygdloven.kalkulus.kodeverk.AktivitetStatus; +import no.nav.folketrygdloven.kalkulus.kodeverk.Hjemmel; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) +@JsonAutoDetect(fieldVisibility = NONE, getterVisibility = NONE, setterVisibility = NONE, isGetterVisibility = NONE, creatorVisibility = NONE) +public class BeregningsgrunnlagAktivitetStatusDto { + + @JsonProperty(value = "aktivitetStatus") + @NotNull + @Valid + private AktivitetStatus aktivitetStatus; + + @JsonProperty(value = "hjemmel") + @NotNull + @Valid + private Hjemmel hjemmel; + + public BeregningsgrunnlagAktivitetStatusDto(AktivitetStatus aktivitetStatus, Hjemmel hjemmel) { + this.aktivitetStatus = aktivitetStatus; + this.hjemmel = hjemmel; + } + + public AktivitetStatus getAktivitetStatus() { + return aktivitetStatus; + } + + public Hjemmel getHjemmel() { + return hjemmel; + } +} diff --git a/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagDto.java b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagDto.java index 9ed6bba0..16d3d0f5 100644 --- a/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagDto.java +++ b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/beregningsgrunnlag/detaljert/BeregningsgrunnlagDto.java @@ -31,12 +31,19 @@ public class BeregningsgrunnlagDto { @Valid private LocalDate skjæringstidspunkt; - @JsonProperty(value = "aktivitetStatuser") + @Deprecated // Gå over til å bruke aktivitetStatuserMedHjemmel liste + @JsonProperty(value = "aktivitetStatuser") @NotNull @Size(min = 1, max = 20) @Valid private List aktivitetStatuser; + @JsonProperty(value = "aktivitetStatuserMedHjemmel") + @NotNull + @Size(min = 1, max = 20) + @Valid + private List aktivitetStatuserMedHjemmel; + @JsonProperty(value = "beregningsgrunnlagPerioder") @NotNull @Size(min = 1, max = 100) @@ -69,7 +76,8 @@ public BeregningsgrunnlagDto(@NotNull @Valid LocalDate skjæringstidspunkt, @Size(max = 10) @Valid List sammenligningsgrunnlagPrStatusListe, @Size(max = 50) @Valid List faktaOmBeregningTilfeller, boolean overstyrt, - @Valid Beløp grunnbeløp) { + @Valid Beløp grunnbeløp, + @NotNull @Size(min = 1, max = 20) @Valid List aktivitetStatuserMedHjemmel) { this.skjæringstidspunkt = skjæringstidspunkt; this.aktivitetStatuser = aktivitetStatuser; this.beregningsgrunnlagPerioder = beregningsgrunnlagPerioder; @@ -77,13 +85,39 @@ public BeregningsgrunnlagDto(@NotNull @Valid LocalDate skjæringstidspunkt, this.faktaOmBeregningTilfeller = faktaOmBeregningTilfeller; this.overstyrt = overstyrt; this.grunnbeløp = grunnbeløp; + this.aktivitetStatuserMedHjemmel = aktivitetStatuserMedHjemmel; } + // Kan fjernes når alle aktører sender med status med hjemmel + @Deprecated + public BeregningsgrunnlagDto(@NotNull @Valid LocalDate skjæringstidspunkt, + @NotNull @Size(min = 1, max = 20) @Valid List aktivitetStatuser, + @NotNull @Size(min = 1, max = 100) @Valid List beregningsgrunnlagPerioder, + @Size(max = 10) @Valid List sammenligningsgrunnlagPrStatusListe, + @Size(max = 50) @Valid List faktaOmBeregningTilfeller, + boolean overstyrt, + @Valid Beløp grunnbeløp) { + this.skjæringstidspunkt = skjæringstidspunkt; + this.aktivitetStatuser = aktivitetStatuser; + this.beregningsgrunnlagPerioder = beregningsgrunnlagPerioder; + this.sammenligningsgrunnlagPrStatusListe = sammenligningsgrunnlagPrStatusListe; + this.faktaOmBeregningTilfeller = faktaOmBeregningTilfeller; + this.overstyrt = overstyrt; + this.grunnbeløp = grunnbeløp; + } + public LocalDate getSkjæringstidspunkt() { return skjæringstidspunkt; } - public List getAktivitetStatuser() { + public List getAktivitetStatuserMedHjemmel() { + return Collections.unmodifiableList(aktivitetStatuserMedHjemmel); + } + + public List getAktivitetStatuser() { + if (aktivitetStatuserMedHjemmel != null && !aktivitetStatuserMedHjemmel.isEmpty()) { + return aktivitetStatuserMedHjemmel.stream().map(BeregningsgrunnlagAktivitetStatusDto::getAktivitetStatus).toList(); + } return Collections.unmodifiableList(aktivitetStatuser); }