/[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 3005 by torben, Tue Apr 19 12:56:57 2016 UTC revision 3006 by torben, Tue Apr 19 15:49:14 2016 UTC
# Line 2  package dk.daoas.adressevedligehold.dawa Line 2  package dk.daoas.adressevedligehold.dawa
2    
3  import java.util.ArrayList;  import java.util.ArrayList;
4  import java.util.List;  import java.util.List;
5    import java.util.Map;
6  import java.util.Set;  import java.util.Set;
7  import java.util.TreeMap;  import java.util.TreeMap;
8  import java.util.TreeSet;  import java.util.TreeSet;
# Line 13  import dk.daoas.adressevedligehold.db.Da Line 14  import dk.daoas.adressevedligehold.db.Da
14  import dk.daoas.adressevedligehold.tasks.Task;  import dk.daoas.adressevedligehold.tasks.Task;
15  import dk.daoas.adressevedligehold.tasks.TaskLogger;  import dk.daoas.adressevedligehold.tasks.TaskLogger;
16  import dk.daoas.adressevedligehold.util.DeduplicateHelper;  import dk.daoas.adressevedligehold.util.DeduplicateHelper;
17    import dk.daoas.adressevedligehold.util.TimingHelper;
18    
19  /*  /*
20   * Alle regioner: http://dawa.aws.dk/regioner/   * Alle regioner: http://dawa.aws.dk/regioner/
# Line 43  public class DawaTask extends Task { Line 45  public class DawaTask extends Task {
45    
46          @Override          @Override
47          protected void taskRun() throws Exception {          protected void taskRun() throws Exception {
48                                    TimingHelper timer = new TimingHelper();
49                  int kommunekode = 779;                          
                 String kommunenavn = "Skive";  
                   
                 // stage 1 - hent alle data              
50                  DawaWebservice dawa = new DawaWebservice();                  DawaWebservice dawa = new DawaWebservice();
51                  List<Address> dawaListe = dawa.lookup(kommunekode);                  TreeMap<String, DawaGade> search = new TreeMap<>();
52                                    
53                    // stage 1 - hent alle data                    
54                  List<Address> adresser = db.getAllAdresses();                  List<Address> adresser = db.getAllAdresses();
55                                    
56                                    
                   
57                  // stage 2 opbyg søge struktur                          // stage 2 opbyg søge struktur        
58                  logger.info("Building search structure");                  logger.info("Building search structure");
59                  TreeMap<String, DawaGade> search = new TreeMap<>();  
60                                    
61                  for (Address addr : adresser) {                  for (Address addr : adresser) {
62                          String dav = getDAVid(addr);                          String dav = getDAVid(addr);
# Line 71  public class DawaTask extends Task { Line 70  public class DawaTask extends Task {
70                  }                  }
71                  logger.info("Build search structure done");                  logger.info("Build search structure done");
72                                    
73                  // stage 3 søg                          Map<String,Integer> kommuner = dawa.kommunerIRegion(regionCode);
                 Set<String> ukendteDAV = new TreeSet<>();  
                 Set<String> dobbeltGadeidDAV = new TreeSet<>();  
                 List<Address> nyeAdresser = new ArrayList<>();  
74                                    
75                  for (Address dawaAddr : dawaListe) {                  String subject = "DAWA indlæsning done";
76                          String dav = getDAVid(dawaAddr);                  
77                          DawaGade gade = search.get(dav);                  StringBuilder headerSB = new StringBuilder();
78                          if (gade == null) {                  headerSB.append("<h1>Indlæsnings rapport for " + regionName + " / " + regionCode + " </h1><br>");
79                                  ukendteDAV.add(dav + " " + dawaAddr.vejnavn);                  
80                                  continue;                  int totalAntalNye = 0;
81                    int totalAntalFejl = 0;
82                    int totalAntalUkendt = 0;
83                    int totalAntalDobbelt = 0;
84                    
85                    
86                    StringBuilder sb = new StringBuilder();
87                    
88                    for (Map.Entry<String, Integer> entry : kommuner.entrySet()) {
89                            int kommunekode = entry.getValue();
90                            String kommunenavn = entry.getKey();
91                            
92                            logger.info("Behandler: " + kommunekode + " " + kommunenavn);
93                    
94                            
95                            List<Address> dawaListe = dawa.adresserIKommune(kommunekode);
96                            // stage 3 søg        
97                            Set<String> ukendteDAV = new TreeSet<>();
98                            Set<String> dobbeltGadeidDAV = new TreeSet<>();
99                            List<Address> nyeAdresser = new ArrayList<>();
100                            
101                            for (Address dawaAddr : dawaListe) {
102                                    String dav = getDAVid(dawaAddr);
103                                    DawaGade gade = search.get(dav);
104                                    if (gade == null) {
105                                            ukendteDAV.add(dav + " " + dawaAddr.vejnavn);
106                                            continue;
107                                    }
108                                    
109                                    if (gade.gadeids.size() != 1) {
110                                            dobbeltGadeidDAV.add(dav + " " + dawaAddr.vejnavn);
111                                    }
112                                    
113                                    boolean fundet = false;
114                                    for (Address target : gade.adresser) {
115                                            if ( target.husnr == dawaAddr.husnr && target.husnrbogstav.equals(dawaAddr.husnrbogstav) ) {
116                                                    fundet = true;
117                                                    break;
118                                            }      
119                                    }
120                                    
121                                    if (fundet == false) {
122                                            dawaAddr.gadeid = gade.gadeids.iterator().next();
123                                            dawaAddr.state = AddressState.CREATED;
124                                            dawaAddr.kommentar = kommentarTemplate;
125                                            nyeAdresser.add(dawaAddr);
126                                    }                      
127                          }                          }
128                            logger.info("Address Search done - starting save to DB");
129                                                    
130                          if (gade.gadeids.size() != 1) {                          db.saveNewAddresses(nyeAdresser);
131                                  dobbeltGadeidDAV.add(dav + " " + dawaAddr.vejnavn);                          
132                            logger.info("Save to db done - sending report mail");
133                            
134                            List<Address> saveOK = new ArrayList<>();
135                            List<Address> saveFail = new ArrayList<>();
136                            for (Address a : nyeAdresser) {
137                                    if (a.state == AddressState.CREATE_FAIL) {
138                                            saveFail.add(a);
139                                    } else {
140                                            saveOK.add(a);
141                                    }
142                          }                          }
143                                                    
144                          boolean fundet = false;                          totalAntalNye += saveOK.size();
145                          for (Address target : gade.adresser) {                          totalAntalFejl += saveFail.size();
146                                  if ( target.husnr == dawaAddr.husnr && target.husnrbogstav.equals(dawaAddr.husnrbogstav) ) {                          totalAntalUkendt += ukendteDAV.size();
147                                          fundet = true;                          totalAntalDobbelt += dobbeltGadeidDAV.size();
148                                          break;          
149                                  }                                
150                            sb.append("<h2>Kommune: " + kommunenavn + " / " + kommunekode + "</h2><br>\n");
151                            sb.append("Antal Inserts: " + saveOK.size() + "<br>\n");
152                            sb.append("Antal insert fails: " + saveFail.size() + "<br>\n");
153                            sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n");
154                            sb.append("Antal dobbelt gadeid dav: " + dobbeltGadeidDAV.size() + "<br>\n");
155                            
156                            sb.append("<h3>Adresser ok:</h3>\n");
157                            addressTable(sb, saveOK);
158                            
159                            sb.append("<h3>SQL INSERT fejl:</h3>\n");
160                            addressTable(sb, saveFail);
161                            
162                            sb.append("<h3>Ukendte DAV:</h3>\n");
163                            for (String dav : ukendteDAV) {
164                                    sb.append(dav + "<br>\n");
165                          }                          }
166                                                    
167                          if (fundet == false) {                          sb.append("<h3>Dobbelt gadeid DAV:</h3>\n");
168                                  dawaAddr.gadeid = gade.gadeids.iterator().next();                          for (String dav : dobbeltGadeidDAV) {
169                                  dawaAddr.state = AddressState.CREATED;                                  sb.append(dav + "<br>\n");
                                 dawaAddr.kommentar = kommentarTemplate;  
                                 nyeAdresser.add(dawaAddr);  
                         }                        
                 }  
                 logger.info("Address Search done - starting save to DB");  
                   
                 db.saveNewAddresses(nyeAdresser);  
                   
                 logger.info("Save to db done - sending report mail");  
                   
                 List<Address> saveOK = new ArrayList<>();  
                 List<Address> saveFail = new ArrayList<>();  
                 for (Address a : nyeAdresser) {  
                         if (a.state == AddressState.CREATE_FAIL) {  
                                 saveFail.add(a);  
                         } else {  
                                 saveOK.add(a);  
170                          }                          }
171                            
172                  }                  }
173                                    
174                  String subject = "DAWA indlæsning done";                  headerSB.append("Antal Inserts: " + totalAntalNye + "<br>\n");
175                                    headerSB.append("Antal insert fails: " + totalAntalFejl + "<br>\n");
176                  StringBuilder sb = new StringBuilder();                  headerSB.append("Antal ukendte dav: " + totalAntalUkendt + "<br>\n");
177                  sb.append("<h1>Indlæsnings rapport for " + regionName + " / " + regionCode + " </h1><br>");                  headerSB.append("Antal dobbelt gadeid dav: " + totalAntalDobbelt + "<br>\n");
178                                    headerSB.append("Elapsed: " + timer.getElapsed() + " ms.<br>\n");
                 sb.append("<h2>Kommune: " + kommunenavn + " / " + kommunekode + "</h2><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 (String dav : ukendteDAV) {  
                         sb.append(dav + "<br>\n");  
                 }  
                   
                 sb.append("<h3>Dobbelt gadeid DAV:</h3>\n");  
                 for (String dav : dobbeltGadeidDAV) {  
                         sb.append(dav + "<br>\n");  
                 }  
179                                    
180                  MailSender.sendMail(subject, sb.toString() );                  MailSender.sendMail(subject, headerSB.toString() + sb.toString() );
181    
182          }          }
183                    

Legend:
Removed from v.3005  
changed lines
  Added in v.3006

  ViewVC Help
Powered by ViewVC 1.1.20