Skip to content

Commit

Permalink
Utvidet default mapping $deploy-test-dolly-backend
Browse files Browse the repository at this point in the history
  • Loading branch information
krharum committed Sep 1, 2023
1 parent d8d632a commit 1a65932
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ public Flux<ClientFuture> gjenopprett(RsDollyUtvidetBestilling bestilling, Dolly
.map(response -> PEN_ALDERSPENSJON + decodeStatus(response, dollyPerson.getIdent())),

lagreUforetrygd(bestilling1.getPensjonforvalter(),
persondata,
dollyPerson.getIdent(),
bestilteMiljoer.get(),
isOpprettEndre,
Expand Down Expand Up @@ -320,7 +321,8 @@ private Flux<PensjonforvalterResponse> lagreAlderspensjon(PensjonData pensjonDat
return Flux.empty();
}

private Flux<PensjonforvalterResponse> lagreUforetrygd(PensjonData pensjonforvalter, String ident, Set<String> miljoer, boolean isOpprettEndre, Long bestillingId) {
private Flux<PensjonforvalterResponse> lagreUforetrygd(PensjonData pensjonforvalter, List<PdlPersonBolk.PersonBolk> persondata,
String ident, Set<String> miljoer, boolean isOpprettEndre, Long bestillingId) {

return Flux.just(pensjonforvalter)
.filter(pensjon -> nonNull(pensjon.getUforetrygd()))
Expand All @@ -333,6 +335,7 @@ private Flux<PensjonforvalterResponse> lagreUforetrygd(PensjonData pensjonforval
var context = new MappingContext.Factory().getContext();
context.setProperty("ident", ident);
context.setProperty("miljoer", nyeMiljoer);
context.setProperty("persondata", persondata);
return mapperFacade.map(uforetrygd, PensjonUforetrygdRequest.class, context);
})
.map(request -> pensjonforvalterConsumer.lagreUforetrygd(request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
@RequiredArgsConstructor
public class LagreUforetrygdCommand implements Callable<Flux<PensjonforvalterResponse>> {

private static final String PENSJON_AP_URL = "/api/v1/vedtak/ut";
private static final String PENSJON_UT_URL = "/api/v1/vedtak/ut";

private final WebClient webClient;

Expand All @@ -36,7 +36,7 @@ public Flux<PensjonforvalterResponse> call() {
return webClient
.post()
.uri(uriBuilder -> uriBuilder
.path(PENSJON_AP_URL)
.path(PENSJON_UT_URL)
.build())
.header(AUTHORIZATION, "Bearer " + token)
.header(HEADER_NAV_CALL_ID, generateCallId())
Expand All @@ -59,7 +59,7 @@ public Flux<PensjonforvalterResponse> call() {
.build())
.message(WebClientFilter.getMessage(error))
.timestamp(LocalDateTime.now())
.path(PENSJON_AP_URL)
.path(PENSJON_UT_URL)
.build())
.build())
.toList())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,22 @@
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.MappingContext;
import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonUforetrygdRequest;
import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonUforetrygdRequest.UforeType;
import no.nav.dolly.domain.PdlPerson;
import no.nav.dolly.domain.PdlPersonBolk;
import no.nav.dolly.domain.resultset.pensjon.PensjonData;
import no.nav.dolly.mapper.MappingStrategy;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;

import static java.util.Objects.isNull;
import static no.nav.dolly.util.NullcheckUtil.nullcheckSetDefaultValue;

@Component
public class PensjonUforetrygdMappingStrategy implements MappingStrategy {
Expand All @@ -21,12 +32,62 @@ public void mapAtoB(PensjonData.Uforetrygd uforetrygd, PensjonUforetrygdRequest

var ident = (String) context.getProperty("ident");
var miljoer = (List<String>) context.getProperty("miljoer");
var persondata = (List<PdlPersonBolk.PersonBolk>) context.getProperty("persondata");
var hovedperson = persondata.stream()
.filter(personBolk -> ident.equals(personBolk.getIdent()))
.map(PdlPersonBolk.PersonBolk::getPerson)
.findFirst();

pensjonUforetrygdRequest.setFnr(ident);
pensjonUforetrygdRequest.setMiljoer(miljoer);

var fraDato = Stream.of(uforetrygd.getUforetidspunkt(),
uforetrygd.getKravFremsattDato(),
uforetrygd.getOnsketVirkningsDato())
.filter(Objects::nonNull)
.min(LocalDate::compareTo)
.orElse(LocalDate.now());

pensjonUforetrygdRequest.setUforetidspunkt(
nullcheckSetDefaultValue(uforetrygd.getUforetidspunkt(), fraDato));
pensjonUforetrygdRequest.setKravFremsattDato(
nullcheckSetDefaultValue(uforetrygd.getKravFremsattDato(), fraDato));
pensjonUforetrygdRequest.setOnsketVirkningsDato(
nullcheckSetDefaultValue(uforetrygd.getOnsketVirkningsDato(), fraDato));

if (isNull(uforetrygd.getMinimumInntektForUforhetType())) {

hovedperson
.flatMap(person -> person.getSivilstand().stream()
.max(Comparator.comparing(PdlPerson.Sivilstand::getId)))
.ifPresent(sivilstatus -> {
if (sivilstatus.isGift()) {
pensjonUforetrygdRequest.setMinimumInntektForUforhetType(UforeType.GIFT);

} else {
hovedperson
.flatMap(person1 -> person1.getFoedsel().stream()
.max(Comparator.comparing(PdlPerson.Foedsel::getId)))
.ifPresent(foedsel -> pensjonUforetrygdRequest.setMinimumInntektForUforhetType(

ChronoUnit.YEARS.between(fraDato, getFoedselsdato(foedsel)) > 23 ?
UforeType.ENSLIG :
UforeType.UNGUFOR));
}
});
}



}
})
.byDefault()
.register();
}

private static LocalDate getFoedselsdato(PdlPerson.Foedsel foedsel) {

return nullcheckSetDefaultValue(foedsel.getFoedselsdato(),
LocalDate.of(foedsel.getFoedselsaar(), 1, 1));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ public static class Folkeregisteridentifikator extends DbVersjonDTO {
private String status;

public boolean isOpphoert() {
return "OPPHOERT".equals(status);
return "OPPHOERT" .equals(status);
}
}

Expand Down Expand Up @@ -397,9 +397,10 @@ public static class Sivilstand extends DbVersjonDTO {
private String relatertVedSivilstand;

public boolean isGift() {
return nonNull(type) &&
type != SivilstandType.UOPPGITT &&
type != SivilstandType.UGIFT;
return type == SivilstandType.GIFT ||
type == SivilstandType.SEPARERT ||
type == SivilstandType.REGISTRERT_PARTNER ||
type == SivilstandType.SEPARERT_PARTNER;
}
}

Expand Down Expand Up @@ -448,7 +449,7 @@ public static class Vergemaal extends DbVersjonDTO {
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public static class VergeEllerFullmektig extends DbVersjonDTO{
public static class VergeEllerFullmektig extends DbVersjonDTO {

private NavnDTO navn;
private String motpartsPersonident;
Expand Down

0 comments on commit 1a65932

Please sign in to comment.