diff --git a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/PdlForvalterApplicationStarter.java b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/PdlForvalterApplicationStarter.java index 45f34416ff3..d4f60c563e8 100644 --- a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/PdlForvalterApplicationStarter.java +++ b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/PdlForvalterApplicationStarter.java @@ -10,4 +10,4 @@ public static void main(String[] args) { SpringApplication.run(PdlForvalterApplicationStarter.class, args); } -} +} \ No newline at end of file diff --git a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/controller/PersonController.java b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/controller/PersonController.java index 086ef20b2dc..0174785101a 100644 --- a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/controller/PersonController.java +++ b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/controller/PersonController.java @@ -51,6 +51,7 @@ import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -71,6 +72,7 @@ public class PersonController { private final ArtifactUpdateService artifactUpdateService; private final MetadataTidspunkterService metadataTidspunkterService; + @ResponseBody @GetMapping @Operation(description = "Hent person(er) med angitt(e) ident(er) eller alle") public List getPerson(@Parameter(description = "Ident(er) på personer som skal hentes") @@ -94,6 +96,7 @@ public List getPerson(@Parameter(description = "Ident(er) på per .build()); } + @ResponseBody @PostMapping @Operation(description = "Opprett person basert på angitte informasjonselementer, minimum er {}") public String createPerson(@RequestBody BestillingRequestDTO request) { @@ -101,6 +104,7 @@ public String createPerson(@RequestBody BestillingRequestDTO request) { return personService.createPerson(request); } + @ResponseBody @PutMapping(value = "/{ident}") @Operation(description = "Oppdater testperson basert på angitte informasjonselementer") public String updatePerson(@Parameter(description = "Ident på testperson som skal oppdateres") @@ -115,6 +119,7 @@ public String updatePerson(@Parameter(description = "Ident på testperson som sk } @Transactional + @ResponseBody @PostMapping(value = "/{ident}/ordre") @Operation(description = "Send angitte testperson(er) med relasjoner til PDL") public OrdreResponseDTO sendPersonTilPdl(@Parameter(description = "Ident på hovedperson som skal sendes") @@ -127,6 +132,7 @@ public OrdreResponseDTO sendPersonTilPdl(@Parameter(description = "Ident på hov return pdlOrdreService.send(ident, ekskluderEksternePersoner); } + @ResponseBody @DeleteMapping(value = "/{ident}") @Operation(description = "Slett person") public void deletePerson(@Parameter(description = "Slett angitt testperson med relasjoner") diff --git a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/DoedsfallService.java b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/DoedsfallService.java index 1f8c1db8127..e1136d8a299 100644 --- a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/DoedsfallService.java +++ b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/DoedsfallService.java @@ -1,13 +1,11 @@ package no.nav.pdl.forvalter.service; -import lombok.RequiredArgsConstructor; -import no.nav.pdl.forvalter.database.repository.PersonRepository; import no.nav.pdl.forvalter.exception.InvalidRequestException; import no.nav.testnav.libs.data.pdlforvalter.v1.DoedsfallDTO; import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO; -import no.nav.testnav.libs.data.pdlforvalter.v1.SivilstandDTO; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -16,14 +14,11 @@ import static no.nav.pdl.forvalter.utils.ArtifactUtils.getMaster; import static no.nav.pdl.forvalter.utils.ArtifactUtils.renumberId; import static org.apache.commons.lang3.BooleanUtils.isTrue; -import static org.apache.commons.lang3.StringUtils.isNotBlank; @Service -@RequiredArgsConstructor public class DoedsfallService implements Validation { private static final String INVALID_DATO_MISSING = "Dødsfall: dødsdato må oppgis"; - private final PersonRepository personRepository; public List convert(PersonDTO person) { @@ -35,33 +30,14 @@ public List convert(PersonDTO person) { } } + person.setDoedsfall(new ArrayList<>(person.getDoedsfall())); + person.getDoedsfall().sort(Comparator.comparing(DoedsfallDTO::getDoedsdato).reversed()); renumberId(person.getDoedsfall()); - handle(person); - return person.getDoedsfall(); } - private void handle(PersonDTO person) { - - if (!person.getSivilstand().isEmpty() && - isNotBlank(person.getSivilstand().getFirst().getRelatertVedSivilstand()) && - person.getSivilstand().getFirst().isGift()) { - - personRepository.findByIdent(person.getSivilstand().getFirst().getRelatertVedSivilstand()) - .ifPresent(person1 -> - person1.getPerson().getSivilstand().addFirst( - SivilstandDTO.builder() - .type(person.getSivilstand().getFirst().getGjenlevendeSivilstand()) - .sivilstandsdato(person.getDoedsfall().getFirst().getDoedsdato()) - .kilde(person.getDoedsfall().getFirst().getKilde()) - .master(person.getDoedsfall().getFirst().getMaster()) - .id(person1.getPerson().getSivilstand().size() + 1) - .build())); - } - } - @Override public void validate(DoedsfallDTO type) { diff --git a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/MetadataTidspunkterService.java b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/MetadataTidspunkterService.java index 05ad833c01a..9f1634245bb 100644 --- a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/MetadataTidspunkterService.java +++ b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/MetadataTidspunkterService.java @@ -1,7 +1,6 @@ package no.nav.pdl.forvalter.service; import lombok.RequiredArgsConstructor; -import ma.glasnost.orika.MapperFacade; import no.nav.pdl.forvalter.database.model.DbPerson; import no.nav.pdl.forvalter.database.model.DbRelasjon; import no.nav.pdl.forvalter.database.repository.PersonRepository; @@ -31,7 +30,7 @@ import java.time.LocalDateTime; import java.util.Comparator; import java.util.List; -import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.atomic.AtomicInteger; import static java.util.Objects.isNull; import static java.util.Objects.nonNull; @@ -41,7 +40,6 @@ public class MetadataTidspunkterService { private final PersonRepository personRepository; - private final MapperFacade mapperFacade; public void updateMetadata(String ident) { @@ -223,33 +221,31 @@ private static void fixSikkerhetstiltak(SikkerhetstiltakDTO sikkerhetstiltakDTO) sikkerhetstiltakDTO.getFolkeregistermetadata().setOpphoerstidspunkt(sikkerhetstiltakDTO.getGyldigTilOgMed()); } - private void fixSivilstand(PersonDTO person) { + private static void fixSivilstand(PersonDTO person) { person.getSivilstand().sort(Comparator.comparing(SivilstandDTO::getId).reversed()); - var sivilstandCopy = mapperFacade.mapAsList(person.getSivilstand(), SivilstandDTO.class); - var dato = new AtomicReference<>(LocalDateTime.now()); - - sivilstandCopy + var counter = new AtomicInteger(0); + person.getSivilstand() .forEach(sivilstand -> { - if (isNull(sivilstand.getSivilstandsdato()) && isNull(sivilstand.getBekreftelsesdato())) { - - sivilstand.setSivilstandsdato(dato.get()); - dato.set(dato.get().minusYears(1)); - - } else { - var sivilstandsdato = nonNull(sivilstand.getSivilstandsdato()) ? sivilstand.getSivilstandsdato() : sivilstand.getBekreftelsesdato(); - sivilstand.setSivilstandsdato(sivilstandsdato); - dato.set(sivilstandsdato.minusYears(1)); + fixFolkeregisterMetadata(sivilstand); + if (isNull(sivilstand.getFolkeregistermetadata().getGyldighetstidspunkt())) { + + LocalDateTime gyldighetstidspunkt; + if (nonNull(sivilstand.getSivilstandsdato())) { + gyldighetstidspunkt = sivilstand.getSivilstandsdato(); + } else if (nonNull(sivilstand.getBekreftelsesdato())) { + gyldighetstidspunkt = sivilstand.getBekreftelsesdato(); + } else { + gyldighetstidspunkt = LocalDateTime.now().minusYears(counter.incrementAndGet()); + } + sivilstand.getFolkeregistermetadata().setGyldighetstidspunkt(gyldighetstidspunkt); + } + if (isNull(sivilstand.getFolkeregistermetadata().getAjourholdstidspunkt())) { + sivilstand.getFolkeregistermetadata().setAjourholdstidspunkt( + sivilstand.getFolkeregistermetadata().getGyldighetstidspunkt()); } }); - - for (int i = 0; i < person.getSivilstand().size(); i++) { - - var sivilstand = person.getSivilstand().get(i); - fixFolkeregisterMetadata(sivilstand); - sivilstand.getFolkeregistermetadata().setAjourholdstidspunkt(sivilstandCopy.get(i).getSivilstandsdato()); - } } private static void fixStatsborgerskap(StatsborgerskapDTO statsborgerskapDTO) { diff --git a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/PersonArtifactService.java b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/PersonArtifactService.java index 16d0927b719..0d43ab87c88 100644 --- a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/PersonArtifactService.java +++ b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/PersonArtifactService.java @@ -55,7 +55,6 @@ public PersonDTO buildPerson(PersonDTO person, Boolean relaxed) { person.setUtflytting(utflyttingService.convert(person)); person.setOpphold(oppholdService.convert(person.getOpphold())); person.setTilrettelagtKommunikasjon(tilrettelagtKommunikasjonService.convert(person.getTilrettelagtKommunikasjon())); - person.setSivilstand(sivilstandService.convert(person)); person.setDoedsfall(doedsfallService.convert(person)); person.setFullmakt(fullmaktService.convert(person)); person.setKontaktadresse(kontaktAdresseService.convert(person, relaxed)); @@ -63,6 +62,7 @@ public PersonDTO buildPerson(PersonDTO person, Boolean relaxed) { person.setVergemaal(vergemaalService.convert(person)); person.setFalskIdentitet(falskIdentitetService.convert(person)); person.setKontaktinformasjonForDoedsbo(kontaktinformasjonForDoedsboService.convert(person)); + person.setSivilstand(sivilstandService.convert(person)); person.setForelderBarnRelasjon(forelderBarnRelasjonService.convert(person)); person.setForeldreansvar(foreldreansvarService.convert(person)); person.setDoedfoedtBarn(doedfoedtBarnService.convert(person.getDoedfoedtBarn())); diff --git a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/pdlforvalter/v1/SivilstandDTO.java b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/pdlforvalter/v1/SivilstandDTO.java index 6a31af48df6..9181ff8bdd1 100644 --- a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/pdlforvalter/v1/SivilstandDTO.java +++ b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/pdlforvalter/v1/SivilstandDTO.java @@ -96,17 +96,6 @@ public boolean hasRelatertVedSivilstand() { } @JsonIgnore - public Sivilstand getGjenlevendeSivilstand() { - - return switch (type) { - case GIFT -> Sivilstand.ENKE_ELLER_ENKEMANN; - case REGISTRERT_PARTNER -> Sivilstand.GJENLEVENDE_PARTNER; - default -> type; - }; - } - - @JsonIgnore - @Override public String getIdentForRelasjon() { return relatertVedSivilstand; }