/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaTask.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaTask.java

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

revision 3068 by torben, Mon May 2 08:00:47 2016 UTC revision 3069 by torben, Fri Jul 22 09:48:05 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold.dawa;  package dk.daoas.adressevedligehold.dawa;
2    
3  import java.util.ArrayList;  import java.util.ArrayList;
4    import java.util.Collections;
5  import java.util.List;  import java.util.List;
6  import java.util.Map;  import java.util.Map;
7    import java.util.Map.Entry;
8  import java.util.TreeMap;  import java.util.TreeMap;
9    
10    import com.google.common.base.Splitter;
11    
12  import dk.daoas.adressevedligehold.MailSender;  import dk.daoas.adressevedligehold.MailSender;
13  import dk.daoas.adressevedligehold.beans.Address;  import dk.daoas.adressevedligehold.beans.Address;
14  import dk.daoas.adressevedligehold.beans.Address.AddressState;  import dk.daoas.adressevedligehold.beans.Address.AddressState;
# Line 81  public class DawaTask extends Task { Line 85  public class DawaTask extends Task {
85                  StringBuilder headerSB = new StringBuilder();                  StringBuilder headerSB = new StringBuilder();
86                  headerSB.append("<h1>Indlæsnings rapport for " + regionName + " </h1><br>");                  headerSB.append("<h1>Indlæsnings rapport for " + regionName + " </h1><br>");
87                                    
88                  int totalAntalNye = 0;                  List<Address> totalNye = new ArrayList<>();
89                  int totalAntalFejl = 0;                  List<Address> totalFejl = new ArrayList<>();
90                  int totalAntalUkendt = 0;                  CountMap totalUkendtDAV = new CountMap();
91                  int totalAntalDobbelt = 0;                  CountMap totalDobbeltDav = new CountMap();
92                    
93                    
94                                    
95                  antalKommuner = kommuner.size();                  antalKommuner = kommuner.size();
96                                    
# Line 150  public class DawaTask extends Task { Line 156  public class DawaTask extends Task {
156                                  }                                  }
157                          }                          }
158                                                    
159                          totalAntalNye += saveOK.size();                          totalNye.addAll(saveOK);
160                          totalAntalFejl += saveFail.size();                          totalFejl.addAll(saveFail);
                         totalAntalUkendt += ukendteDAV.size();  
                         totalAntalDobbelt += dobbeltGadeidDAV.size();  
161                                                    
162                            totalUkendtDAV.putAll(ukendteDAV);
163                            totalDobbeltDav.putAll(dobbeltGadeidDAV);
164                    
165                                                    
166                          antalBehandlede++;                          antalBehandlede++;
167                    
# Line 166  public class DawaTask extends Task { Line 173  public class DawaTask extends Task {
173                          sb.append("Antal insert fails: " + saveFail.size() + "<br>\n");                          sb.append("Antal insert fails: " + saveFail.size() + "<br>\n");
174                          sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n");                          sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n");
175                          sb.append("Antal dobbelt gadeid dav: " + dobbeltGadeidDAV.size() + "<br>\n");                          sb.append("Antal dobbelt gadeid dav: " + dobbeltGadeidDAV.size() + "<br>\n");
                           
                         sb.append("<h3>Adresser ok:</h3>\n");  
                         addressTable(sb, saveOK);  
                           
                         sb.append("<h3>SQL INSERT fejl:</h3>\n");  
                         addressTable(sb, saveFail);  
                           
                         sb.append("<h3>Ukendte DAV:</h3>\n");  
                         for (Map.Entry<String, Integer> dav : ukendteDAV.entrySet()) {                            
                                 sb.append(dav.getKey() + " : " + dav.getValue() + "<br>\n");  
                         }  
                           
                         sb.append("<h3>Dobbelt gadeid DAV:</h3>\n");  
                         for (Map.Entry<String, Integer> dav : dobbeltGadeidDAV.entrySet()) {                              
                                 sb.append(dav.getKey() + " : " + dav.getValue() + "<br>\n");  
                         }                                                
176                  }                  }
177                    
178                  logger.info("Sendingreport mail");                  logger.info("Sendingreport mail");
179                                    
180                  headerSB.append("Antal Inserts: " + totalAntalNye + "<br>\n");                  headerSB.append("Antal Inserts: " + totalNye.size() + "<br>\n");
181                  headerSB.append("Antal insert fails: " + totalAntalFejl + "<br>\n");                  headerSB.append("Antal insert fails: " + totalFejl.size() + "<br>\n");
182                  headerSB.append("Antal ukendte dav: " + totalAntalUkendt + "<br>\n");                  headerSB.append("Antal ukendte dav: " + totalUkendtDAV.size() + "<br>\n");
183                  headerSB.append("Antal dobbelt gadeid dav: " + totalAntalDobbelt + "<br>\n");                  headerSB.append("Antal dobbelt gadeid dav: " + totalDobbeltDav.size() + "<br>\n");
184                  headerSB.append("Elapsed: " + timer.getElapsed() + " ms.<br>\n");                  headerSB.append("Elapsed: " + timer.getElapsed() + " ms.<br>\n");
185                                    
186                  MailSender.sendMail(subject, headerSB.toString() + sb.toString() );                  Map<String,String> attachments = new TreeMap<>();
187                    attachments.put("saveok.csv", buildAddressFile(totalNye) );
188                    attachments.put("savefailed.csv", buildAddressFile(totalFejl) );
189                    
190                    attachments.put("ukendte_dav.csv", buildDavFile(totalUkendtDAV) );
191                    attachments.put("dobbelt_dav_gadeid.csv", buildDavFile(totalDobbeltDav) );
192                    
193                    
194                    MailSender.sendMailWithAttachments(subject, headerSB.toString() + sb.toString(), attachments);
195    
196                                    
197                  //Cleaning                  //Cleaning
198                  dedup.clear();                  dedup.clear();
199          }          }
200                    
201          private void addressTable(StringBuilder sb, List<Address> addr) {          private String buildDavFile(CountMap dav) {
202                  sb.append("<table border=0>\n");                  StringBuilder sb = new StringBuilder();
203                  sb.append("<tr><th>GadeID</th><th>Postnr</th><th>Kom.kode</th><th>Vejkode</th><th>Vejnavn</th><th>Husnr<th><th>Litra</th></tr>");                  
204                    sb.append("Gadeid;Vejnavn;Antal\r\n");
205                    for ( Entry<String,Integer> entry : dav.entrySet()) {
206                            
207                            List<String> split = Splitter.on(' ').limit(2).splitToList(entry.getKey());
208                            sb.append( split.get(0) ).append(";");//gadeid
209                            sb.append( split.get(1) ).append(";");//vejnavn
210                            
211                            sb.append( entry.getValue() ).append("\r\n");//vejnavn
212                            
213                    }
214                    
215                    return sb.toString();
216            }
217            
218            private String buildAddressFile(List<Address> addr) {
219                    
220                    Collections.sort(addr); //brug dens egen compareTo funktion
221                    
222                    StringBuilder sb = new StringBuilder();
223                                    
224                    sb.append("GadeID;Postnr;Kom.kode;Vejkode;Vejnavn;Husnr;Litra\r\n");
225                  for (Address a: addr) {                  for (Address a: addr) {
226                          sb.append("<tr>");                          sb.append(a.gadeid).append(";");
227                          sb.append("<td>&nbsp;").append(a.gadeid).append(" </td>");                          sb.append(a.postnr).append(";");
228                          sb.append("<td>&nbsp;").append(a.postnr).append(" </td>");                          sb.append(a.kommunekode).append(";");
229                          sb.append("<td>&nbsp;").append(a.kommunekode).append(" </td>");                          sb.append(a.vejkode).append(";");
230                          sb.append("<td>&nbsp;").append(a.vejkode).append(" </td>");                          sb.append(a.vejnavn).append(";");
231                          sb.append("<td>&nbsp;").append(a.vejnavn).append(" </td>");                          sb.append(a.husnr).append(";");
232                          sb.append("<td>&nbsp;").append(a.husnr).append(" </td>");                          sb.append(a.husnrbogstav).append("\r\n");
                         sb.append("<td>&nbsp;").append(a.husnrbogstav).append(" </td>");  
233                  }                  }
234                  sb.append("</table><br>\n");                  return sb.toString();
235                                    
236          }          }
237                    
238            
239          String getDAVid(Address addr) {          String getDAVid(Address addr) {
240                  String dav = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode);                  String dav = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode);
241                                    

Legend:
Removed from v.3068  
changed lines
  Added in v.3069

  ViewVC Help
Powered by ViewVC 1.1.20