diff --git a/src/main/kotlin/no/nav/familie/ks/barnehagelister/domene/Barnehageliste.kt b/src/main/kotlin/no/nav/familie/ks/barnehagelister/domene/Barnehageliste.kt index 5f0f197..a052e5b 100644 --- a/src/main/kotlin/no/nav/familie/ks/barnehagelister/domene/Barnehageliste.kt +++ b/src/main/kotlin/no/nav/familie/ks/barnehagelister/domene/Barnehageliste.kt @@ -15,10 +15,10 @@ data class Barnehageliste( val id: UUID, val rawJson: FormV1RequestDto, val status: BarnehagelisteStatus, + val leverandorOrgNr: String, + val kommuneOrgNr: String, val opprettetTid: LocalDateTime = LocalDateTime.now(), val ferdigTid: LocalDateTime? = null, - val leverandorOrgNr: String? = null, - val kommuneOrgNr: String? = null, ) { override fun toString(): String = "Barnehageliste(id=$id, status=$status, opprettetTid=$opprettetTid, ferdigTid=$ferdigTid, leverandorOrgNr=$leverandorOrgNr, kommuneOrgNr=$kommuneOrgNr)" diff --git a/src/main/kotlin/no/nav/familie/ks/barnehagelister/repository/BarnehagelisteRepository.kt b/src/main/kotlin/no/nav/familie/ks/barnehagelister/repository/BarnehagelisteRepository.kt index 565c77a..3eaaa95 100644 --- a/src/main/kotlin/no/nav/familie/ks/barnehagelister/repository/BarnehagelisteRepository.kt +++ b/src/main/kotlin/no/nav/familie/ks/barnehagelister/repository/BarnehagelisteRepository.kt @@ -1,6 +1,7 @@ package no.nav.familie.ks.barnehagelister.repository import no.nav.familie.ks.barnehagelister.domene.Barnehageliste +import org.springframework.data.jdbc.repository.query.Query import org.springframework.stereotype.Repository import org.springframework.transaction.annotation.Transactional import java.util.UUID @@ -11,4 +12,6 @@ interface BarnehagelisteRepository : RepositoryInterface, InsertUpdateRepository { // language=PostgreSQL + @Query(value = "SELECT b FROM Barnehageliste WHERE b.id = :id") + fun finnById(id: UUID): Barnehageliste } diff --git a/src/main/kotlin/no/nav/familie/ks/barnehagelister/service/BarnehagelisteService.kt b/src/main/kotlin/no/nav/familie/ks/barnehagelister/service/BarnehagelisteService.kt index cbf2d66..fddc5f8 100644 --- a/src/main/kotlin/no/nav/familie/ks/barnehagelister/service/BarnehagelisteService.kt +++ b/src/main/kotlin/no/nav/familie/ks/barnehagelister/service/BarnehagelisteService.kt @@ -54,7 +54,12 @@ class BarnehagelisteService( ), ) - val opprettetTask = PeriodeOverlappValideringTask.opprettTask(skjemaV1.id.toString()) + val opprettetTask = + PeriodeOverlappValideringTask.opprettTask( + barnehagelisteId = skjemaV1.id.toString(), + leverandørOrgNr = leverandørOrgNr, + kommuneOrgNr = kommuneOrgNr, + ) taskService.save(opprettetTask) return BarnehagelisteMedValideringsfeil( diff --git a/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTask.kt b/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTask.kt index 702bea9..5ae84cf 100644 --- a/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTask.kt +++ b/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTask.kt @@ -52,13 +52,19 @@ class LesBarnehagelisteTask( const val TASK_STEP_TYPE = "lesBarnehagelisteTask" private val logger: Logger = LoggerFactory.getLogger(LesBarnehagelisteTask::class.java) - fun opprettTask(barnehagelisteId: UUID): Task = + fun opprettTask( + barnehagelisteId: UUID, + leverandørOrgNr: String, + kommuneOrgNr: String, + ): Task = Task( type = TASK_STEP_TYPE, payload = barnehagelisteId.toString(), properties = Properties().apply { this["barnehagelisteId"] = barnehagelisteId.toString() + this["leverandørOrgNr"] = leverandørOrgNr + this["kommuneOrgNr"] = kommuneOrgNr }, ) } diff --git a/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTask.kt b/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTask.kt index b3e3826..80bfa0a 100644 --- a/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTask.kt +++ b/src/main/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTask.kt @@ -63,19 +63,29 @@ class PeriodeOverlappValideringTask( } override fun onCompletion(task: Task) { - LesBarnehagelisteTask.opprettTask(UUID.fromString(task.payload)).also { taskService.save(it) } + val barnehagelisteId = UUID.fromString(task.payload) + val barnehageliste = barnehagelisteRepository.finnById(barnehagelisteId) + LesBarnehagelisteTask.opprettTask(UUID.fromString(task.payload), barnehageliste.leverandorOrgNr, barnehageliste.kommuneOrgNr).also { + taskService.save(it) + } } companion object { const val TASK_STEP_TYPE = "periodeOverlappValideringTask" - fun opprettTask(barnehagelisteId: String): Task = + fun opprettTask( + barnehagelisteId: String, + leverandørOrgNr: String, + kommuneOrgNr: String, + ): Task = Task( type = TASK_STEP_TYPE, payload = barnehagelisteId, properties = Properties().apply { this["barnehagelisteId"] = barnehagelisteId + this["kommuneOrgNr"] = kommuneOrgNr + this["leverandørOrgNr"] = leverandørOrgNr }, ) } diff --git a/src/main/resources/db/migration/V8__drop_nullable_paa_kommuneOrgNr_og_leverandorOrgNr.sql b/src/main/resources/db/migration/V8__drop_nullable_paa_kommuneOrgNr_og_leverandorOrgNr.sql new file mode 100644 index 0000000..22c1e4c --- /dev/null +++ b/src/main/resources/db/migration/V8__drop_nullable_paa_kommuneOrgNr_og_leverandorOrgNr.sql @@ -0,0 +1,5 @@ +ALTER TABLE barnehageliste + ALTER COLUMN kommune_org_nr DROP NOT NULL; + +ALTER TABLE barnehageliste + ALTER COLUMN leverandor_org_nr DROP NOT NULL; \ No newline at end of file diff --git a/src/test/kotlin/no/nav/familie/ks/barnehagelister/domene/BarnehagelisteServiceTest.kt b/src/test/kotlin/no/nav/familie/ks/barnehagelister/domene/BarnehagelisteServiceTest.kt index 6085f06..759f2cd 100644 --- a/src/test/kotlin/no/nav/familie/ks/barnehagelister/domene/BarnehagelisteServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/ks/barnehagelister/domene/BarnehagelisteServiceTest.kt @@ -46,6 +46,8 @@ class BarnehagelisteServiceTest { id = uuid, rawJson = eksisterendeRequest, status = BarnehagelisteStatus.MOTTATT, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) every { mockBarnehagelisteRepository.findByIdOrNull(uuid) } returns lagretBarnehageliste diff --git a/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTaskTest.kt b/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTaskTest.kt index a5ff37c..90620f9 100644 --- a/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTaskTest.kt +++ b/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/LesBarnehagelisteTaskTest.kt @@ -44,6 +44,8 @@ class LesBarnehagelisteTaskTest { id = barnehagelisteId, rawJson = FormV1RequestDtoTestData.lagRequest(), status = BarnehagelisteStatus.MOTTATT, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) val mockTask = Task("", "") @@ -51,7 +53,7 @@ class LesBarnehagelisteTaskTest { every { barnehagelisteService.settBarnehagelisteStatusTilFerdig(mockBarnehageliste) } just runs every { taskService.save(any()) } returns mockTask - val task = LesBarnehagelisteTask.opprettTask(barnehagelisteId) + val task = LesBarnehagelisteTask.opprettTask(barnehagelisteId, "leverandørOrgNr", "kommuneOrgNr") // Act lesBarnehagelisteTask.doTask(task) @@ -70,11 +72,13 @@ class LesBarnehagelisteTaskTest { id = barnehagelisteId, rawJson = FormV1RequestDtoTestData.lagRequest(), status = BarnehagelisteStatus.FERDIG, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) every { barnehagelisteService.hentBarnehageliste(barnehagelisteId) } returns mockBarnehageliste - val task = LesBarnehagelisteTask.opprettTask(barnehagelisteId) + val task = LesBarnehagelisteTask.opprettTask(barnehagelisteId, "leverandørOrgNr", "kommuneOrgNr") // Act lesBarnehagelisteTask.doTask(task) diff --git a/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTaskTest.kt b/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTaskTest.kt index 08c2908..c8c5554 100644 --- a/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTaskTest.kt +++ b/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/PeriodeOverlappValideringTaskTest.kt @@ -41,10 +41,18 @@ class PeriodeOverlappValideringTaskTest { id = barnehagelisteId, rawJson = FormV1RequestDtoTestData.lagRequest(), status = BarnehagelisteStatus.MOTTATT, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) every { mockBarnehagelisteRepository.findByIdOrNull(barnehagelisteId) } returns barnehageliste // Act - periodeOverlappValideringTask.doTask(PeriodeOverlappValideringTask.opprettTask(barnehagelisteId.toString())) + periodeOverlappValideringTask.doTask( + PeriodeOverlappValideringTask.opprettTask( + barnehagelisteId.toString(), + leverandørOrgNr = "leverandør", + kommuneOrgNr = "Kommune", + ), + ) // Assert verify(exactly = 0) { mockBarnehagelisteValideringsfeilRepository.insertAll(any()) } @@ -78,6 +86,8 @@ class PeriodeOverlappValideringTaskTest { id = barnehagelisteId, rawJson = skjema, status = BarnehagelisteStatus.MOTTATT, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) every { mockBarnehagelisteRepository.findByIdOrNull(barnehagelisteId) } returns barnehageliste @@ -85,7 +95,13 @@ class PeriodeOverlappValideringTaskTest { every { mockBarnehagelisteValideringsfeilRepository.insertAll(capture(slot)) } answers { slot.captured } // Act - periodeOverlappValideringTask.doTask(PeriodeOverlappValideringTask.opprettTask(barnehagelisteId.toString())) + periodeOverlappValideringTask.doTask( + PeriodeOverlappValideringTask.opprettTask( + barnehagelisteId.toString(), + leverandørOrgNr = "leverandør", + kommuneOrgNr = "Kommune", + ), + ) // Assert verify(exactly = 1) { mockBarnehagelisteValideringsfeilRepository.insertAll(any()) } diff --git a/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/SendBarnehagebarnTilKsTaskTest.kt b/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/SendBarnehagebarnTilKsTaskTest.kt index bda8163..1165d2f 100644 --- a/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/SendBarnehagebarnTilKsTaskTest.kt +++ b/src/test/kotlin/no/nav/familie/ks/barnehagelister/task/SendBarnehagebarnTilKsTaskTest.kt @@ -47,6 +47,8 @@ class SendBarnehagebarnTilKsTaskTest { id = barnehagelisteId, rawJson = FormV1RequestDtoTestData.lagRequest(), status = BarnehagelisteStatus.FERDIG, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) val mockBarnehagebarn = @@ -72,6 +74,8 @@ class SendBarnehagebarnTilKsTaskTest { id = barnehagelisteId, rawJson = FormV1RequestDtoTestData.lagRequest(), status = BarnehagelisteStatus.MOTTATT, + leverandorOrgNr = "123456789", + kommuneOrgNr = "123456789", ) val mockBarnehagebarn =