diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt index 80de13de..9d9bc2c3 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt @@ -2,15 +2,14 @@ package no.nav.sykdig.digitalisering.papirsykmelding import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper -import net.logstash.logback.argument.StructuredArguments import no.nav.sykdig.LoggingMeta import no.nav.sykdig.applog -import no.nav.sykdig.digitalisering.papirsykmelding.api.model.* +import no.nav.sykdig.digitalisering.ferdigstilling.oppgave.OppgaveClient +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.FerdigstillRegistrering +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.PapirManuellOppgave +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.PapirSmRegistering import no.nav.sykdig.digitalisering.papirsykmelding.db.NasjonalOppgaveRepository import no.nav.sykdig.digitalisering.papirsykmelding.db.model.NasjonalManuellOppgaveDAO -import no.nav.sykdig.digitalisering.ferdigstilling.oppgave.PatchFerdigstillNasjonalOppgaveRequest -import no.nav.sykdig.digitalisering.ferdigstilling.oppgave.OppgaveClient -import no.nav.sykdig.digitalisering.ferdigstilling.oppgave.OppgaveStatus import no.nav.sykdig.securelog import org.springframework.stereotype.Service import java.util.* @@ -30,6 +29,12 @@ class NasjonalOppgaveService( } return nasjonalOppgaveRepository.save(mapToDao(papirManuellOppgave, null)) } + + fun oppdaterOppgave(sykmeldingId: String, utfall: String, ferdigstiltAv: String, avvisningsgrunn: String?): NasjonalManuellOppgaveDAO { + return nasjonalOppgaveRepository.save( + mapToUpdateDao(sykmeldingId, utfall, ferdigstiltAv, avvisningsgrunn, nasjonalOppgaveRepository.findBySykmeldingId(sykmeldingId).get())) + } + fun findByOppgaveId(oppgaveId: Int): NasjonalManuellOppgaveDAO? { val oppgave = nasjonalOppgaveRepository.findByOppgaveId(oppgaveId) if (!oppgave.isPresent) return null @@ -45,6 +50,26 @@ class NasjonalOppgaveService( oppgaveClient.ferdigstillNasjonalOppgave(oppgaveId, ferdigstillRegistrering.sykmeldingId, ferdigstillRegistrering, loggingMeta) } + fun mapToUpdateDao(sykmeldingId: String, utfall: String, ferdigstiltAv: String, avvisningsgrunn: String?, existingDao: NasjonalManuellOppgaveDAO): NasjonalManuellOppgaveDAO { + return NasjonalManuellOppgaveDAO( + id = existingDao.id, + sykmeldingId = sykmeldingId, + journalpostId = existingDao.journalpostId, + fnr = existingDao.fnr, + aktorId = existingDao.aktorId, + dokumentInfoId = existingDao.dokumentInfoId, + datoOpprettet = existingDao.datoOpprettet, + oppgaveId = existingDao.oppgaveId, + ferdigstilt = existingDao.ferdigstilt, + papirSmRegistrering = existingDao.papirSmRegistrering, + utfall = utfall, + ferdigstiltAv = ferdigstiltAv, + datoFerdigstilt = existingDao.datoFerdigstilt, + avvisningsgrunn = avvisningsgrunn, + ) + } + + fun mapToDao( papirManuellOppgave: PapirManuellOppgave, existingId: UUID?, @@ -101,6 +126,6 @@ class NasjonalOppgaveService( return nasjonalManuellOppgaveDAO } +} -} diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt index 622d99f4..87f1112b 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt @@ -9,24 +9,29 @@ import no.nav.sykdig.LoggingMeta import no.nav.sykdig.applog import no.nav.sykdig.config.kafka.OK_SYKMELDING_TOPIC import no.nav.sykdig.digitalisering.exceptions.SykmelderNotFoundException +import no.nav.sykdig.digitalisering.felles.Sykmelding import no.nav.sykdig.digitalisering.ferdigstilling.mapping.extractHelseOpplysningerArbeidsuforhet import no.nav.sykdig.digitalisering.ferdigstilling.mapping.fellesformatMarshaller import no.nav.sykdig.digitalisering.ferdigstilling.mapping.get import no.nav.sykdig.digitalisering.ferdigstilling.mapping.toString import no.nav.sykdig.digitalisering.helsenett.SykmelderService import no.nav.sykdig.digitalisering.papirsykmelding.api.RegelClient -import no.nav.sykdig.digitalisering.papirsykmelding.api.model.* +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.FerdigstillRegistrering +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Godkjenning +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.SmRegistreringManuell +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Sykmelder +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Veileder +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.checkValidState +import no.nav.sykdig.digitalisering.papirsykmelding.db.NasjonalSykmeldingRepository import no.nav.sykdig.digitalisering.papirsykmelding.db.model.NasjonalManuellOppgaveDAO +import no.nav.sykdig.digitalisering.papirsykmelding.db.model.NasjonalSykmeldingDAO import no.nav.sykdig.digitalisering.pdl.PersonService import no.nav.sykdig.digitalisering.sykmelding.Merknad +import no.nav.sykdig.digitalisering.sykmelding.ReceivedSykmelding import no.nav.sykdig.digitalisering.sykmelding.Status import no.nav.sykdig.digitalisering.sykmelding.ValidationResult import no.nav.sykdig.digitalisering.sykmelding.service.JournalpostService import no.nav.sykdig.digitalisering.tilgangskontroll.OppgaveSecurityService -import no.nav.sykdig.digitalisering.felles.Sykmelding -import no.nav.sykdig.digitalisering.papirsykmelding.db.NasjonalSykmeldingRepository -import no.nav.sykdig.digitalisering.papirsykmelding.db.model.NasjonalSykmeldingDAO -import no.nav.sykdig.digitalisering.sykmelding.ReceivedSykmelding import no.nav.sykdig.securelog import no.nav.sykdig.utils.getLocalDateTime import no.nav.sykdig.utils.isWhitelisted @@ -145,13 +150,23 @@ class NasjonalSykmeldingService( ) } insertSykmeldingAndSendToKafka(receivedSykmelding, veileder) - nasjonalOppgaveService.lagreOppgave() + nasjonalOppgaveService.oppdaterOppgave( + sykmeldingId = receivedSykmelding.sykmelding.id, + utfall = validationResult.status.toString(), + ferdigstiltAv = veileder.veilederIdent, + avvisningsgrunn = null, + ) // insert into nasjonal_manuellOppgave - ferdigstill. // sykmeldingId: String, // utfall: String, // ferdigstiltAv: String, +// sykmeldingId = sykmeldingId, +// utfall = utfall.toString(), +// ferdigstiltAv = ferdigstiltAv, +// avvisningsgrunn = avvisningsgrunn, + return ResponseEntity(HttpStatus.OK) } log.error( @@ -174,7 +189,7 @@ class NasjonalSykmeldingService( receivedSykmelding.sykmelding.id, ) } catch (exception: Exception) { - log.error("failed to send sykmelding to kafka result for sykmelding {}", receivedSykmelding.sykmelding.id) + log.error("failed to send sykmelding to kafka result for sykmeldingId: {}", receivedSykmelding.sykmelding.id) throw exception } nasjonalSykmeldingRepository.save(mapToDao(receivedSykmelding, veileder))