--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressReport.java 2016/01/24 21:48:55 2838 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressReport.java 2016/02/05 08:01:18 2924 @@ -2,6 +2,7 @@ import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; import java.util.Properties; import javax.mail.Message; @@ -13,11 +14,17 @@ import dk.daoas.adressevedligehold.beans.Address; import dk.daoas.adressevedligehold.beans.Address.AddressState; +import dk.daoas.adressevedligehold.tasks.TaskLogger; import dk.daoas.adressevedligehold.util.TimingHelper; +/* + * TODO: detail rapport pr postnr + * TODO: ved mangel oversigten - skeln mellem om det er nye/CREATED eller om det er gamle kendte adresser + */ + public class AddressReport { - class NumEntry { + static class NumEntry { int open = 0; int closed = 0; int modified = 0; @@ -38,7 +45,7 @@ this.created += other.created; } } - class WeekEntry { + static class WeekEntry { NumEntry man = new NumEntry(); NumEntry tir = new NumEntry(); NumEntry ons = new NumEntry(); @@ -68,72 +75,91 @@ } } + private static TaskLogger logger = TaskLogger.getInstance(); + AddressManager addrManager; List
addressList; int entryCount; EntryUgedage ugedage; AddressSource source; TimingHelper timer; boolean writeBack; + int duplicateCount; //TODO: Afviste adresser - public AddressReport(AddressManager addrManager, int entryCount, EntryUgedage ugedage, AddressSource source, TimingHelper timer, boolean writeBack ) { + public AddressReport(AddressManager addrManager, int entryCount, EntryUgedage ugedage, AddressSource source, TimingHelper timer, boolean writeBack, int duplicateCount ) { + this.addrManager = addrManager; addressList = addrManager.getAddressList(); this.entryCount = entryCount; this.ugedage = ugedage; this.source = source; this.timer = timer; this.writeBack = writeBack; - + this.duplicateCount = duplicateCount; } public void sendRapport() { - System.out.println("Sending mail"); + logger.info("Sending mail"); String reportData = getReportData(); String subject = "Indlæsnings rapport for " + source.getDistributor(); - - Properties props = new Properties(); - props.put("mail.smtp.host", "10.30.1.28"); - //props.put("mail.smtp.host", "192.168.12.10"); - - try { - // create some properties and get the default Session - Session session = Session.getDefaultInstance(props, null); - session.setDebug(false); - - MimeMessage msg = new MimeMessage(session); - msg.setFrom( new InternetAddress("no-reply@daoas.dk") ); - - - msg.setRecipient(Message.RecipientType.TO, new InternetAddress("thn@daoas.dk") );//TODO: mulighed for at ændre modtager mail - msg.setSubject( subject ); - msg.setContent(reportData, "text/html; charset=utf-8"); - - Transport.send(msg); - - - } catch (MessagingException e) { - System.out.println("Unable to send report mail " + e.getMessage() ); - } - + AddressReport.sendMail(subject, reportData); } + public static void sendMail(String subject, String htmlBody) { + Properties props = new Properties(); + props.put("mail.smtp.host", "10.30.1.28"); + //props.put("mail.smtp.host", "192.168.12.10"); + + try { + // create some properties and get the default Session + Session session = Session.getDefaultInstance(props, null); + session.setDebug(false); + + MimeMessage msg = new MimeMessage(session); + msg.setFrom( new InternetAddress("no-reply@daoas.dk") ); + + + msg.setRecipient(Message.RecipientType.TO, new InternetAddress("thn@daoas.dk") );//TODO: mulighed for at ændre modtager mail + msg.setSubject( subject ); + msg.setContent(htmlBody, "text/html; charset=utf-8"); + + Transport.send(msg); + + + } catch (MessagingException e) { + logger.warning("Unable to send report mail ", e ); + } + } + + public String getReportData() { WeekEntry total = new WeekEntry(); HashMap postnrEntries = new HashMap(); + int createFailCount = 0; + int antalUdenGadeid = 0; int antalUdenKommunekode = 0; int antalUdenLatitude = 0; int antalUdenDBKBane = 0; // first gather the intel for (Address a : addressList) { - if (a.kommunekode == 0 || a.vejkode == 0) { + + if (a.state == AddressState.CREATE_FAIL) { + createFailCount++; + continue; + } + + if (a.gadeid == 0) { + antalUdenGadeid++; + } + + if (a.kommunekode == 0 || a.vejkode == 0) { antalUdenKommunekode++; } @@ -154,6 +180,7 @@ postnrEntries.put(a.postnr, weekEntry); } + if (a.state == AddressState.CREATED) { weekEntry.incrementCreated(); @@ -179,10 +206,23 @@ sb.append("Tidsforbrug: ").append( timer.getElapsed() ).append("ms.
"); sb.append("Skriv til DB: ").append( writeBack ).append("
"); sb.append("Antal entries: " ).append( entryCount ).append("
"); + sb.append("Antal afviste: " ).append( addrManager.getRejectedCount() ).append("
"); + sb.append("Antal dubletter: " ).append( duplicateCount ).append("
"); + sb.append("Antal fejlede inserts: ").append(createFailCount).append("
"); + sb.append("Filen indeholder data til: "); + if (ugedage.mandag) sb.append("Mandag, "); + if (ugedage.tirsdag) sb.append("Tirsdag, "); + if (ugedage.onsdag) sb.append("Onsdag, "); + if (ugedage.torsdag) sb.append("Torsdag, "); + if (ugedage.fredag) sb.append("Fredag, "); + if (ugedage.lordag) sb.append("Lørdag, "); + if (ugedage.sondag) sb.append("Søndag, "); + sb.append("
"); sb.append("

Data Mangler

\n"); sb.append("
");
 		sb.append("Mangler kommune/vejkode: ").append(antalUdenKommunekode).append("\n");
+		sb.append("Mangler gadeid: ").append(antalUdenGadeid).append("\n");
 		sb.append("Mangler DBK bane: ").append(antalUdenDBKBane).append("\n");
 		sb.append("Mangler latitude/longitude: ").append(antalUdenLatitude).append("\n");
 		sb.append("
"); @@ -197,7 +237,16 @@ sb.append("Åbnet:").append(total.man.open).append("").append(total.tir.open).append("").append(total.ons.open).append("").append(total.tor.open).append("").append(total.fre.open).append("").append(total.lor.open).append("").append(total.son.open).append(""); sb.append("Ændret:").append(total.man.modified).append("").append(total.tir.modified).append("").append(total.ons.modified).append("").append(total.tor.modified).append("").append(total.fre.modified).append("").append(total.lor.modified).append("").append(total.son.modified).append(""); sb.append("Lukket:").append(total.man.closed).append("").append(total.tir.closed).append("").append(total.ons.closed).append("").append(total.tor.closed).append("").append(total.fre.closed).append("").append(total.lor.closed).append("").append(total.son.closed).append(""); - + sb.append(""); + + sb.append("
"); + sb.append("

Nye/Ukendte gader

"); + sb.append(""); + sb.append(""); + for( Entry unknownStreet : addrManager.getUnknownStreets().entrySet() ) { + sb.append(""); + } + sb.append("
GadeidVejnavn
").append(unknownStreet.getKey()).append("").append(unknownStreet.getValue()).append("
"); sb.append("
\n");