/[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

revision 2838 by torben, Sun Jan 24 21:48:55 2016 UTC revision 2894 by torben, Mon Feb 1 07:15:15 2016 UTC
# Line 2  package dk.daoas.adressevedligehold; Line 2  package dk.daoas.adressevedligehold;
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 15  import dk.daoas.adressevedligehold.beans Line 16  import dk.daoas.adressevedligehold.beans
16  import dk.daoas.adressevedligehold.beans.Address.AddressState;  import dk.daoas.adressevedligehold.beans.Address.AddressState;
17  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
18    
19    /*
20     * TODO: detail rapport pr postnr
21     * TODO: ved mangel oversigten - skeln mellem om det er nye/CREATED eller om det er gamle kendte adresser
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                    AddressManager addrManager;
78          List<Address> addressList;          List<Address> addressList;
79          int entryCount;          int entryCount;
80          EntryUgedage ugedage;          EntryUgedage ugedage;
# Line 78  public class AddressReport { Line 84  public class AddressReport {
84                    
85          //TODO: Afviste adresser          //TODO: Afviste adresser
86          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 ) {
87                    this.addrManager = addrManager;
88                  addressList = addrManager.getAddressList();                  addressList = addrManager.getAddressList();
89                  this.entryCount = entryCount;                  this.entryCount = entryCount;
90                  this.ugedage = ugedage;                  this.ugedage = ugedage;
# Line 93  public class AddressReport { Line 100  public class AddressReport {
100                  String reportData = getReportData();                  String reportData = getReportData();
101                  String subject = "Indlæsnings rapport for " + source.getDistributor();                  String subject = "Indlæsnings rapport for " + source.getDistributor();
102                                    
103                                    AddressReport.sendMail(subject, reportData);
         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() );  
                 }  
                   
104                                    
105          }          }
106                    
107            public static void sendMail(String subject, String htmlBody) {
108                   Properties props = new Properties();
109                    props.put("mail.smtp.host", "10.30.1.28");
110                    //props.put("mail.smtp.host", "192.168.12.10");
111                    
112                    try {
113                            // create some properties and get the default Session
114                            Session session = Session.getDefaultInstance(props, null);
115                            session.setDebug(false);
116                            
117                            MimeMessage msg = new MimeMessage(session);
118                                    msg.setFrom( new InternetAddress("no-reply@daoas.dk") );
119                                    
120                                    
121                                    msg.setRecipient(Message.RecipientType.TO, new InternetAddress("thn@daoas.dk") );//TODO: mulighed for at ændre modtager mail
122                                    msg.setSubject( subject );                      
123                                    msg.setContent(htmlBody, "text/html; charset=utf-8");
124                                    
125                                    Transport.send(msg);
126                                    
127                            
128                    } catch (MessagingException e) {
129                                    System.out.println("Unable to send report mail " + e.getMessage() );
130                            }              
131            }
132            
133            
134          public String getReportData() {          public String getReportData() {
135                    
136                  WeekEntry total = new WeekEntry();                  WeekEntry total = new WeekEntry();
137                  HashMap<Short, WeekEntry> postnrEntries = new HashMap<Short,WeekEntry>();                  HashMap<Short, WeekEntry> postnrEntries = new HashMap<Short,WeekEntry>();
138                                    
139                    int createFailCount = 0;
140                                    
141                    int antalUdenGadeid = 0;
142                  int antalUdenKommunekode = 0;                  int antalUdenKommunekode = 0;
143                  int antalUdenLatitude = 0;                  int antalUdenLatitude = 0;
144                  int antalUdenDBKBane = 0;                  int antalUdenDBKBane = 0;
145                                    
146                  // first gather the intel                  // first gather the intel
147                  for (Address a : addressList) {                  for (Address a : addressList) {
148                          if (a.kommunekode == 0 || a.vejkode == 0) {                          
149                            if (a.state == AddressState.CREATE_FAIL) {
150                                    createFailCount++;
151                                    continue;                      
152                            }
153                            
154                            if (a.gadeid == 0) {
155                                    antalUdenGadeid++;
156                            }
157                            
158                            if (a.kommunekode == 0 || a.vejkode == 0) {                            
159                                  antalUdenKommunekode++;                                  antalUdenKommunekode++;
160                          }                          }
161                                                    
# Line 154  public class AddressReport { Line 176  public class AddressReport {
176                                  postnrEntries.put(a.postnr, weekEntry);                                  postnrEntries.put(a.postnr, weekEntry);
177                          }                          }
178                                                    
179    
180                                                    
181                          if (a.state == AddressState.CREATED) {                          if (a.state == AddressState.CREATED) {
182                                  weekEntry.incrementCreated();                                  weekEntry.incrementCreated();
# Line 179  public class AddressReport { Line 202  public class AddressReport {
202                  sb.append("Tidsforbrug: ").append( timer.getElapsed() ).append("ms. <br>");                  sb.append("Tidsforbrug: ").append( timer.getElapsed() ).append("ms. <br>");
203                  sb.append("Skriv til DB: ").append( writeBack ).append("<br>");                  sb.append("Skriv til DB: ").append( writeBack ).append("<br>");
204                  sb.append("Antal entries: " ).append( entryCount ).append("<br>");                  sb.append("Antal entries: " ).append( entryCount ).append("<br>");
205                    sb.append("Antal afviste: " ).append( addrManager.getRejectedCount() ).append("<br>");
206                    sb.append("Antal fejlede inserts: ").append(createFailCount).append("<br>");
207                    sb.append("Filen indeholder data til: ");
208                    if (ugedage.mandag) sb.append("Mandag, ");
209                    if (ugedage.tirsdag) sb.append("Tirsdag, ");
210                    if (ugedage.onsdag) sb.append("Onsdag, ");
211                    if (ugedage.torsdag) sb.append("Torsdag, ");
212                    if (ugedage.fredag) sb.append("Fredag, ");
213                    if (ugedage.lordag) sb.append("Lørdag, ");
214                    if (ugedage.sondag) sb.append("Søndag, ");
215                    sb.append("<br>");
216                                    
217                  sb.append("<h2>Data Mangler</h2>\n");                  sb.append("<h2>Data Mangler</h2>\n");
218                  sb.append("<pre>");                  sb.append("<pre>");
219                  sb.append("Mangler kommune/vejkode: ").append(antalUdenKommunekode).append("\n");                  sb.append("Mangler kommune/vejkode: ").append(antalUdenKommunekode).append("\n");
220                    sb.append("Mangler gadeid: ").append(antalUdenGadeid).append("\n");
221                  sb.append("Mangler DBK bane: ").append(antalUdenDBKBane).append("\n");                  sb.append("Mangler DBK bane: ").append(antalUdenDBKBane).append("\n");
222                  sb.append("Mangler latitude/longitude: ").append(antalUdenLatitude).append("\n");                  sb.append("Mangler latitude/longitude: ").append(antalUdenLatitude).append("\n");
223                  sb.append("</pre>");                  sb.append("</pre>");
# Line 197  public class AddressReport { Line 232  public class AddressReport {
232                  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>");
233                  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>");
234                  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>");
235                    sb.append("</table>");
236                    
237                    sb.append("<br>");
238                    sb.append("<h2>Nye/Ukendte gader</h2>");
239                    sb.append("<table>");
240                    sb.append("<tr><th>Gadeid</th><th>Vejnavn</th></tr>");
241                    for( Entry<Integer,String> unknownStreet : addrManager.getUnknownStreets().entrySet() ) {
242                            sb.append("<tr><td>").append(unknownStreet.getKey()).append("</td><td>").append(unknownStreet.getValue()).append("</td></tr>");
243                    }
244                    sb.append("</table>");
245                                    
246                                    
247                  sb.append("</table><br>\n");                  sb.append("</table><br>\n");

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

  ViewVC Help
Powered by ViewVC 1.1.20