|
21 | 21 | import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonTpYtelseRequest;
|
22 | 22 | import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonUforetrygdRequest;
|
23 | 23 | import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonforvalterResponse;
|
| 24 | +import no.nav.dolly.bestilling.pensjonforvalter.domain.PensjonsavtaleRequest; |
24 | 25 | import no.nav.dolly.bestilling.personservice.PersonServiceConsumer;
|
25 | 26 | import no.nav.dolly.consumer.norg2.Norg2Consumer;
|
26 | 27 | import no.nav.dolly.consumer.norg2.dto.Norg2EnhetResponse;
|
@@ -83,6 +84,7 @@ public class PensjonforvalterClient implements ClientRegister {
|
83 | 84 | private static final String TP_FORHOLD = "TpForhold#";
|
84 | 85 | private static final String PEN_ALDERSPENSJON = "AP#";
|
85 | 86 | private static final String PEN_UFORETRYGD = "Ufoer#";
|
| 87 | + private static final String PEN_PENSJONSAVTALE = "Pensjonsavtale#"; |
86 | 88 | private static final String PERIODE = "/periode/";
|
87 | 89 |
|
88 | 90 | private final PensjonforvalterConsumer pensjonforvalterConsumer;
|
@@ -154,7 +156,10 @@ public Flux<ClientFuture> gjenopprett(RsDollyUtvidetBestilling bestilling, Dolly
|
154 | 156 | .map(response -> POPP_INNTEKTSREGISTER + decodeStatus(response, dollyPerson.getIdent())),
|
155 | 157 |
|
156 | 158 | lagreTpForhold(pensjon, dollyPerson.getIdent(), bestilteMiljoer.get())
|
157 |
| - .map(response -> TP_FORHOLD + decodeStatus(response, dollyPerson.getIdent())) |
| 159 | + .map(response -> TP_FORHOLD + decodeStatus(response, dollyPerson.getIdent())), |
| 160 | + |
| 161 | + lagrePensjonsavtale(pensjon, dollyPerson.getIdent(), bestilteMiljoer.get()) |
| 162 | + .map(response -> PEN_PENSJONSAVTALE + decodeStatus(response, dollyPerson.getIdent())) |
158 | 163 | )
|
159 | 164 | .collectList()
|
160 | 165 | .doOnNext(statusResultat::addAll)
|
@@ -197,9 +202,10 @@ public Flux<ClientFuture> gjenopprett(RsDollyUtvidetBestilling bestilling, Dolly
|
197 | 202 | @Override
|
198 | 203 | public void release(List<String> identer) {
|
199 | 204 |
|
200 |
| - // Pensjonforvalter / POPP støtter pt ikke sletting |
| 205 | + // Pensjonforvalter / POPP, AP, UT støtter pt ikke sletting |
201 | 206 |
|
202 | 207 | pensjonforvalterConsumer.sletteTpForhold(identer);
|
| 208 | + pensjonforvalterConsumer.slettePensjonsavtale(identer); |
203 | 209 | }
|
204 | 210 |
|
205 | 211 | public static PensjonforvalterResponse mergePensjonforvalterResponses(List<PensjonforvalterResponse> responser) {
|
@@ -490,6 +496,23 @@ private Mono<PensjonforvalterResponse> lagreTpForhold(PensjonData pensjonData, S
|
490 | 496 | .map(PensjonforvalterClient::mergePensjonforvalterResponses);
|
491 | 497 | }
|
492 | 498 |
|
| 499 | + private Flux<PensjonforvalterResponse> lagrePensjonsavtale(PensjonData pensjon, String ident, Set<String> miljoer) { |
| 500 | + |
| 501 | + return Flux.just(pensjon) |
| 502 | + .filter(PensjonData::hasPensjonsavtale) |
| 503 | + .map(PensjonData::getPensjonsavtale) |
| 504 | + .flatMap(pensjonsavtaler -> Flux.fromIterable(pensjonsavtaler) |
| 505 | + .flatMap(pensjonsavtale -> { |
| 506 | + |
| 507 | + var context = MappingContextUtils.getMappingContext(); |
| 508 | + context.setProperty(IDENT, ident); |
| 509 | + context.setProperty(MILJOER, miljoer); |
| 510 | + |
| 511 | + var pensjonsavtaleRequest = mapperFacade.map(pensjonsavtale, PensjonsavtaleRequest.class, context); |
| 512 | + return pensjonforvalterConsumer.lagrePensjonsavtale(pensjonsavtaleRequest); |
| 513 | + })); |
| 514 | + } |
| 515 | + |
493 | 516 | private String decodeStatus(PensjonforvalterResponse response, String ident) {
|
494 | 517 |
|
495 | 518 | log.info("Mottatt status på {} fra Pensjon-Testdata-Facade: {}", ident, response);
|
|
0 commit comments