--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaTask.java 2016/07/21 11:48:19 3068 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaTask.java 2016/07/22 09:48:05 3069 @@ -1,10 +1,14 @@ package dk.daoas.adressevedligehold.dawa; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.TreeMap; +import com.google.common.base.Splitter; + import dk.daoas.adressevedligehold.MailSender; import dk.daoas.adressevedligehold.beans.Address; import dk.daoas.adressevedligehold.beans.Address.AddressState; @@ -81,10 +85,12 @@ StringBuilder headerSB = new StringBuilder(); headerSB.append("

Indlæsnings rapport for " + regionName + "


"); - int totalAntalNye = 0; - int totalAntalFejl = 0; - int totalAntalUkendt = 0; - int totalAntalDobbelt = 0; + List
totalNye = new ArrayList<>(); + List
totalFejl = new ArrayList<>(); + CountMap totalUkendtDAV = new CountMap(); + CountMap totalDobbeltDav = new CountMap(); + + antalKommuner = kommuner.size(); @@ -150,11 +156,12 @@ } } - totalAntalNye += saveOK.size(); - totalAntalFejl += saveFail.size(); - totalAntalUkendt += ukendteDAV.size(); - totalAntalDobbelt += dobbeltGadeidDAV.size(); + totalNye.addAll(saveOK); + totalFejl.addAll(saveFail); + totalUkendtDAV.putAll(ukendteDAV); + totalDobbeltDav.putAll(dobbeltGadeidDAV); + antalBehandlede++; @@ -166,55 +173,69 @@ sb.append("Antal insert fails: " + saveFail.size() + "
\n"); sb.append("Antal ukendte dav: " + ukendteDAV.size() + "
\n"); sb.append("Antal dobbelt gadeid dav: " + dobbeltGadeidDAV.size() + "
\n"); - - sb.append("

Adresser ok:

\n"); - addressTable(sb, saveOK); - - sb.append("

SQL INSERT fejl:

\n"); - addressTable(sb, saveFail); - - sb.append("

Ukendte DAV:

\n"); - for (Map.Entry dav : ukendteDAV.entrySet()) { - sb.append(dav.getKey() + " : " + dav.getValue() + "
\n"); - } - - sb.append("

Dobbelt gadeid DAV:

\n"); - for (Map.Entry dav : dobbeltGadeidDAV.entrySet()) { - sb.append(dav.getKey() + " : " + dav.getValue() + "
\n"); - } } + logger.info("Sendingreport mail"); - headerSB.append("Antal Inserts: " + totalAntalNye + "
\n"); - headerSB.append("Antal insert fails: " + totalAntalFejl + "
\n"); - headerSB.append("Antal ukendte dav: " + totalAntalUkendt + "
\n"); - headerSB.append("Antal dobbelt gadeid dav: " + totalAntalDobbelt + "
\n"); + headerSB.append("Antal Inserts: " + totalNye.size() + "
\n"); + headerSB.append("Antal insert fails: " + totalFejl.size() + "
\n"); + headerSB.append("Antal ukendte dav: " + totalUkendtDAV.size() + "
\n"); + headerSB.append("Antal dobbelt gadeid dav: " + totalDobbeltDav.size() + "
\n"); headerSB.append("Elapsed: " + timer.getElapsed() + " ms.
\n"); - MailSender.sendMail(subject, headerSB.toString() + sb.toString() ); + Map attachments = new TreeMap<>(); + attachments.put("saveok.csv", buildAddressFile(totalNye) ); + attachments.put("savefailed.csv", buildAddressFile(totalFejl) ); + + attachments.put("ukendte_dav.csv", buildDavFile(totalUkendtDAV) ); + attachments.put("dobbelt_dav_gadeid.csv", buildDavFile(totalDobbeltDav) ); + + + MailSender.sendMailWithAttachments(subject, headerSB.toString() + sb.toString(), attachments); //Cleaning dedup.clear(); } - private void addressTable(StringBuilder sb, List
addr) { - sb.append("\n"); - sb.append(""); + private String buildDavFile(CountMap dav) { + StringBuilder sb = new StringBuilder(); + + sb.append("Gadeid;Vejnavn;Antal\r\n"); + for ( Entry entry : dav.entrySet()) { + + List split = Splitter.on(' ').limit(2).splitToList(entry.getKey()); + sb.append( split.get(0) ).append(";");//gadeid + sb.append( split.get(1) ).append(";");//vejnavn + + sb.append( entry.getValue() ).append("\r\n");//vejnavn + + } + + return sb.toString(); + } + + private String buildAddressFile(List
addr) { + + Collections.sort(addr); //brug dens egen compareTo funktion + + StringBuilder sb = new StringBuilder(); + + sb.append("GadeID;Postnr;Kom.kode;Vejkode;Vejnavn;Husnr;Litra\r\n"); for (Address a: addr) { - sb.append("
"); - sb.append(""); - sb.append(""); - sb.append(""); - sb.append(""); - sb.append(""); - sb.append(""); - sb.append(""); + sb.append(a.gadeid).append(";"); + sb.append(a.postnr).append(";"); + sb.append(a.kommunekode).append(";"); + sb.append(a.vejkode).append(";"); + sb.append(a.vejnavn).append(";"); + sb.append(a.husnr).append(";"); + sb.append(a.husnrbogstav).append("\r\n"); } - sb.append("
GadeIDPostnrKom.kodeVejkodeVejnavnHusnrLitra
 ").append(a.gadeid).append("  ").append(a.postnr).append("  ").append(a.kommunekode).append("  ").append(a.vejkode).append("  ").append(a.vejnavn).append("  ").append(a.husnr).append("  ").append(a.husnrbogstav).append("

\n"); + return sb.toString(); } + String getDAVid(Address addr) { String dav = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode);