/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressReport.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressReport.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressReport.java revision 2838 by torben, Sun Jan 24 21:48:55 2016 UTC dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressReport.java revision 2950 by torben, Tue Feb 16 09:40:51 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold;  package dk.daoas.adressevedligehold.fileupload;
2    
3  import java.util.HashMap;  import java.util.HashMap;
4  import java.util.List;  import java.util.List;
5    import java.util.Map.Entry;
6  import java.util.Properties;  import java.util.Properties;
7    
8  import javax.mail.Message;  import javax.mail.Message;
# Line 13  import javax.mail.internet.MimeMessage; Line 14  import javax.mail.internet.MimeMessage;
14    
15  import dk.daoas.adressevedligehold.beans.Address;  import dk.daoas.adressevedligehold.beans.Address;
16  import dk.daoas.adressevedligehold.beans.Address.AddressState;  import dk.daoas.adressevedligehold.beans.Address.AddressState;
17    import dk.daoas.adressevedligehold.tasks.TaskLogger;
18  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
19    
20    /*
21     *
22     */
23    
24  public class AddressReport {  public class AddressReport {
25                    
26          class NumEntry {          static class NumEntry {
27                  int open = 0;                  int open = 0;
28                  int closed = 0;                  int closed = 0;
29                  int modified = 0;                  int modified = 0;
# Line 38  public class AddressReport { Line 44  public class AddressReport {
44                          this.created += other.created;                          this.created += other.created;
45                  }                  }
46          }          }
47          class WeekEntry {          static class WeekEntry {
48                  NumEntry man = new NumEntry();                  NumEntry man = new NumEntry();
49                  NumEntry tir = new NumEntry();                  NumEntry tir = new NumEntry();
50                  NumEntry ons = new NumEntry();                  NumEntry ons = new NumEntry();
# Line 68  public class AddressReport { Line 74  public class AddressReport {
74                  }                  }
75          }          }
76                    
77            private static TaskLogger logger = TaskLogger.getInstance();
78                    
79            AddressManager addrManager;
80          List<Address> addressList;          List<Address> addressList;
81          int entryCount;          int entryCount;
82          EntryUgedage ugedage;          EntryUgedage ugedage;
83          AddressSource source;          AddressSource source;
84          TimingHelper timer;          TimingHelper timer;
85          boolean writeBack;          boolean writeBack;
86            int duplicateCount;
87                    
88          //TODO: Afviste adresser  
89          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 ) {
90                    this.addrManager = addrManager;
91                  addressList = addrManager.getAddressList();                  addressList = addrManager.getAddressList();
92                  this.entryCount = entryCount;                  this.entryCount = entryCount;
93                  this.ugedage = ugedage;                  this.ugedage = ugedage;
94                  this.source = source;                  this.source = source;
95                  this.timer = timer;                  this.timer = timer;
96                  this.writeBack = writeBack;                  this.writeBack = writeBack;
97                                    this.duplicateCount = duplicateCount;
98          }          }
99                    
100          public void sendRapport() {          public void sendRapport() {
101                  System.out.println("Sending mail");                  logger.info("Sending mail");
102                                    
103                  String reportData = getReportData();                  String reportData = getReportData();
104                  String subject = "Indlæsnings rapport for " + source.getDistributor();                  String subject = "Indlæsnings rapport for " + source.getDistributor();
105                                    
106                    AddressReport.sendMail(subject, reportData);
107                                    
         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() );  
                 }  
                   
                   
108          }          }
109                    
110            public static void sendMail(String subject, String htmlBody) {
111                   Properties props = new Properties();
112                    props.put("mail.smtp.host", "mail.dao.int");
113                    //props.put("mail.smtp.host", "192.168.12.10");
114                    
115                    try {
116                            // create some properties and get the default Session
117                            Session session = Session.getDefaultInstance(props, null);
118                            session.setDebug(false);
119                            
120                            MimeMessage msg = new MimeMessage(session);
121                                    msg.setFrom( new InternetAddress("no-reply@daoas.dk") );
122                                    
123                                    
124                                    msg.setRecipient(Message.RecipientType.TO, new InternetAddress("thn@daoas.dk") );//TODO: mulighed for at ændre modtager mail
125                                    msg.setSubject( subject );                      
126                                    msg.setContent(htmlBody, "text/html; charset=utf-8");
127                                    
128                                    Transport.send(msg);
129                                    
130                            
131                    } catch (MessagingException e) {
132                                    logger.warning("Unable to send report mail ", e );
133                            }              
134            }
135            
136            
137          public String getReportData() {          public String getReportData() {
138                    
139                  WeekEntry total = new WeekEntry();                  WeekEntry total = new WeekEntry();
140                  HashMap<Short, WeekEntry> postnrEntries = new HashMap<Short,WeekEntry>();                  HashMap<Short, WeekEntry> postnrEntries = new HashMap<Short,WeekEntry>();
141                                    
142                    int createFailCount = 0;
143                                    
144                    int antalUdenGadeid = 0;
145                  int antalUdenKommunekode = 0;                  int antalUdenKommunekode = 0;
146                  int antalUdenLatitude = 0;                  int antalUdenLatitude = 0;
147                  int antalUdenDBKBane = 0;                  int antalUdenDBKBane = 0;
148                                    
149                  // first gather the intel                  // first gather the intel
150                  for (Address a : addressList) {                  for (Address a : addressList) {
151                          if (a.kommunekode == 0 || a.vejkode == 0) {                          
152                            if (a.state == AddressState.CREATE_FAIL) {
153                                    createFailCount++;
154                                    continue;                      
155                            }
156                            
157                            if (a.gadeid == 0) {
158                                    antalUdenGadeid++;
159                            }
160                            
161                            if (a.kommunekode == 0 || a.vejkode == 0) {                            
162                                  antalUdenKommunekode++;                                  antalUdenKommunekode++;
163                          }                          }
164                                                    
# Line 154  public class AddressReport { Line 179  public class AddressReport {
179                                  postnrEntries.put(a.postnr, weekEntry);                                  postnrEntries.put(a.postnr, weekEntry);
180                          }                          }
181                                                    
182    
183                                                    
184                          if (a.state == AddressState.CREATED) {                          if (a.state == AddressState.CREATED) {
185                                  weekEntry.incrementCreated();                                  weekEntry.incrementCreated();
# Line 179  public class AddressReport { Line 205  public class AddressReport {
205                  sb.append("Tidsforbrug: ").append( timer.getElapsed() ).append("ms. <br>");                  sb.append("Tidsforbrug: ").append( timer.getElapsed() ).append("ms. <br>");
206                  sb.append("Skriv til DB: ").append( writeBack ).append("<br>");                  sb.append("Skriv til DB: ").append( writeBack ).append("<br>");
207                  sb.append("Antal entries: " ).append( entryCount ).append("<br>");                  sb.append("Antal entries: " ).append( entryCount ).append("<br>");
208                    sb.append("Antal afviste: " ).append( addrManager.getRejectedCount() ).append("<br>");
209                    sb.append("Antal dubletter: " ).append( duplicateCount ).append("<br>");
210                    sb.append("Antal fejlede inserts: ").append(createFailCount).append("<br>");
211                    sb.append("Filen indeholder data til: ");
212                    if (ugedage.mandag) sb.append("Mandag, ");
213                    if (ugedage.tirsdag) sb.append("Tirsdag, ");
214                    if (ugedage.onsdag) sb.append("Onsdag, ");
215                    if (ugedage.torsdag) sb.append("Torsdag, ");
216                    if (ugedage.fredag) sb.append("Fredag, ");
217                    if (ugedage.lordag) sb.append("Lørdag, ");
218                    if (ugedage.sondag) sb.append("Søndag, ");
219                    sb.append("<br>");
220                                    
221                  sb.append("<h2>Data Mangler</h2>\n");                  sb.append("<h2>Data Mangler</h2>\n");
222                  sb.append("<pre>");                  sb.append("<pre>");
223                  sb.append("Mangler kommune/vejkode: ").append(antalUdenKommunekode).append("\n");                  sb.append("Mangler kommune/vejkode: ").append(antalUdenKommunekode).append("\n");
224                    sb.append("Mangler gadeid: ").append(antalUdenGadeid).append("\n");
225                  sb.append("Mangler DBK bane: ").append(antalUdenDBKBane).append("\n");                  sb.append("Mangler DBK bane: ").append(antalUdenDBKBane).append("\n");
226                  sb.append("Mangler latitude/longitude: ").append(antalUdenLatitude).append("\n");                  sb.append("Mangler latitude/longitude: ").append(antalUdenLatitude).append("\n");
227                  sb.append("</pre>");                  sb.append("</pre>");
# Line 197  public class AddressReport { Line 236  public class AddressReport {
236                  sb.append("<tr><td>Åbnet:</td><td>").append(total.man.open).append("</td><td>").append(total.tir.open).append("</td><td>").append(total.ons.open).append("</td><td>").append(total.tor.open).append("</td><td>").append(total.fre.open).append("</td><td>").append(total.lor.open).append("</td><td>").append(total.son.open).append("</td></tr>");                  sb.append("<tr><td>Åbnet:</td><td>").append(total.man.open).append("</td><td>").append(total.tir.open).append("</td><td>").append(total.ons.open).append("</td><td>").append(total.tor.open).append("</td><td>").append(total.fre.open).append("</td><td>").append(total.lor.open).append("</td><td>").append(total.son.open).append("</td></tr>");
237                  sb.append("<tr><td>Ændret:</td><td>").append(total.man.modified).append("</td><td>").append(total.tir.modified).append("</td><td>").append(total.ons.modified).append("</td><td>").append(total.tor.modified).append("</td><td>").append(total.fre.modified).append("</td><td>").append(total.lor.modified).append("</td><td>").append(total.son.modified).append("</td></tr>");                  sb.append("<tr><td>Ændret:</td><td>").append(total.man.modified).append("</td><td>").append(total.tir.modified).append("</td><td>").append(total.ons.modified).append("</td><td>").append(total.tor.modified).append("</td><td>").append(total.fre.modified).append("</td><td>").append(total.lor.modified).append("</td><td>").append(total.son.modified).append("</td></tr>");
238                  sb.append("<tr><td>Lukket:</td><td>").append(total.man.closed).append("</td><td>").append(total.tir.closed).append("</td><td>").append(total.ons.closed).append("</td><td>").append(total.tor.closed).append("</td><td>").append(total.fre.closed).append("</td><td>").append(total.lor.closed).append("</td><td>").append(total.son.closed).append("</td></tr>");                  sb.append("<tr><td>Lukket:</td><td>").append(total.man.closed).append("</td><td>").append(total.tir.closed).append("</td><td>").append(total.ons.closed).append("</td><td>").append(total.tor.closed).append("</td><td>").append(total.fre.closed).append("</td><td>").append(total.lor.closed).append("</td><td>").append(total.son.closed).append("</td></tr>");
239                    sb.append("</table>");
240                    
241                    sb.append("<br>");
242                    sb.append("<h2>Nye/Ukendte gader</h2>");
243                    sb.append("<table>");
244                    sb.append("<tr><th>Gadeid</th><th>Vejnavn</th></tr>");
245                    for( Entry<Integer,String> unknownStreet : addrManager.getUnknownStreets().entrySet() ) {
246                            sb.append("<tr><td>").append(unknownStreet.getKey()).append("</td><td>").append(unknownStreet.getValue()).append("</td></tr>");
247                    }
248                    sb.append("</table>");
249                                    
250                                    
251                  sb.append("</table><br>\n");                  sb.append("</table><br>\n");

Legend:
Removed from v.2838  
changed lines
  Added in v.2950

  ViewVC Help
Powered by ViewVC 1.1.20