diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/service/MigrateDokumentService.java b/apps/dolly-backend/src/main/java/no/nav/dolly/service/MigrateDokumentService.java index e4ca92d41d..ca7a7c8afc 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/service/MigrateDokumentService.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/service/MigrateDokumentService.java @@ -24,6 +24,7 @@ import static no.nav.dolly.domain.jpa.Dokument.DokumentType.BESTILLING_HISTARK; import static no.nav.dolly.domain.jpa.Dokument.DokumentType.MAL_BESTILLING_DOKARKIV; import static no.nav.dolly.domain.jpa.Dokument.DokumentType.MAL_BESTILLING_HISTARK; +import static org.apache.commons.lang3.StringUtils.isNotBlank; @Slf4j @Service @@ -48,14 +49,12 @@ private void migrateMalBestillinger(Iterable query, TriConsumer { - try { - var utvidetBestilling = objectMapper.readValue(bestilling.getBestKriterier(), RsDollyUtvidetBestilling.class); - lagreDokument.apply(utvidetBestilling, bestilling.getId(), dokumentType); - var oppdatertBestilling = objectMapper.writeValueAsString(utvidetBestilling); - bestilling.setBestKriterier(oppdatertBestilling); - } catch (JsonProcessingException e) { - log.error("Feil ved konvertering av bestilling {}, {} ", bestilling.getId(), e.getMessage(), e); + .forEach(malBestilling -> { + var utvidetBestilling = fromJson(malBestilling.getBestKriterier(), malBestilling.getId()); + if (nonNull(utvidetBestilling)) { + lagreDokument.apply(utvidetBestilling, malBestilling.getId(), dokumentType); + var oppdatertBestilling = toJson(utvidetBestilling, malBestilling.getId()); + malBestilling.setBestKriterier(isNotBlank(oppdatertBestilling) ? oppdatertBestilling : malBestilling.getBestKriterier()); } }); } @@ -65,13 +64,11 @@ private void migrateBestillinger(Iterable query, TriConsumer { - try { - var utvidetBestilling = objectMapper.readValue(bestilling.getBestKriterier(), RsDollyUtvidetBestilling.class); + var utvidetBestilling = fromJson(bestilling.getBestKriterier(), bestilling.getId()); + if (nonNull(utvidetBestilling)) { lagreDokument.apply(utvidetBestilling, bestilling.getId(), dokumentType); - var oppdatertBestilling = objectMapper.writeValueAsString(utvidetBestilling); - bestilling.setBestKriterier(oppdatertBestilling); - } catch (JsonProcessingException e) { - log.error("Feil ved konvertering av bestilling {}, {} ", bestilling.getId(), e.getMessage(), e); + var oppdatertBestilling = toJson(utvidetBestilling, bestilling.getId()); + bestilling.setBestKriterier(isNotBlank(oppdatertBestilling) ? oppdatertBestilling : bestilling.getBestKriterier()); } }); } @@ -109,4 +106,26 @@ private Long lagreDokument(String fysiskDokument, Long bestillingId, DokumentTyp .bestillingId(bestillingId) .build()).getId(); } + + private RsDollyUtvidetBestilling fromJson(String kriterier, Long bestillingId) { + + try { + return objectMapper.readValue(kriterier, RsDollyUtvidetBestilling.class); + + } catch (JsonProcessingException e) { + log.error("Konvertering fra JSON av bestilling {} feilet: {} ", bestillingId, e.getMessage(), e); + return null; + } + } + + private String toJson(RsDollyUtvidetBestilling dollyUtvidetBestilling, Long bestillingId) { + + try { + return objectMapper.writeValueAsString(dollyUtvidetBestilling); + + } catch (JsonProcessingException e) { + log.error("Konvertering til JSON av bestilling {} feilet, {} ", bestillingId, e.getMessage(), e); + return null; + } + } }