diff --git a/src/main/java/nl/rijksoverheid/mev/brpadapter/service/BrpService.java b/src/main/java/nl/rijksoverheid/mev/brpadapter/service/BrpService.java index 6b2126be5..bee884d80 100644 --- a/src/main/java/nl/rijksoverheid/mev/brpadapter/service/BrpService.java +++ b/src/main/java/nl/rijksoverheid/mev/brpadapter/service/BrpService.java @@ -5,12 +5,14 @@ import nl.rijksoverheid.mev.brpadapter.soap.BrpClient; import nl.rijksoverheid.mev.exception.BrpException; import nl.rijksoverheid.mev.exception.GezagException; +import nl.rijksoverheid.mev.gezagsmodule.domain.HuwelijkOfPartnerschap; import nl.rijksoverheid.mev.gezagsmodule.domain.Persoonslijst; import nl.rijksoverheid.mev.transaction.Transaction; import nl.rijksoverheid.mev.transaction.TransactionHandler; import org.springframework.stereotype.Service; import java.util.List; +import java.util.function.Consumer; /** * Service voor BRP functionaliteit @@ -28,7 +30,7 @@ public class BrpService { /** * Ophalen persoonslijst * - * @param bsn de bsn om de persoonslijst voor op te halen + * @param bsn de bsn om de persoonslijst voor op te halen * @param transaction de originele transactie * @return de persoonslijst * @throws GezagException wanneer BRP communicatie misgaat @@ -46,17 +48,29 @@ public Persoonslijst getPersoonslijst(final String bsn, final Transaction transa /** * Ophalen bsns van minderjarige kinderen * - * @param bsn de bsn om de persoonslijst voor op te halen + * @param bsn de bsn om de persoonslijst voor op te halen * @param transaction de originele transactie * @return de BSNs van de kinderen * @throws GezagException wanneer BRP communicatie misgaat */ - public List getBsnsMinderjarigeKinderen(final String bsn, final Transaction transaction) throws BrpException { + public List getBsnsMinderjarigeKinderenOuderEnPartners(final String bsn, final Transaction transaction) throws BrpException { Persoonslijst persoonslijstOuder = client.opvragenPersoonslijst(bsn, transaction); + List partners = persoonslijstOuder.getHuwelijkOfPartnerschappen().stream() + .filter(hop -> hop.getBsnPartner() != null) + .map(HuwelijkOfPartnerschap::getBsnPartner) + .map(bsnPartner -> client.opvragenPersoonslijst(bsnPartner, transaction)) + .toList(); transaction.setReceivedId(persoonslijstOuder.getReceivedId()); transactionHandler.saveBrpServiceTransaction(BRP_SERVICE_GET_BSNS_MINDERJARIGE_KINDEREN, persoonslijstOuder.getReceivedId(), transaction); - return persoonslijstOuder.getBurgerservicenummersVanMinderjarigeKinderen(); + List kinderen = persoonslijstOuder.getBurgerservicenummersVanMinderjarigeKinderen(); + kinderen.addAll(partners.stream().map(Persoonslijst::getBurgerservicenummersVanMinderjarigeKinderen) + .mapMulti((final List list, final Consumer consumer) -> { + list.forEach(consumer::accept); + }).toList()); + + return kinderen.stream() + .distinct().toList(); } } diff --git a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/ARVragenModel.java b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/ARVragenModel.java index 471f26940..54e52bb48 100644 --- a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/ARVragenModel.java +++ b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/ARVragenModel.java @@ -476,8 +476,8 @@ public void bepalenGezagdragers(final String bsn, final ARAntwoordenModel arAntw if ((((arAntwoordenModel.getGezagNietOuder1() != null && arAntwoordenModel.getGezagNietOuder1().equals("Ja")) || (arAntwoordenModel.getGezagNietOuder2() != null && arAntwoordenModel.getGezagNietOuder2().equals("Ja"))) && (plNietOuder != null))) { - Gezagsrelatie gezagsrelatie = new Gezagsrelatie(bsn, soortGezag, plNietOuder.getPersoon().getBsn(), uitleg); - gezagsrelatie.setDerde(true); + Gezagsrelatie gezagsrelatie = new Gezagsrelatie(bsn, soortGezag, null, uitleg); + gezagsrelatie.setBsnDerde(plNietOuder.getPersoon().getBsn()); gezagsrelaties.add(gezagsrelatie); } } diff --git a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/Persoonslijst.java b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/Persoonslijst.java index 804860924..ba6f4053e 100644 --- a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/Persoonslijst.java +++ b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/domain/Persoonslijst.java @@ -18,6 +18,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; import java.util.stream.Stream; import static org.apache.commons.lang3.StringUtils.isNotBlank; @@ -263,7 +264,7 @@ public List getBurgerservicenummersVanMinderjarigeKinderen() { .filter(Kind::isMinderjarig) .map(Kind::getBsn) .filter(Objects::nonNull) - .toList(); + .collect(Collectors.toList()); } /** diff --git a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/model/Gezagsrelatie.java b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/model/Gezagsrelatie.java index 500ea51b8..1bde4da2a 100644 --- a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/model/Gezagsrelatie.java +++ b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/model/Gezagsrelatie.java @@ -16,7 +16,7 @@ public class Gezagsrelatie { private String soortGezag; private String bsnMeerderjarige; private String toelichting; - private boolean isDerde; + private String bsnDerde; public Gezagsrelatie( final String bsnMinderjarige, @@ -45,9 +45,10 @@ public boolean isTweehoofdigOuderlijkGezag() { @Override public String toString() { return "Gezagsrelatie{" - + ", bsnMinderjarige=" + bsnMinderjarige + + "bsnMinderjarige=" + bsnMinderjarige + ", soortGezag=" + soortGezag + ", bsnMeerderjarige=" + bsnMeerderjarige - + ", toelichting=" + toelichting + '}'; + + ", toelichting=" + toelichting + + ", bsnDerde= " + bsnDerde + '}'; } } diff --git a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/service/newversion/GezagBepaling.java b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/service/newversion/GezagBepaling.java index 7fd6f8bf4..36d2dbb6e 100644 --- a/src/main/java/nl/rijksoverheid/mev/gezagsmodule/service/newversion/GezagBepaling.java +++ b/src/main/java/nl/rijksoverheid/mev/gezagsmodule/service/newversion/GezagBepaling.java @@ -145,21 +145,31 @@ public void bepalenGezagdragers(final String bsn, final ARAntwoordenModel arAntw if (arAntwoordenModel != null) { String uitleg = arAntwoordenModel.getUitleg(); String soortGezag = arAntwoordenModel.getSoortGezag(); - if (arAntwoordenModel.getGezagOuder1() != null && arAntwoordenModel.getGezagOuder1().equals("Ja") - && (plOuder1 != null)) { - gezagsrelaties.add( - new Gezagsrelatie(bsn, soortGezag, plOuder1.getPersoon().getBsn(), uitleg)); + + boolean ouder1Gezag = arAntwoordenModel.getGezagOuder1() != null && arAntwoordenModel.getGezagOuder1().equals("Ja") + && (plOuder1 != null); + boolean ouder2Gezag = arAntwoordenModel.getGezagOuder2() != null && arAntwoordenModel.getGezagOuder2().equals("Ja") + && (plOuder2 != null); + boolean nietOuderGezag = (((arAntwoordenModel.getGezagNietOuder1() != null && arAntwoordenModel.getGezagNietOuder1().equals("Ja")) + || (arAntwoordenModel.getGezagNietOuder2() != null && arAntwoordenModel.getGezagNietOuder2().equals("Ja"))) + && (plNietOuder != null)); + if (ouder1Gezag) { + Gezagsrelatie gezagsrelatie = new Gezagsrelatie(bsn, soortGezag, plOuder1.getPersoon().getBsn(), uitleg); + if (nietOuderGezag) { + gezagsrelatie.setBsnDerde(plNietOuder.getPersoon().getBsn()); + } + gezagsrelaties.add(gezagsrelatie); } - if (arAntwoordenModel.getGezagOuder2() != null && arAntwoordenModel.getGezagOuder2().equals("Ja") - && (plOuder2 != null)) { - gezagsrelaties.add( - new Gezagsrelatie(bsn, soortGezag, plOuder2.getPersoon().getBsn(), uitleg)); + if (ouder2Gezag) { + Gezagsrelatie gezagsrelatie = new Gezagsrelatie(bsn, soortGezag, plOuder2.getPersoon().getBsn(), uitleg); + if (nietOuderGezag) { + gezagsrelatie.setBsnDerde(plNietOuder.getPersoon().getBsn()); + } + gezagsrelaties.add(gezagsrelatie); } - if ((((arAntwoordenModel.getGezagNietOuder1() != null && arAntwoordenModel.getGezagNietOuder1().equals("Ja")) - || (arAntwoordenModel.getGezagNietOuder2() != null && arAntwoordenModel.getGezagNietOuder2().equals("Ja"))) - && (plNietOuder != null))) { - Gezagsrelatie gezagsrelatie = new Gezagsrelatie(bsn, soortGezag, plNietOuder.getPersoon().getBsn(), uitleg); - gezagsrelatie.setDerde(true); + if (!ouder1Gezag && !ouder2Gezag && nietOuderGezag) { + Gezagsrelatie gezagsrelatie = new Gezagsrelatie(bsn, soortGezag, null, uitleg); + gezagsrelatie.setBsnDerde(plNietOuder.getPersoon().getBsn()); gezagsrelaties.add(gezagsrelatie); } } diff --git a/src/main/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagService.java b/src/main/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagService.java index 70e70e5cf..e4e9438ef 100644 --- a/src/main/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagService.java +++ b/src/main/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagService.java @@ -83,9 +83,12 @@ private Persoon bepaalGezagVoorPersoon(final String burgerservicenummer, final T } private Stream vindGezagsrelatiesVoorKinderen(final String bevraagdePersoon, final Transaction transaction) throws GezagException { - List kinderen = brpService.getBsnsMinderjarigeKinderen(bevraagdePersoon, transaction); + List kinderen = brpService.getBsnsMinderjarigeKinderenOuderEnPartners(bevraagdePersoon, transaction); List gezagsrelaties = gezagService.getGezag(kinderen, transaction); + return gezagsrelaties.stream() - .filter(gezagsrelatie -> gezagsrelatie.isTweehoofdigOuderlijkGezag() || bevraagdePersoon.equals(gezagsrelatie.getBsnMeerderjarige())); + .filter(gezagsrelatie -> gezagsrelatie.isTweehoofdigOuderlijkGezag() + || bevraagdePersoon.equals(gezagsrelatie.getBsnMeerderjarige()) + || bevraagdePersoon.equals(gezagsrelatie.getBsnDerde())); } } diff --git a/src/main/java/nl/rijksoverheid/mev/gmapi/GezagTransformer.java b/src/main/java/nl/rijksoverheid/mev/gmapi/GezagTransformer.java index e5c3f474e..833fadc5b 100644 --- a/src/main/java/nl/rijksoverheid/mev/gmapi/GezagTransformer.java +++ b/src/main/java/nl/rijksoverheid/mev/gmapi/GezagTransformer.java @@ -42,8 +42,9 @@ public List from(final List gezagsrelaties } private void transformGezagrelatie(final Gezagsrelatie gezagsrelatie, final List vertaaldeGezagsrelaties) { - final String burgerservicenummerMeerderjarige = gezagsrelatie.getBsnMeerderjarige(); - final String burgerservicenummerMinderjarige = gezagsrelatie.getBsnMinderjarige(); + String burgerservicenummerMeerderjarige = gezagsrelatie.getBsnMeerderjarige(); + String burgerservicenummerMinderjarige = gezagsrelatie.getBsnMinderjarige(); + String burgerservicenummerDerde = gezagsrelatie.getBsnDerde(); switch (gezagsrelatie.getSoortGezag()) { case "OG1" -> { @@ -69,28 +70,21 @@ private void transformGezagrelatie(final Gezagsrelatie gezagsrelatie, final List ); } case "GG" -> { - var gezamenlijkGezag = getGezamenlijkGezagGezagMinderjarige(burgerservicenummerMinderjarige, vertaaldeGezagsrelaties) - .orElseGet(() -> { - var result = new GezamenlijkGezag() - .minderjarige(new Minderjarige().burgerservicenummer(burgerservicenummerMinderjarige)) - .type(TYPE_GEZAMELIJK_GEZAG); - vertaaldeGezagsrelaties.add(result); - return result; - }); + AbstractGezagsrelatie gezag = new GezamenlijkGezag() + .minderjarige(new Minderjarige().burgerservicenummer(burgerservicenummerMinderjarige)) + .derde(new Meerderjarige().burgerservicenummer(burgerservicenummerDerde)) + .ouder(new GezagOuder().burgerservicenummer(gezagsrelatie.getBsnMeerderjarige())) + .type(TYPE_GEZAMELIJK_GEZAG); - if (gezagsrelatie.isDerde()) { - gezamenlijkGezag.setDerde(Optional.of(new Meerderjarige().burgerservicenummer(gezagsrelatie.getBsnMeerderjarige()))); - } else { - gezamenlijkGezag.setOuder(Optional.of(new GezagOuder().burgerservicenummer(gezagsrelatie.getBsnMeerderjarige()))); - } + vertaaldeGezagsrelaties.add(gezag); } case "V" -> { Voogdij gezag = new Voogdij() .minderjarige(new Minderjarige().burgerservicenummer(burgerservicenummerMinderjarige)) .type(TYPE_VOOGDIJ); - if (burgerservicenummerMeerderjarige != null && !burgerservicenummerMeerderjarige.isEmpty()) { - gezag.addDerdenItem(new Meerderjarige().burgerservicenummer(burgerservicenummerMeerderjarige)); + if (burgerservicenummerDerde != null && !burgerservicenummerDerde.isEmpty()) { + gezag.addDerdenItem(new Meerderjarige().burgerservicenummer(burgerservicenummerDerde)); } vertaaldeGezagsrelaties.add(gezag); @@ -113,16 +107,4 @@ private Optional getTweehoofdigOuderlijkGezagMinderja .equals(burgerservicenummerMinderjarige)) .findFirst(); } - - private Optional getGezamenlijkGezagGezagMinderjarige( - final String burgerservicenummerMinderjarige, - final List vertaaldeGezagsrelaties - ) { - return vertaaldeGezagsrelaties.stream() - .filter(GezamenlijkGezag.class::isInstance) - .map(GezamenlijkGezag.class::cast) - .filter(gezamenlijkGezag -> gezamenlijkGezag.getMinderjarige().orElseThrow().getBurgerservicenummer() // not optional, should be fixed in OpenAPI Spec - .equals(burgerservicenummerMinderjarige)) - .findFirst(); - } } \ No newline at end of file diff --git a/src/test/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagServiceTest.java b/src/test/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagServiceTest.java index abcf604e7..0fc82f17e 100644 --- a/src/test/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagServiceTest.java +++ b/src/test/java/nl/rijksoverheid/mev/gmapi/BevoegdheidTotGezagServiceTest.java @@ -60,9 +60,9 @@ void setup() throws GezagException { } void setupFamilieRelaties() throws GezagException { - when(brpService.getBsnsMinderjarigeKinderen(BSN_OUDER_VAN_MINDERJARIGE_OUDER, transaction)).thenReturn(List.of(BSN_MINDERJARIGE_OUDER)); - when(brpService.getBsnsMinderjarigeKinderen(BSN_MINDERJARIGE_OUDER, transaction)).thenReturn(List.of(BSN_KIND_1, BSN_KIND_2)); - when(brpService.getBsnsMinderjarigeKinderen(BSN_MEERDERJARIGE_OUDER, transaction)).thenReturn(List.of(BSN_KIND_1, BSN_KIND_2)); + when(brpService.getBsnsMinderjarigeKinderenOuderEnPartners(BSN_OUDER_VAN_MINDERJARIGE_OUDER, transaction)).thenReturn(List.of(BSN_MINDERJARIGE_OUDER)); + when(brpService.getBsnsMinderjarigeKinderenOuderEnPartners(BSN_MINDERJARIGE_OUDER, transaction)).thenReturn(List.of(BSN_KIND_1, BSN_KIND_2)); + when(brpService.getBsnsMinderjarigeKinderenOuderEnPartners(BSN_MEERDERJARIGE_OUDER, transaction)).thenReturn(List.of(BSN_KIND_1, BSN_KIND_2)); } void setupGezagRelaties() { @@ -79,33 +79,33 @@ void geenGezaghebbendenVanMeerderjarigen() { } void grootOuderAlsGezaghebbendeVanMinderjarigeOuder() { - var gezagsrelatieMinderjarigeOuderMetDiensOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_MINDERJARIGE_OUDER, "OG1", BSN_OUDER_VAN_MINDERJARIGE_OUDER, UITLEG, false); + var gezagsrelatieMinderjarigeOuderMetDiensOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_MINDERJARIGE_OUDER, "OG1", BSN_OUDER_VAN_MINDERJARIGE_OUDER, UITLEG, null); var gezagsrelatiesMinderjarigeOuderMetDiensOuder = List.of(gezagsrelatieMinderjarigeOuderMetDiensOuder); when(gezagService.getGezag(List.of(BSN_MINDERJARIGE_OUDER), transaction)).thenReturn(gezagsrelatiesMinderjarigeOuderMetDiensOuder); } void grootOuderEnMeerderjarigeOuderAlsGezaghebbendenVanKind1() { - var gezagsrelatieKind1MetGrootouder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_OUDER_VAN_MINDERJARIGE_OUDER, UITLEG, false); - var gezagsrelatieKind1MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, false); + var gezagsrelatieKind1MetGrootouder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_OUDER_VAN_MINDERJARIGE_OUDER, UITLEG, null); + var gezagsrelatieKind1MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, null); var gezagsrelatiesKind1 = List.of(gezagsrelatieKind1MetGrootouder, gezagsrelatieKind1MetMeerderjarigeOuder); when(gezagService.getGezag(List.of(BSN_KIND_1), transaction)).thenReturn(gezagsrelatiesKind1); } void voogdEnMeerderjarigeOuderAlsGezaghebbendenVanKind2() { - var gezagsrelatieKind2MetVoogd = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "V", BSN_VOOGD_KIND_2, UITLEG, false); - var gezagsrelatieKind2MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, false); + var gezagsrelatieKind2MetVoogd = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "V", BSN_VOOGD_KIND_2, UITLEG, null); + var gezagsrelatieKind2MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, null); var gezagsrelatiesKind2 = List.of(gezagsrelatieKind2MetVoogd, gezagsrelatieKind2MetMeerderjarigeOuder); when(gezagService.getGezag(List.of(BSN_KIND_2), transaction)).thenReturn(gezagsrelatiesKind2); } void gezagRelatiesKind1EnKind2() { - var gezagsrelatieKind1MetGrootouder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_OUDER_VAN_MINDERJARIGE_OUDER, UITLEG, false); - var gezagsrelatieKind1MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, false); - var gezagsrelatieKind2MetVoogd = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "V", BSN_VOOGD_KIND_2, UITLEG, false); - var gezagsrelatieKind2MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, false); + var gezagsrelatieKind1MetGrootouder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_OUDER_VAN_MINDERJARIGE_OUDER, UITLEG, null); + var gezagsrelatieKind1MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_1, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, null); + var gezagsrelatieKind2MetVoogd = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "V", BSN_VOOGD_KIND_2, UITLEG, null); + var gezagsrelatieKind2MetMeerderjarigeOuder = new nl.rijksoverheid.mev.gezagsmodule.model.Gezagsrelatie(BSN_KIND_2, "OG1", BSN_MEERDERJARIGE_OUDER, UITLEG, null); var gezagsrelaties = List.of(gezagsrelatieKind1MetGrootouder, gezagsrelatieKind1MetMeerderjarigeOuder, gezagsrelatieKind2MetVoogd, gezagsrelatieKind2MetMeerderjarigeOuder); when(gezagService.getGezag(List.of(BSN_KIND_1, BSN_KIND_2), transaction)).thenReturn(gezagsrelaties); diff --git a/src/test/java/nl/rijksoverheid/mev/gmapi/OpvragenBevoegdheidTotGezagAcceptanceTest.java b/src/test/java/nl/rijksoverheid/mev/gmapi/OpvragenBevoegdheidTotGezagAcceptanceTest.java index 85420d77b..805d231f2 100644 --- a/src/test/java/nl/rijksoverheid/mev/gmapi/OpvragenBevoegdheidTotGezagAcceptanceTest.java +++ b/src/test/java/nl/rijksoverheid/mev/gmapi/OpvragenBevoegdheidTotGezagAcceptanceTest.java @@ -705,7 +705,7 @@ private static Arguments minderjarigeArguments(final String testcase, final Stri gezagsrelatie.setBsnMeerderjarige(bsnMeerderjarige); gezagsrelatie.setToelichting(UITLEG); if("GG".equals(soortGezag) && !gezagsrelaties.isEmpty()) { - gezagsrelatie.setDerde(true); + gezagsrelatie.setBsnDerde(bsnMeerderjarige); } gezagsrelaties.add(gezagsrelatie); }