diff --git a/src/main/kotlin/no/nav/bidrag/behandling/controller/BehandlingController.kt b/src/main/kotlin/no/nav/bidrag/behandling/controller/BehandlingController.kt index f5717a965..7f5092b08 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/controller/BehandlingController.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/controller/BehandlingController.kt @@ -12,6 +12,7 @@ import no.nav.bidrag.behandling.dto.behandling.CreateBehandlingRequest import no.nav.bidrag.behandling.dto.behandling.CreateBehandlingResponse import no.nav.bidrag.behandling.dto.behandling.RolleDto import no.nav.bidrag.behandling.dto.behandling.SyncRollerRequest +import no.nav.bidrag.behandling.dto.behandling.UpdateBehandlingRequest import no.nav.bidrag.behandling.service.BehandlingService import no.nav.bidrag.behandling.transformers.toHusstandsBarnDto import no.nav.bidrag.behandling.transformers.toLocalDate @@ -84,6 +85,19 @@ class BehandlingController(private val behandlingService: BehandlingService) { return CreateBehandlingResponse(behandlingDo.id!!) } + @Suppress("unused") + @PutMapping("/behandling/{behandlingId}") + @Operation( + description = "Oppdatere behandling", + security = [SecurityRequirement(name = "bearer-key")], + ) + fun updateBehandling( + @PathVariable behandlingId: Long, + @Valid @RequestBody(required = true) request: UpdateBehandlingRequest, + ) { + behandlingService.updateBehandling(behandlingId, request.grunnlagspakkeId) + } + @Suppress("unused") @PutMapping("/behandling/{behandlingId}/roller/sync") @Operation( @@ -169,6 +183,7 @@ class BehandlingController(private val behandlingService: BehandlingService) { behandling.sivilstand.toSivilstandDto(), behandling.virkningsDato?.toLocalDate(), behandling.soknadRefId, + behandling.grunnlagspakkeId, behandling.aarsak, behandling.virkningsTidspunktBegrunnelseMedIVedtakNotat, behandling.virkningsTidspunktBegrunnelseKunINotat, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt index fc6b79da6..070f7ace9 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt @@ -56,6 +56,7 @@ class Behandling( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, + var grunnlagspakkeId: Long? = null, @OneToMany(fetch = FetchType.EAGER, mappedBy = "behandling", cascade = [CascadeType.ALL], orphanRemoval = true) var roller: MutableSet = mutableSetOf(), @OneToMany(fetch = FetchType.EAGER, mappedBy = "behandling", cascade = [CascadeType.ALL], orphanRemoval = true) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/BehandlingDto.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/BehandlingDto.kt index a06e3e61a..81e3254df 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/BehandlingDto.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/BehandlingDto.kt @@ -35,6 +35,7 @@ data class BehandlingDto( @JsonFormat(pattern = "yyyy-MM-dd") val virkningsDato: LocalDate? = null, val soknadRefId: Long? = null, + val grunnlagspakkeId: Long? = null, val aarsak: ForskuddAarsakType? = null, val virkningsTidspunktBegrunnelseMedIVedtakNotat: String? = null, val virkningsTidspunktBegrunnelseKunINotat: String? = null, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/UpdateBehandlingRequest.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/UpdateBehandlingRequest.kt new file mode 100644 index 000000000..6cf34d1f1 --- /dev/null +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/UpdateBehandlingRequest.kt @@ -0,0 +1,5 @@ +package no.nav.bidrag.behandling.dto.behandling + +data class UpdateBehandlingRequest( + val grunnlagspakkeId: Long? = null, +) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/UpdateBehandlingRequestExtended.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/UpdateBehandlingRequestExtended.kt deleted file mode 100644 index e317420b2..000000000 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/behandling/UpdateBehandlingRequestExtended.kt +++ /dev/null @@ -1,22 +0,0 @@ -package no.nav.bidrag.behandling.dto.behandling - -import com.fasterxml.jackson.annotation.JsonFormat -import io.swagger.v3.oas.annotations.media.Schema -import jakarta.persistence.EnumType -import jakarta.persistence.Enumerated -import no.nav.bidrag.behandling.database.datamodell.SoknadFraType -import no.nav.bidrag.behandling.database.datamodell.SoknadType -import java.util.Date - -data class UpdateBehandlingRequestExtended( - @Enumerated(EnumType.STRING) - val soknadType: SoknadType, - @Enumerated(EnumType.STRING) - val soknadFraType: SoknadFraType, - @Schema(type = "string", format = "date", example = "2025-01-25") - @JsonFormat(pattern = "yyyy-MM-dd") - val datoFom: Date, - @Schema(type = "string", format = "date", example = "2025-01-25") - @JsonFormat(pattern = "yyyy-MM-dd") - val mottatDato: Date, -) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt index bccc6c421..e2dc63e0d 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt @@ -41,15 +41,15 @@ class BehandlingService( enhet = behandling.behandlerEnhet, roller = behandling.tilForsendelseRolleDto(), behandlingInfo = - BehandlingInfoDto( - behandlingId = behandling.id, - soknadId = behandling.soknadId, - soknadFra = behandling.soknadFra, - behandlingType = behandling.behandlingType.name, - stonadType = behandling.stonadType, - engangsBelopType = behandling.engangsbelopType, - vedtakType = behandling.soknadType.tilVedtakType(), - ), + BehandlingInfoDto( + behandlingId = behandling.id, + soknadId = behandling.soknadId, + soknadFra = behandling.soknadFra, + behandlingType = behandling.behandlingType.name, + stonadType = behandling.stonadType, + engangsBelopType = behandling.engangsbelopType, + vedtakType = behandling.soknadType.tilVedtakType(), + ), ), ) } @@ -184,4 +184,14 @@ class BehandlingService( behandlingRepository.delete(behandling) } } + + fun updateBehandling( + behandlingId: Long, + grunnlagspakkeId: Long?, + ) { + hentBehandlingById(behandlingId).let { + it.grunnlagspakkeId = grunnlagspakkeId + behandlingRepository.save(it) + } + } } diff --git a/src/main/resources/db/migration/V1.0.29__grunnlagspakke_id.sql b/src/main/resources/db/migration/V1.0.29__grunnlagspakke_id.sql new file mode 100644 index 000000000..f5e27de95 --- /dev/null +++ b/src/main/resources/db/migration/V1.0.29__grunnlagspakke_id.sql @@ -0,0 +1,2 @@ +ALTER TABLE BEHANDLING + ADD COLUMN GRUNNLAGSPAKKE_ID INT DEFAULT NULL; \ No newline at end of file diff --git a/src/test/kotlin/no/nav/bidrag/behandling/controller/BehandlingControllerTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/controller/BehandlingControllerTest.kt index 2ea46eb43..d8b0a1aea 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/controller/BehandlingControllerTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/controller/BehandlingControllerTest.kt @@ -7,7 +7,9 @@ import no.nav.bidrag.behandling.database.datamodell.SoknadType import no.nav.bidrag.behandling.dto.behandling.BehandlingDto import no.nav.bidrag.behandling.dto.behandling.CreateBehandlingResponse import no.nav.bidrag.behandling.dto.behandling.CreateRolleRolleType +import no.nav.bidrag.behandling.dto.behandling.UpdateBehandlingRequest import no.nav.bidrag.behandling.service.BehandlingService +import no.nav.bidrag.behandling.service.BehandlingServiceTest import no.nav.bidrag.domain.enums.StonadType import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test @@ -94,6 +96,31 @@ class BehandlingControllerTest() : KontrollerTestRunner() { assertEquals(3, behandling.body!!.roller.size) } + @Test + fun `skal oppdatere behandling`() { + val b = behandlingService.createBehandling(BehandlingServiceTest.prepareBehandling()) + + val behandlingRes = + httpHeaderTestRestTemplate.exchange( + "${rootUri()}/behandling/" + b.id, + HttpMethod.PUT, + HttpEntity(UpdateBehandlingRequest(123L)), + Void::class.java, + ) + assertEquals(HttpStatus.OK, behandlingRes.statusCode) + + val updatedBehandling = + httpHeaderTestRestTemplate.exchange( + "${rootUri()}/behandling/${b!!.id}", + HttpMethod.GET, + HttpEntity.EMPTY, + BehandlingDto::class.java, + ) + + assertNotNull(updatedBehandling.body) + assertEquals(123L, updatedBehandling.body!!.grunnlagspakkeId) + } + @Test fun `skal opprette en behandling`() { val roller = diff --git a/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt index e6f186900..a75eaa25d 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt @@ -141,6 +141,15 @@ class BehandlingServiceTest : TestContainerRunner() { assertEquals(1L, deletedCount) } + @Test + fun `skal opprette en behandling med grunnlagspakkeId`() { + val b = createBehandling() + + behandlingService.updateBehandling(b.id!!, 123L) + + assertEquals(123L, behandlingService.hentBehandlingById(b.id!!).grunnlagspakkeId) + } + @Test fun `skal opprette en behandling med inntekter`() { val behandling = prepareBehandling()