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

Legend:
Removed from v.2840  
changed lines
  Added in v.2949

  ViewVC Help
Powered by ViewVC 1.1.20