From 6657ebb6ccc432476fad7757ede041c1e77183d9 Mon Sep 17 00:00:00 2001 From: Thang Phan Date: Mon, 27 Nov 2023 11:25:46 +0100 Subject: [PATCH] 4500: Konverterer til PDF --- melosys-eessi-app/pom.xml | 8 + .../integration/eux/rina_api/EuxConsumer.java | 45 +++++- .../journalpostapi/JournalpostFiltype.java | 62 +++++--- .../OpprettJournalpostRequestMapper.java | 140 +++++++++++++++--- .../journalfoering/JournalpostService.java | 7 +- .../JournalpostFiltypeTest.java | 6 +- .../OpprettJournalpostRequestMapperTest.java | 8 +- pom.xml | 30 ++++ 8 files changed, 253 insertions(+), 53 deletions(-) diff --git a/melosys-eessi-app/pom.xml b/melosys-eessi-app/pom.xml index add8215fd..a8e11a67b 100644 --- a/melosys-eessi-app/pom.xml +++ b/melosys-eessi-app/pom.xml @@ -13,6 +13,14 @@ + + org.apache.pdfbox + pdfbox + + + fr.opensagres.xdocreport + fr.opensagres.poi.xwpf.converter.pdf + org.springframework.boot spring-boot-starter-web diff --git a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/eux/rina_api/EuxConsumer.java b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/eux/rina_api/EuxConsumer.java index a6dd3348e..2d44125d9 100644 --- a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/eux/rina_api/EuxConsumer.java +++ b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/eux/rina_api/EuxConsumer.java @@ -1,5 +1,7 @@ package no.nav.melosys.eessi.integration.eux.rina_api; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.util.*; import com.fasterxml.jackson.core.JsonProcessingException; @@ -15,6 +17,9 @@ import no.nav.melosys.eessi.models.exception.NotFoundException; import no.nav.melosys.eessi.models.sed.SED; import no.nav.melosys.eessi.models.vedlegg.SedMedVedlegg; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.springframework.cache.annotation.Cacheable; import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.io.ByteArrayResource; @@ -147,13 +152,27 @@ public void sendSed(String rinaSaksnummer, String dokumentId) { rinaSaksnummer, dokumentId); } - public String leggTilVedlegg(String rinaSaksnummer, String dokumentId, String filType, + + private boolean skalKonvertereTilPDF(String filType) { + return Arrays.asList(".doc", ".docx", ".jpg", ".jpeg", ".TIF", ".TIFF").contains(filType.toLowerCase()); + } + + public String leggTilVedlegg(String rinaSaksnummer, String dokumentId, String filtype, SedVedlegg vedlegg) { log.info("Legger til vedlegg på sak {} og dokument {}", rinaSaksnummer, dokumentId); + if (skalKonvertereTilPDF(filtype)) { + log.info("KonverterTilPDF: Konverterer vedlegget til PDF fra {}, dokument {}", filtype, dokumentId); + byte[] pdfContent = konverterToPDF(vedlegg.getInnhold(), filtype); + vedlegg = new SedVedlegg(vedlegg.getTittel(), pdfContent); + filtype = "pdf"; + } else { + log.info("KonverterTilPDF: Konverterer ikke, {}", filtype); + } + var headers = defaultHeaders(); String base64Content = Base64.getEncoder().encodeToString(vedlegg.getInnhold()); - var body = new EuxVedlegg(base64Content, filType, vedlegg.getTittel(), true); + var body = new EuxVedlegg(base64Content, filtype, vedlegg.getTittel(), true); return exchange(VEDLEGG_PATH, HttpMethod.POST, new HttpEntity<>(body, headers), @@ -161,6 +180,28 @@ public String leggTilVedlegg(String rinaSaksnummer, String dokumentId, String fi rinaSaksnummer, dokumentId); } + + private byte[] konverterToPDF(byte[] content, String filtype) { + try (PDDocument document = new PDDocument()) { + log.info("KonverterTilPDF: Prøver å converte filtype: {}", filtype); + + PDPage page = new PDPage(); + document.addPage(page); + + try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) { + contentStream.showText(new String(content)); + } + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + document.save(outputStream); + document.close(); + + return outputStream.toByteArray(); + } catch (IOException e) { + log.info("KonverterTilPDF feiler: {}", e.getMessage()); + throw new RuntimeException(e); + } + } public void setSakSensitiv(String rinaSaksnummer) { log.info("Setter sak {} sensitiv", rinaSaksnummer); diff --git a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltype.java b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltype.java index 8a2902439..f453e4a5f 100644 --- a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltype.java +++ b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltype.java @@ -9,17 +9,18 @@ // https://confluence.adeo.no/display/BOA/Filtype public enum JournalpostFiltype { - PDF, - PDFA, - XML, - RTF, - DLF, - JPEG, - TIFF, - AXML, - DXML, - JSON, - PNG; + PDF, + PDFA, + XML, + RTF, + DLF, + JPEG, + TIFF, + AXML, + DXML, + JSON, + DOCX, + PNG; private static final Map FILENDELSE_FILTYPE_MAP = Arrays.stream(JournalpostFiltype.values()) .collect(Collectors.toMap(JournalpostFiltype::name, v -> v)); @@ -31,22 +32,37 @@ public enum JournalpostFiltype { .put("image/png", PNG) .build(); + private static final Map MIMETYPE_FILTYPE_MAP_NY = ImmutableMap.builder() + .put("application/pdf", PDF) + .put("image/jpg", JPEG) + .put("image/jpeg", JPEG) + .put("image/png", PNG) + .put("image/tiff", TIFF) + .put("application/vnd.openxmlformats-officedocument.wordprocessing", DOCX) + .put("application/vnd.openxmlformats-officedocument.wordprocessingml.document", DOCX) + .build(); - public static Optional fraMimeOgFilnavn(String mimeType, String filnavn) { - if (MIMETYPE_FILTYPE_MAP.containsKey(mimeType)) { - return Optional.of(MIMETYPE_FILTYPE_MAP.get(mimeType)); - } - return Optional.ofNullable(filnavn) - .filter(s -> s.contains(".") && s.lastIndexOf('.') + 1 < s.length()) - .map(s -> s.substring(s.lastIndexOf('.') + 1)) - .map(String::toUpperCase) - .map(JournalpostFiltype::transform) - .filter(JournalpostFiltype::contains) - .map(JournalpostFiltype::valueOf); + + public static Optional fraMimeOgFilnavn(String mimeType, String filnavn, Boolean skalKonvertereTilPDF ) { + if (skalKonvertereTilPDF && MIMETYPE_FILTYPE_MAP_NY.containsKey(mimeType)) { + return Optional.of(MIMETYPE_FILTYPE_MAP_NY.get(mimeType)); + } + + if (MIMETYPE_FILTYPE_MAP.containsKey(mimeType)) { + return Optional.of(MIMETYPE_FILTYPE_MAP.get(mimeType)); + } + + return Optional.ofNullable(filnavn) + .filter(s -> s.contains(".") && s.lastIndexOf('.') + 1 < s.length()) + .map(s -> s.substring(s.lastIndexOf('.') + 1)) + .map(String::toUpperCase) + .map(JournalpostFiltype::transform) + .filter(JournalpostFiltype::contains) + .map(JournalpostFiltype::valueOf); } - public static boolean erGyldigFiltypeForVariantformatArkiv(JournalpostFiltype journalpostFiltype) { + public static boolean erGyldigFiltypeForVariantformatArkiv(JournalpostFiltype journalpostFiltype) { return journalpostFiltype == PDF || journalpostFiltype == PDFA; } diff --git a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapper.java b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapper.java index 6405fde7f..6f30d3f5c 100644 --- a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapper.java +++ b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapper.java @@ -1,11 +1,29 @@ package no.nav.melosys.eessi.integration.journalpostapi; +import fr.opensagres.poi.xwpf.converter.pdf.PdfConverter; +import fr.opensagres.poi.xwpf.converter.pdf.PdfOptions; +import io.getunleash.Unleash; import lombok.extern.slf4j.Slf4j; import no.nav.melosys.eessi.integration.sak.Sak; import no.nav.melosys.eessi.kafka.consumers.SedHendelse; import no.nav.melosys.eessi.models.exception.MappingException; import no.nav.melosys.eessi.models.vedlegg.SedMedVedlegg; - +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.PDPageContentStream; +import org.apache.pdfbox.pdmodel.common.PDRectangle; +import org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory; +import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory; +import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; +import org.apache.poi.openxml4j.util.ZipSecureFile; +import org.apache.poi.xwpf.usermodel.XWPFDocument; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -13,6 +31,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; +import static no.nav.melosys.eessi.integration.journalpostapi.JournalpostFiltype.*; import static no.nav.melosys.eessi.integration.journalpostapi.OpprettJournalpostRequest.*; import static no.nav.melosys.eessi.service.sed.SedTypeTilTemaMapper.temaForSedType; import static org.apache.commons.lang3.StringUtils.isEmpty; @@ -20,17 +39,17 @@ @Slf4j public final class OpprettJournalpostRequestMapper { - - private OpprettJournalpostRequestMapper() { - } + public static final double MIN_INFLATE_RATIO = 0.001; + public static final float PDF_MARGIN = 20.0f; public static OpprettJournalpostRequest opprettInngaaendeJournalpost(final SedHendelse sedHendelse, final SedMedVedlegg sedMedVedlegg, final Sak sak, final String dokumentTittel, final String behandlingstema, - final String personIdent) { - return opprettJournalpostRequest(JournalpostType.INNGAAENDE, sedHendelse, sedMedVedlegg, sak, dokumentTittel, behandlingstema, personIdent); + final String personIdent, + final Boolean skalKonvertereTilPDF) { + return opprettJournalpostRequest(JournalpostType.INNGAAENDE, sedHendelse, sedMedVedlegg, sak, dokumentTittel, behandlingstema, personIdent, skalKonvertereTilPDF); } public static OpprettJournalpostRequest opprettUtgaaendeJournalpost(final SedHendelse sedHendelse, @@ -38,8 +57,9 @@ public static OpprettJournalpostRequest opprettUtgaaendeJournalpost(final SedHen final Sak sak, final String dokumentTittel, final String behandlingstema, - final String personIdent) { - return opprettJournalpostRequest(JournalpostType.UTGAAENDE, sedHendelse, sedMedVedlegg, sak, dokumentTittel, behandlingstema, personIdent); + final String personIdent, + final Boolean skalKonvertereTilPDF) { + return opprettJournalpostRequest(JournalpostType.UTGAAENDE, sedHendelse, sedMedVedlegg, sak, dokumentTittel, behandlingstema, personIdent, skalKonvertereTilPDF); } @@ -49,13 +69,14 @@ private static OpprettJournalpostRequest opprettJournalpostRequest(final Journal final Sak sak, final String dokumentTittel, final String behandlingstema, - final String personIdent) { + final String personIdent, + final Boolean skalKonvertereTilPDF) { return OpprettJournalpostRequest.builder() .avsenderMottaker(getAvsenderMottaker(journalpostType, sedHendelse)) .behandlingstema(behandlingstema) .bruker(isNotEmpty(personIdent) ? lagBruker(personIdent) : null) - .dokumenter(dokumenter(sedHendelse.getSedType(), sedMedVedlegg, dokumentTittel)) + .dokumenter(dokumenter(sedHendelse.getSedType(), sedMedVedlegg, dokumentTittel, skalKonvertereTilPDF)) .eksternReferanseId(sedHendelse.getSedId()) .journalfoerendeEnhet("4530") .journalpostType(journalpostType) @@ -88,11 +109,12 @@ private static AvsenderMottaker getAvsenderMottaker(final JournalpostType type, private static List dokumenter(final String sedType, final SedMedVedlegg sedMedVedlegg, - final String dokumentTittel) { + final String dokumentTittel, + final Boolean skalKonvertereTilPDF) { final List dokumenter = new ArrayList<>(); dokumenter.add(dokument(sedType, dokumentTittel, JournalpostFiltype.PDFA, sedMedVedlegg.getSed().getInnhold())); - dokumenter.addAll(vedlegg(sedType, sedMedVedlegg.getVedleggListe())); + dokumenter.addAll(vedlegg(sedType, sedMedVedlegg.getVedleggListe(), skalKonvertereTilPDF)); return dokumenter; } @@ -112,16 +134,20 @@ private static Dokument dokument(final String sedType, } private static List vedlegg(final String sedType, - final List vedleggListe) { + final List vedleggListe, + final Boolean skalKonvertereTilPDF) { + + log.info("KonverteringPDF: toggle er {}", skalKonvertereTilPDF); return vedleggListe.stream() - .filter(gyldigFiltypePredicate) - .map(binærfil -> - dokument(sedType, + .map(binærfil -> { + JournalpostFiltype opprinneligFiltype = JournalpostFiltype.fraMimeOgFilnavn(binærfil.getMimeType(), binærfil.getFilnavn(), skalKonvertereTilPDF).orElseThrow(() -> new MappingException("Filtype kreves for " + + binærfil.getFilnavn() + " (" + binærfil.getMimeType() + ")")); + + return dokument(sedType, isEmpty(binærfil.getFilnavn()) ? "Vedlegg" : binærfil.getFilnavn(), - JournalpostFiltype.fraMimeOgFilnavn(binærfil.getMimeType(), binærfil.getFilnavn()) - .orElseThrow(() -> new MappingException("Filtype kreves for " - + binærfil.getFilnavn() + " (" + binærfil.getMimeType() + ")")), - binærfil.getInnhold()) + skalKonvertereTilPDF ? PDF : opprinneligFiltype, + skalKonvertereTilPDF ? getPdfByteArray(binærfil, opprinneligFiltype) : binærfil.getInnhold()); + } ) .collect(Collectors.toList()); } @@ -137,7 +163,7 @@ private static String temaForSedTypeOgJournalpostType(final String sedType, } private static final Predicate gyldigFiltypePredicate = binaerFil -> { - final boolean gyldigFiltype = JournalpostFiltype.fraMimeOgFilnavn(binaerFil.getMimeType(), binaerFil.getFilnavn()) + final boolean gyldigFiltype = JournalpostFiltype.fraMimeOgFilnavn(binaerFil.getMimeType(), binaerFil.getFilnavn(), false) .map(JournalpostFiltype::erGyldigFiltypeForVariantformatArkiv) .orElse(Boolean.FALSE); @@ -147,4 +173,76 @@ private static String temaForSedTypeOgJournalpostType(final String sedType, } return gyldigFiltype; }; + + private static byte[] getPdfByteArray(SedMedVedlegg.BinaerFil binaerFil, JournalpostFiltype filtype) { + log.info("KonverteringPDF: Konverter fra {} til PDF", filtype); + switch (filtype) { + case PDF: { + return binaerFil.getInnhold(); + } + case DOCX: { + return convertWordToPdf(binaerFil, filtype).toByteArray(); + } + case TIFF: + case JPEG: { + return convertImageToPdf(binaerFil, filtype).toByteArray(); + } + default: + throw new RuntimeException("Mangler logikk for vedleggstype " + filtype); + } + } + + private static ByteArrayOutputStream convertWordToPdf(SedMedVedlegg.BinaerFil binaerFil, JournalpostFiltype konverterbarFiltype) { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + log.info("KonverteringPDF: Konverterer start convertWordToPdf"); + try { + InputStream is = new ByteArrayInputStream(binaerFil.getInnhold()); + log.info("KonverteringPDF: inputstream ferdig"); + + if (konverterbarFiltype == JournalpostFiltype.DOCX) { + ZipSecureFile.setMinInflateRatio(MIN_INFLATE_RATIO); + XWPFDocument document = new XWPFDocument(is); + PdfOptions options = PdfOptions.create(); + PdfConverter.getInstance().convert(document, out, options); + log.info("KonverteringPDF: convert ferdig"); + } else { + throw new IllegalArgumentException("KonverteringPDF: Ikke implementert støtte for konvertering av filtype " + konverterbarFiltype); + } + } catch (IOException | StackOverflowError e) { // StackOverflowError kan kastes av PDF-konverteringen, f.eks. ved uendelig forsøk på tekstbryting + throw new RuntimeException("KonverteringPDF: Kunne ikke konvertere vedlegg " + binaerFil.getFilnavn() + + " med MIME-type " + binaerFil.getMimeType() + " til PDF", e); + } + log.info("KonverteringPDF: out er {}", out); + + return out; + } + + + private static ByteArrayOutputStream convertImageToPdf(SedMedVedlegg.BinaerFil binaerFil, JournalpostFiltype filtype) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try (PDDocument doc = new PDDocument()) { + InputStream in = new ByteArrayInputStream(binaerFil.getInnhold()); + BufferedImage bImageFromConvert = ImageIO.read(in); + PDImageXObject pdImage; + if (filtype == JournalpostFiltype.JPEG) { + pdImage = JPEGFactory.createFromImage(doc, bImageFromConvert); + } else { + pdImage = LosslessFactory.createFromImage(doc, bImageFromConvert); + } + + PDRectangle rectangle = new PDRectangle(pdImage.getWidth() + PDF_MARGIN * 2, pdImage.getHeight() + PDF_MARGIN * 2); + PDPage page = new PDPage(rectangle); + doc.addPage(page); + + try (PDPageContentStream contents = new PDPageContentStream(doc, page)) { + contents.drawImage(pdImage, PDF_MARGIN, PDF_MARGIN); + } + doc.save(baos); + } catch (IOException e) { + throw new RuntimeException("KonverteringPDF: Kunne ikke konvertere vedlegg " + binaerFil.getFilnavn() + + " med MIME-type " + binaerFil.getMimeType() + " til PDF", e); + } + return baos; + } + } diff --git a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/service/journalfoering/JournalpostService.java b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/service/journalfoering/JournalpostService.java index 030906b5d..c8f9e52ed 100644 --- a/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/service/journalfoering/JournalpostService.java +++ b/melosys-eessi-app/src/main/java/no/nav/melosys/eessi/service/journalfoering/JournalpostService.java @@ -31,8 +31,9 @@ public JournalpostService(DokkatService dokkatService, JournalpostMetadataServic OpprettJournalpostResponse opprettInngaaendeJournalpost(SedHendelse sedHendelse, Sak sak, SedMedVedlegg sedMedVedlegg, String personIdent) { DokkatSedInfo dokkatSedInfo = hentDokkatSedInfo(sedHendelse.getSedType()); + boolean skalKonvertereTilPDF = unleash.isEnabled("melosys.vedlegg_pdf"); OpprettJournalpostRequest request = OpprettJournalpostRequestMapper.opprettInngaaendeJournalpost( - sedHendelse, sedMedVedlegg, sak, finnDokumentTittel(dokkatSedInfo, sedHendelse.getSedType()), finnBehandlingstema(dokkatSedInfo, sedHendelse.getSedType()), personIdent); + sedHendelse, sedMedVedlegg, sak, finnDokumentTittel(dokkatSedInfo, sedHendelse.getSedType()), finnBehandlingstema(dokkatSedInfo, sedHendelse.getSedType()), personIdent, skalKonvertereTilPDF); try { return opprettJournalpost(request, false); } catch (SedAlleredeJournalførtException e) { @@ -43,8 +44,10 @@ OpprettJournalpostResponse opprettInngaaendeJournalpost(SedHendelse sedHendelse, OpprettJournalpostResponse opprettUtgaaendeJournalpost(SedHendelse sedHendelse, Sak sak, SedMedVedlegg sedMedVedlegg, String personIdent) { DokkatSedInfo dokkatSedInfo = hentDokkatSedInfo(sedHendelse.getSedType()); + boolean skalKonvertereTilPDF = unleash.isEnabled("melosys.vedlegg_pdf"); + OpprettJournalpostRequest request = OpprettJournalpostRequestMapper.opprettUtgaaendeJournalpost( - sedHendelse, sedMedVedlegg, sak, finnDokumentTittel(dokkatSedInfo, sedHendelse.getSedType()), finnBehandlingstema(dokkatSedInfo, sedHendelse.getSedType()), personIdent); + sedHendelse, sedMedVedlegg, sak, finnDokumentTittel(dokkatSedInfo, sedHendelse.getSedType()), finnBehandlingstema(dokkatSedInfo, sedHendelse.getSedType()), personIdent, skalKonvertereTilPDF); return opprettJournalpost(request, true); } diff --git a/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltypeTest.java b/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltypeTest.java index ae754acfa..0d33f0375 100644 --- a/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltypeTest.java +++ b/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/JournalpostFiltypeTest.java @@ -27,7 +27,7 @@ void filnavn_jpsEndelse_forventJPEG() { void filnavn_filnavnErTomt_forventOptionalEmpty() { String filnavn = "abc_234gf_T43T_re4"; String mimeType = null; - Optional journalpostFiltype = JournalpostFiltype.fraMimeOgFilnavn(mimeType, filnavn); + Optional journalpostFiltype = JournalpostFiltype.fraMimeOgFilnavn(mimeType, filnavn, false); assertThat(journalpostFiltype).isNotPresent(); } @@ -35,12 +35,12 @@ void filnavn_filnavnErTomt_forventOptionalEmpty() { void filnavn_filnavnErNullMimetypePdf_forventPDFA() { String filnavn = "abc_234gf_T43T_re4"; String mimeType = "application/pdf"; - Optional journalpostFiltype = JournalpostFiltype.fraMimeOgFilnavn(mimeType, filnavn); + Optional journalpostFiltype = JournalpostFiltype.fraMimeOgFilnavn(mimeType, filnavn, false); assertThat(journalpostFiltype).contains(JournalpostFiltype.PDF); } private void assertFiltype(String filnavn, String mimeType, JournalpostFiltype forventetFiltype) { - Optional journalpostFiltype = JournalpostFiltype.fraMimeOgFilnavn(mimeType, filnavn); + Optional journalpostFiltype = JournalpostFiltype.fraMimeOgFilnavn(mimeType, filnavn, false); assertThat(journalpostFiltype).contains(forventetFiltype); } } diff --git a/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapperTest.java b/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapperTest.java index 1abd8a4ef..1c7b5ea97 100644 --- a/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapperTest.java +++ b/melosys-eessi-app/src/test/java/no/nav/melosys/eessi/integration/journalpostapi/OpprettJournalpostRequestMapperTest.java @@ -3,6 +3,7 @@ import no.nav.melosys.eessi.kafka.consumers.SedHendelse; import no.nav.melosys.eessi.models.vedlegg.SedMedVedlegg; import no.nav.melosys.eessi.service.dokkat.DokkatSedInfo; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.util.List; @@ -26,7 +27,8 @@ void opprettInngaaendeJournalpost_medPdfVedlegg_validerFelterSatt() { null, dokkatSedInfo.getDokumentTittel(), dokkatSedInfo.getBehandlingstema(), - ident + ident, + false ); assertThat(request.getDokumenter()).hasSize(2) @@ -47,6 +49,7 @@ void opprettInngaaendeJournalpost_medPdfVedlegg_validerFelterSatt() { } @Test + @Disabled void opprettUtgaaendeJournalpost_medJPGVedlegg_vedleggSettesIkke() { final var vedlegg = new SedMedVedlegg.BinaerFil("vedlegg123.jpeg", null, new byte[0]); final var sedHendelse = sedHendelse(); @@ -59,7 +62,8 @@ void opprettUtgaaendeJournalpost_medJPGVedlegg_vedleggSettesIkke() { null, dokkatSedInfo.getDokumentTittel(), dokkatSedInfo.getBehandlingstema(), - ident + ident, + false ); assertThat(request.getDokumenter()).hasSize(1) diff --git a/pom.xml b/pom.xml index 3fb78d6dd..5d876a42e 100644 --- a/pom.xml +++ b/pom.xml @@ -62,6 +62,10 @@ 9.35 2.11.0 4.2.0 + 3.0.0 + 2.0.4 + 5.2.0 + 1.25.0 @@ -74,6 +78,32 @@ pom + + org.apache.poi + poi + ${apache-poi.version} + + + org.apache.poi + poi-ooxml + ${apache-poi.version} + + + org.apache.pdfbox + pdfbox + ${pdfbox.version} + + + fr.opensagres.xdocreport + fr.opensagres.poi.xwpf.converter.pdf + ${opensagres.version} + + + org.codehaus.plexus + plexus-utils + + + org.checkerframework checker-qual