diff --git a/brmo-commandline/pom.xml b/brmo-commandline/pom.xml index 97e67a852e..cf50258f98 100644 --- a/brmo-commandline/pom.xml +++ b/brmo-commandline/pom.xml @@ -124,7 +124,7 @@ true - ../lib/ + ./lib/ nl.b3p.brmo.commandline.Main true true diff --git a/brmo-commandline/src/main/java/nl/b3p/brmo/commandline/Main.java b/brmo-commandline/src/main/java/nl/b3p/brmo/commandline/Main.java index 4b9e6c6c09..9b3ab71886 100644 --- a/brmo-commandline/src/main/java/nl/b3p/brmo/commandline/Main.java +++ b/brmo-commandline/src/main/java/nl/b3p/brmo/commandline/Main.java @@ -17,6 +17,8 @@ import java.util.Comparator; import java.util.List; import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.stream.Stream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -99,7 +101,11 @@ private static Options buildOptions() { .longOpt("torsgbbgt").optionalArg(true).numberOfArgs(1).argName("[loadingUpdate]").build(), // export Option.builder("e").desc("Maak van berichten uit staging gezipte xml-files in de opgegeven directory. Dit zijn alleen BRK mutaties van GDS2 processen.") - .longOpt("exportgds").hasArg().numberOfArgs(1).type(File.class).argName("output-directory").build() + .longOpt("exportgds").hasArg().numberOfArgs(1).type(File.class).argName("output-directory").build(), + // + Option.builder("al").desc("Controleer of de berichtin in de opgegeven afgiftelijst in de staging staan.") + .longOpt("afgiftelijst").hasArg().numberOfArgs(1).type(File.class).argName("afgiftelijst").build() + }); Options options = new Options(); @@ -236,7 +242,10 @@ public static void main(String... args) { exitcode = delete(dsStaging, cl.getOptionValue("delete")); } else if (cl.hasOption("exportgds")) { exitcode = getMutations(dsStaging, cl.getOptionValues("exportgds")); - } // ---------------- + } else if(cl.hasOption("afgiftelijst")){ + exitcode = checkAfgiftelijst(dsStaging, cl.getOptionValue("afgiftelijst")); + } + // ---------------- // rsgb commando's else if (cl.hasOption("torsgb")) { exitcode = toRsgb(dsStaging, dsRsgb, cl.getOptionValue("berichtstatus", "ignore")); @@ -389,6 +398,22 @@ private static int list(DataSource ds, String format) throws BrmoException { brmo.closeBrmoFramework(); return 0; } + + private static int checkAfgiftelijst(DataSource ds, String input) throws BrmoException { + try { + LOG.info("Afgiftelijst controleren."); + BrmoFramework brmo = new BrmoFramework(ds, null); + String response = brmo.checkAfgiftelijst(input); + System.out.print("Afgifte gecontroleerd:"); + System.out.println(response); + + brmo.closeBrmoFramework(); + return 0; + } catch (IOException ex) { + System.err.println("Error reading afgiftelijst: " + ex.getLocalizedMessage()); + return 1; + } + } private static int berichtStatus(DataSource ds, String format) throws BrmoException { LOG.info("Ophalen bericht status informatie."); diff --git a/brmo-loader/nb-configuration.xml b/brmo-loader/nb-configuration.xml index e12fba1993..0fdc0057d8 100644 --- a/brmo-loader/nb-configuration.xml +++ b/brmo-loader/nb-configuration.xml @@ -13,6 +13,6 @@ You can copy and paste the single properties, into the pom.xml file and the IDE That way multiple projects can share the same settings (useful for formatting rules for example). Any value defined here will override the pom.xml file value but is only applicable to the current project. --> - agpl30 + agpl diff --git a/brmo-loader/pom.xml b/brmo-loader/pom.xml index 340cd767dc..af5df35b5a 100644 --- a/brmo-loader/pom.xml +++ b/brmo-loader/pom.xml @@ -13,6 +13,14 @@ BRMO loader BRMO data loader module. + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + nl.b3p topnlparser diff --git a/brmo-loader/src/main/java/nl/b3p/brmo/loader/BrmoFramework.java b/brmo-loader/src/main/java/nl/b3p/brmo/loader/BrmoFramework.java index 5e7ed1634c..8c64901291 100644 --- a/brmo-loader/src/main/java/nl/b3p/brmo/loader/BrmoFramework.java +++ b/brmo-loader/src/main/java/nl/b3p/brmo/loader/BrmoFramework.java @@ -2,6 +2,7 @@ import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; @@ -631,4 +632,8 @@ public long getCountJob() throws BrmoException { throw new BrmoException(ex); } } + + public String checkAfgiftelijst(String bestand) throws IOException{ + return stagingProxy.checkAfgifteLijst(bestand); + } } diff --git a/brmo-loader/src/main/java/nl/b3p/brmo/loader/StagingProxy.java b/brmo-loader/src/main/java/nl/b3p/brmo/loader/StagingProxy.java index ca5a531508..ff2fef12cd 100644 --- a/brmo-loader/src/main/java/nl/b3p/brmo/loader/StagingProxy.java +++ b/brmo-loader/src/main/java/nl/b3p/brmo/loader/StagingProxy.java @@ -15,8 +15,11 @@ import java.util.Arrays; import java.util.Date; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.sql.DataSource; import javax.xml.transform.TransformerException; +import nl.b3p.brmo.loader.checks.AfgifteChecker; import nl.b3p.brmo.loader.entity.Bericht; import nl.b3p.brmo.loader.entity.BerichtenSorter; import nl.b3p.brmo.loader.entity.LaadProces; @@ -1036,4 +1039,11 @@ public void setBatchCapacity(Integer batchCapacity) { public void setLimitStandBerichtenToTransform(Integer limitStandBerichtenToTransform) { this.limitStandBerichtenToTransform = limitStandBerichtenToTransform; } + + public String checkAfgifteLijst(String bestand) throws IOException { + AfgifteChecker checker = new AfgifteChecker(); + checker.init(bestand); + checker.check(); + return checker.getResults(); + } } diff --git a/pom.xml b/pom.xml index d84916f668..5aeaeec457 100644 --- a/pom.xml +++ b/pom.xml @@ -495,6 +495,17 @@ jdom2 2.0.6 + + org.apache.poi + poi + 4.1.0 + + + org.apache.poi + poi-ooxml + 4.1.0 + + com.h2database