Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
jankroken-nav committed Oct 14, 2024
1 parent a8b75d7 commit b9090f1
Show file tree
Hide file tree
Showing 20 changed files with 80 additions and 71 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain

import no.nav.pensjon.opptjening.omsorgsopptjening.felles.InnlesingId
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdInnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.InnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdmottakerRepository
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component

@Component
class BarnetrygdmottakerMessageHandler(
private val innlesingRepository: BarnetrygdInnlesingRepository,
private val innlesingRepository: InnlesingRepository,
private val barnetrygdmottakerRepository: BarnetrygdmottakerRepository
) {
companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,13 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.

import no.nav.pensjon.opptjening.omsorgsopptjening.felles.InnlesingId
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.Rådata
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.Topics
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.PersongrunnlagMelding
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.serialize
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.Mdc
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.barnetrygd.BarnetrygdClient
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.barnetrygd.HentBarnetrygdResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdInnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.InnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdmottakerRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.pdl.PdlService
import org.apache.kafka.clients.producer.ProducerRecord
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
Expand All @@ -28,8 +25,8 @@ class BarnetrygdmottakerService(
private val barnetrygdmottakerRepository: BarnetrygdmottakerRepository,
private val kafkaProducer: KafkaTemplate<String, String>,
private val transactionTemplate: TransactionTemplate,
private val barnetrygdInnlesingRepository: BarnetrygdInnlesingRepository,
private val barnetrygdmottakerKompletteringsService: BarnetrygdmottakerKompletteringsService,
private val innlesingRepository: InnlesingRepository,
private val kompletteringsService: KompletteringsService,
@Value("\${OMSORGSOPPTJENING_TOPIC}") val omsorgsopptjeningTopic: String
) {
companion object {
Expand All @@ -43,13 +40,13 @@ class BarnetrygdmottakerService(
år = response.år,
forespurtTidspunkt = Instant.now()
).also {
barnetrygdInnlesingRepository.bestilt(it)
innlesingRepository.bestilt(it)
}
}
}

fun process(): List<Barnetrygdmottaker>? {
return barnetrygdInnlesingRepository.finnAlleFullførte().stream()
return innlesingRepository.finnAlleFullførte().stream()
.map { processForInnlesingId(it) }
.filter { it != null }
.findFirst()
Expand Down Expand Up @@ -83,7 +80,7 @@ class BarnetrygdmottakerService(
transactionTemplate.execute {
barnetrygdmottaker.ferdig().also { barnetrygdmottakerUtenPdlData ->

val komplettert = barnetrygdmottakerKompletteringsService.kompletter(barnetrygdmottakerUtenPdlData)
val komplettert = kompletteringsService.kompletter(barnetrygdmottakerUtenPdlData)

kafkaProducer.send(
createKafkaMessage(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain

import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.PersongrunnlagMelding

data class HentBarnetrygdResponse(
val barnetrygdsaker: List<PersongrunnlagMelding.Persongrunnlag>,
valdataFraKilde: RådataFraKilde
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain

import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.PersongrunnlagMelding

data class HentHjelpestønadResponse(
val perioder: List<PersongrunnlagMelding.Hjelpestønadperiode>,
valdataFraKilde: RådataFraKilde,
)
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain

import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.Kilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.Omsorgstype
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.PersongrunnlagMelding
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.hjelpestønad.HentHjelpestønadResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.hjelpestønad.HentHjelpestønadDBResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.hjelpestønad.HjelpestønadClient
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.hjelpestønad.HjelpestønadType
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.nedreGrense
Expand All @@ -21,14 +20,14 @@ class HjelpestønadService(
// persongrunnlag: PersongrunnlagMelding.Persongrunnlag,
omsorgsmottakere: Set<String>,
filter: GyldigÅrsintervallFilter,
): List<Pair<List<PersongrunnlagMelding.Hjelpestønadperiode>, RådataFraKilde>> {
): List<HentHjelpestønadResponse> {
return omsorgsmottakere.map { omsorgsmottaker ->
hentHjelpestønad(
fnr = omsorgsmottaker,
fom = filter.min(),
tom = filter.max()
).let { response ->
response.vedtak.mapNotNull { vedtak ->
val hjelpestønadperioder = response.vedtak.mapNotNull { vedtak ->
val fom = nedreGrense(
måned = vedtak.fom,
grense = filter.min()
Expand Down Expand Up @@ -64,12 +63,13 @@ class HjelpestønadService(
)
}
}
} to response.rådataFraKilde
}
HentHjelpestønadResponse(hjelpestønadperioder, response.rådataFraKilde)
}
}
}

private fun hentHjelpestønad(fnr: String, fom: YearMonth, tom: YearMonth): HentHjelpestønadResponse {
private fun hentHjelpestønad(fnr: String, fom: YearMonth, tom: YearMonth): HentHjelpestønadDBResponse {
return hjelpestønadClient.hentHjelpestønad(fnr = fnr, fom = fom.atDay(1), tom = tom.atEndOfMonth())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.Rådata
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.PersongrunnlagMelding
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.barnetrygd.BarnetrygdClient
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.barnetrygd.HentBarnetrygdResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.pdl.PdlService
import org.springframework.stereotype.Service

@Service
class BarnetrygdmottakerKompletteringsService(
class KompletteringsService(
val pdlService: PdlService,
private val client: BarnetrygdClient,
private val hjelpestønadService: HjelpestønadService,
) {

fun kompletter(barnetrygdmottakerUtenPdlData: Barnetrygdmottaker.Mottatt): KomplettertBarnetrygdMottaker {
fun kompletter(barnetrygdmottakerUtenPdlData: Barnetrygdmottaker.Mottatt): Komplettert {
val filter = GyldigÅrsintervallFilter(barnetrygdmottakerUtenPdlData.år)

val personId = pdlService.hentPerson(barnetrygdmottakerUtenPdlData.ident)
println("%%% PERSON: $personId")

val barnetrygdmottaker = barnetrygdmottakerUtenPdlData.withPerson(personId)

val barnetrygdResponse = hentBarnetrygd(personId, filter)
val barnetrygdmottaker = barnetrygdmottakerUtenPdlData.withPerson(
pdlService.hentPerson(barnetrygdmottakerUtenPdlData.ident)
)

val barnetrygdRådata = barnetrygdResponse.map { it.rådataFraKilde }
val barnetrygdResponse = hentBarnetrygd(barnetrygdmottaker, filter)

val persongrunnlag = barnetrygdResponse.map {
getPersongrunnlag(it)
Expand All @@ -35,20 +31,22 @@ class BarnetrygdmottakerKompletteringsService(
hentHjelpestønadGrunnlag(it, filter)
}
val hjelpestønadPersongrunnlag = hjelpestønadGrunnlag.flatMap {
it.map { it.first }
it.map { pair -> pair.first }
}

val barnetrygdRådata = barnetrygdResponse.map { it.rådataFraKilde }

val hjelpestønadRådata = hjelpestønadGrunnlag.flatMap {
it.flatMap { it.second }
it.flatMap { pair -> pair.second }
}

val rådata = Rådata(barnetrygdRådata + hjelpestønadRådata)

val komplettert = KomplettertBarnetrygdMottaker(
return Komplettert(
barnetrygdmottaker = barnetrygdmottaker,
rådata = rådata,
hjelpestønadPersongrunnlag = hjelpestønadPersongrunnlag,
)
return komplettert
}

private fun hentHjelpestønadGrunnlag(
Expand All @@ -59,10 +57,10 @@ class BarnetrygdmottakerKompletteringsService(
}

private fun hentBarnetrygd(
personId: PersonId,
barnetrygdMottaker: Barnetrygdmottaker.Mottatt,
filter: GyldigÅrsintervallFilter
): List<HentBarnetrygdResponse> {
return personId.historiske.map { fnr ->
return barnetrygdMottaker.personId!!.historiske.map { fnr ->
client.hentBarnetrygd(
ident = fnr,
filter = filter,
Expand All @@ -78,8 +76,8 @@ class BarnetrygdmottakerKompletteringsService(
omsorgsmottakere = persongrunnlag.hentOmsorgsmottakere(),
filter = filter
)
val hjelpestønadRådata = hjelpestønad.map { it.second }
val hjelpestønadsperioder = hjelpestønad.flatMap { it.first }
val hjelpestønadRådata = hjelpestønad.map { it.rådataFraKilde }
val hjelpestønadsperioder = hjelpestønad.flatMap { it.perioder }
return Pair(persongrunnlag.medHjelpestønadPerioder(hjelpestønadsperioder), hjelpestønadRådata)
}

Expand All @@ -89,7 +87,7 @@ class BarnetrygdmottakerKompletteringsService(
.map { it.value.single() }


data class KomplettertBarnetrygdMottaker(
data class Komplettert(
val barnetrygdmottaker: Barnetrygdmottaker.Mottatt,
valdata: Rådata,
val hjelpestønadPersongrunnlag: List<PersongrunnlagMelding.Persongrunnlag>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.felles.CorrelationId
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.InnlesingId
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.Mdc
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.GyldigÅrsintervallFilter
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.HentBarnetrygdResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.metrics.Metrikker
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Qualifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.felles.deserialize
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde
import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.PersongrunnlagMelding
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.GyldigÅrsintervallFilter
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.HentBarnetrygdResponse
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import java.time.YearMonth
Expand Down Expand Up @@ -76,11 +77,6 @@ object HentBarnetrygdResponseHandler {
}
}

data class HentBarnetrygdResponse(
val barnetrygdsaker: List<PersongrunnlagMelding.Persongrunnlag>,
valdataFraKilde: RådataFraKilde
)

data class HentBarnetrygdException(val msg: String) : RuntimeException(msg)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,15 @@ class HjelpestønadClient(
fnr: String,
fom: LocalDate,
tom: LocalDate
): HentHjelpestønadResponse {
): HentHjelpestønadDBResponse {
return metrikker.målHentHjelpestønad { hentHjelpestønadInternal(fnr, fom, tom) }!!
}

private fun hentHjelpestønadInternal(
fnr: String,
fom: LocalDate,
tom: LocalDate
): HentHjelpestønadResponse {
): HentHjelpestønadDBResponse {
return webClient
.get()
.uri("/api/hjelpestonad?fom=$fom&tom=$tom")
Expand All @@ -56,7 +56,7 @@ class HjelpestønadClient(
.toEntity<String>()
.block()?.let { response ->
response.body?.deserializeList<HjelpestønadVedtak>()?.let {
HentHjelpestønadResponse(
HentHjelpestønadDBResponse(
vedtak = it,
rådataFraKilde = RådataFraKilde(
mapOf(
Expand All @@ -67,7 +67,7 @@ class HjelpestønadClient(
)
)
)
} ?: HentHjelpestønadResponse(
} ?: HentHjelpestønadDBResponse(
vedtak = emptyList(),
rådataFraKilde = RådataFraKilde(
mapOf(
Expand All @@ -88,7 +88,7 @@ class HjelpestønadClient(

data class HentHjelpestønadException(val msg: String) : RuntimeException(msg)

data class HentHjelpestønadResponse(
data class HentHjelpestønadDBResponse(
val vedtak: List<HjelpestønadVedtak>,
valdataFraKilde: RådataFraKilde
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.

import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.BarnetrygdInnlesing
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.BarnetrygdInnlesingException
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdInnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.InnlesingRepository
import org.apache.kafka.clients.consumer.ConsumerRecord
import org.apache.kafka.clients.consumer.ConsumerRecords
import org.slf4j.Logger
Expand All @@ -27,7 +27,7 @@ class BarnetrygdmottakerKafkaErrorHandler(

@Component
class InnlesingInvalidatingRetryListener(
private val innlesingRepository: BarnetrygdInnlesingRepository
private val innlesingRepository: InnlesingRepository
) : RetryListener {

private val invalidated: MutableList<String> = mutableListOf()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.

import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.BarnetrygdInnlesing
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.Barnetrygdmottaker
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdInnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.InnlesingRepository
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.repository.BarnetrygdmottakerRepository
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
Expand All @@ -14,7 +14,7 @@ import kotlin.time.toJavaDuration

@Service
class StatusService(
private val repo: BarnetrygdInnlesingRepository,
private val repo: InnlesingRepository,
private val mottakerRepo: BarnetrygdmottakerRepository,
) {
companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import java.sql.ResultSet
import java.util.*

@Component
class BarnetrygdInnlesingRepository(
class InnlesingRepository(
private val jdbcTemplate: NamedParameterJdbcTemplate,
) {
fun bestilt(innlesing: BarnetrygdInnlesing.Bestilt): BarnetrygdInnlesing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.metrics
import io.micrometer.core.instrument.Counter
import io.micrometer.core.instrument.MeterRegistry
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.Barnetrygdmottaker
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.barnetrygd.HentBarnetrygdResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.hjelpestønad.HentHjelpestønadResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain.HentBarnetrygdResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.external.hjelpestønad.HentHjelpestønadDBResponse
import no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.kafka.BarnetrygdmottakerKafkaMelding
import org.springframework.stereotype.Component
import java.util.*
Expand Down Expand Up @@ -62,11 +62,11 @@ class Metrikker(private val registry: MeterRegistry) {
return hentBarnetrygdTimer.recordCallable(lambda)!!
}

fun målHentHjelpestønad(lambda: () -> HentHjelpestønadResponse?): HentHjelpestønadResponse? {
fun målHentHjelpestønad(lambda: () -> HentHjelpestønadDBResponse?): HentHjelpestønadDBResponse? {
return hentHjelpestonadTimer.recordCallable(lambda)!!
}

fun målHentPdl(lambda: () -> HentHjelpestønadResponse?): HentHjelpestønadResponse? {
fun målHentPdl(lambda: () -> HentHjelpestønadDBResponse?): HentHjelpestønadDBResponse? {
return hentPdlTimer.recordCallable(lambda)!!
}

Expand Down
Loading

0 comments on commit b9090f1

Please sign in to comment.