/[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 3006 by torben, Tue Apr 19 15:49:14 2016 UTC revision 3034 by torben, Mon May 2 08:00:47 2016 UTC
# Line 3  package dk.daoas.adressevedligehold.dawa Line 3  package dk.daoas.adressevedligehold.dawa
3  import java.util.ArrayList;  import java.util.ArrayList;
4  import java.util.List;  import java.util.List;
5  import java.util.Map;  import java.util.Map;
 import java.util.Set;  
6  import java.util.TreeMap;  import java.util.TreeMap;
 import java.util.TreeSet;  
7    
8  import dk.daoas.adressevedligehold.MailSender;  import dk.daoas.adressevedligehold.MailSender;
9  import dk.daoas.adressevedligehold.beans.Address;  import dk.daoas.adressevedligehold.beans.Address;
# Line 13  import dk.daoas.adressevedligehold.beans Line 11  import dk.daoas.adressevedligehold.beans
11  import dk.daoas.adressevedligehold.db.DatabaseCoverageUpdate;  import dk.daoas.adressevedligehold.db.DatabaseCoverageUpdate;
12  import dk.daoas.adressevedligehold.tasks.Task;  import dk.daoas.adressevedligehold.tasks.Task;
13  import dk.daoas.adressevedligehold.tasks.TaskLogger;  import dk.daoas.adressevedligehold.tasks.TaskLogger;
14    import dk.daoas.adressevedligehold.util.CountMap;
15  import dk.daoas.adressevedligehold.util.DeduplicateHelper;  import dk.daoas.adressevedligehold.util.DeduplicateHelper;
16  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
17    
# Line 24  import dk.daoas.adressevedligehold.util. Line 23  import dk.daoas.adressevedligehold.util.
23    
24  public class DawaTask extends Task {  public class DawaTask extends Task {
25                    
26          final String kommentarTemplate = "Oprettet via DAWA";          final static String KOMMENTAR_TEMPLATE = "Oprettet via DAWA";
27                    
28          private TaskLogger logger = TaskLogger.getInstance();          private TaskLogger logger = TaskLogger.getInstance();
29                    
30          private short regionCode;          private short regionCode;
31          private String regionName;          private String regionName;
32                    
33            int antalBehandlede = 0;
34            int antalKommuner = 0;
35                    
36                    
37          DatabaseCoverageUpdate db = new DatabaseCoverageUpdate();          DeduplicateHelper<String> dedup = new DeduplicateHelper<>();
38                    
39          DeduplicateHelper<String> dedup = new DeduplicateHelper<>();          
40            
41                    
42          public DawaTask(short regionCode, String regionName){          public DawaTask(short regionCode, String regionName){
43                  this.regionCode = regionCode;                            this.regionCode = regionCode;          
# Line 46  public class DawaTask extends Task { Line 48  public class DawaTask extends Task {
48          @Override          @Override
49          protected void taskRun() throws Exception {          protected void taskRun() throws Exception {
50                  TimingHelper timer = new TimingHelper();                  TimingHelper timer = new TimingHelper();
51                                                            
52                    DatabaseCoverageUpdate db = new DatabaseCoverageUpdate();
53                    
54                  DawaWebservice dawa = new DawaWebservice();                  DawaWebservice dawa = new DawaWebservice();
55                  TreeMap<String, DawaGade> search = new TreeMap<>();                  TreeMap<String, DawaGade> search = new TreeMap<>();
56                                    
# Line 72  public class DawaTask extends Task { Line 76  public class DawaTask extends Task {
76                                    
77                  Map<String,Integer> kommuner = dawa.kommunerIRegion(regionCode);                  Map<String,Integer> kommuner = dawa.kommunerIRegion(regionCode);
78                                    
79                  String subject = "DAWA indlæsning done";                  String subject = "DAWA indlæsning - " + regionName;
80                                    
81                  StringBuilder headerSB = new StringBuilder();                  StringBuilder headerSB = new StringBuilder();
82                  headerSB.append("<h1>Indlæsnings rapport for " + regionName + " / " + regionCode + " </h1><br>");                  headerSB.append("<h1>Indlæsnings rapport for " + regionName + " </h1><br>");
83                                    
84                  int totalAntalNye = 0;                  int totalAntalNye = 0;
85                  int totalAntalFejl = 0;                  int totalAntalFejl = 0;
86                  int totalAntalUkendt = 0;                  int totalAntalUkendt = 0;
87                  int totalAntalDobbelt = 0;                  int totalAntalDobbelt = 0;
88                                    
89                    antalKommuner = kommuner.size();
90                    
91                                    
92                  StringBuilder sb = new StringBuilder();                  StringBuilder sb = new StringBuilder();
93                                    
# Line 94  public class DawaTask extends Task { Line 100  public class DawaTask extends Task {
100                                                    
101                          List<Address> dawaListe = dawa.adresserIKommune(kommunekode);                          List<Address> dawaListe = dawa.adresserIKommune(kommunekode);
102                          // stage 3 søg                                  // stage 3 søg        
103                          Set<String> ukendteDAV = new TreeSet<>();                          CountMap ukendteDAV = new CountMap();
104                          Set<String> dobbeltGadeidDAV = new TreeSet<>();                          CountMap dobbeltGadeidDAV = new CountMap();
105                          List<Address> nyeAdresser = new ArrayList<>();                          List<Address> nyeAdresser = new ArrayList<>();
106                                                    
107                          for (Address dawaAddr : dawaListe) {                          for (Address dawaAddr : dawaListe) {
108                                  String dav = getDAVid(dawaAddr);                                  String dav = getDAVid(dawaAddr);
109                                  DawaGade gade = search.get(dav);                                  DawaGade gade = search.get(dav);
110                                  if (gade == null) {                                  if (gade == null) {
111                                          ukendteDAV.add(dav + " " + dawaAddr.vejnavn);                                          String key = dav + " " + dawaAddr.vejnavn;
112                                            ukendteDAV.increment(key);
113                                          continue;                                          continue;
114                                  }                                  }
115                                                                    
116                                  if (gade.gadeids.size() != 1) {                                  if (gade.gadeids.size() != 1) {
117                                          dobbeltGadeidDAV.add(dav + " " + dawaAddr.vejnavn);                                          String key = dav + " " + dawaAddr.vejnavn;
118                                            dobbeltGadeidDAV.increment(key);
119                                            continue;
120                                  }                                  }
121                                                                    
122                                  boolean fundet = false;                                  boolean fundet = false;
# Line 121  public class DawaTask extends Task { Line 130  public class DawaTask extends Task {
130                                  if (fundet == false) {                                  if (fundet == false) {
131                                          dawaAddr.gadeid = gade.gadeids.iterator().next();                                          dawaAddr.gadeid = gade.gadeids.iterator().next();
132                                          dawaAddr.state = AddressState.CREATED;                                          dawaAddr.state = AddressState.CREATED;
133                                          dawaAddr.kommentar = kommentarTemplate;                                          dawaAddr.kommentar = KOMMENTAR_TEMPLATE;
134                                          nyeAdresser.add(dawaAddr);                                          nyeAdresser.add(dawaAddr);
135                                  }                                                        }                      
136                          }                          }
# Line 129  public class DawaTask extends Task { Line 138  public class DawaTask extends Task {
138                                                    
139                          db.saveNewAddresses(nyeAdresser);                          db.saveNewAddresses(nyeAdresser);
140                                                    
141                          logger.info("Save to db done - sending report mail");                          logger.info("Save to db done - adding to report mail");
142                                                    
143                          List<Address> saveOK = new ArrayList<>();                          List<Address> saveOK = new ArrayList<>();
144                          List<Address> saveFail = new ArrayList<>();                          List<Address> saveFail = new ArrayList<>();
# Line 145  public class DawaTask extends Task { Line 154  public class DawaTask extends Task {
154                          totalAntalFejl += saveFail.size();                          totalAntalFejl += saveFail.size();
155                          totalAntalUkendt += ukendteDAV.size();                          totalAntalUkendt += ukendteDAV.size();
156                          totalAntalDobbelt += dobbeltGadeidDAV.size();                          totalAntalDobbelt += dobbeltGadeidDAV.size();
157                            
158                            
159                            antalBehandlede++;
160                    
161                                                    
162                          sb.append("<h2>Kommune: " + kommunenavn + " / " + kommunekode + "</h2><br>\n");                          sb.append("<h2>Kommune: " + kommunenavn + "</h2>\n");
163                            
164                            sb.append("Kommunekode: " + kommunekode + "<br>\n");
165                          sb.append("Antal Inserts: " + saveOK.size() + "<br>\n");                          sb.append("Antal Inserts: " + saveOK.size() + "<br>\n");
166                          sb.append("Antal insert fails: " + saveFail.size() + "<br>\n");                          sb.append("Antal insert fails: " + saveFail.size() + "<br>\n");
167                          sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n");                          sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n");
# Line 160  public class DawaTask extends Task { Line 174  public class DawaTask extends Task {
174                          addressTable(sb, saveFail);                          addressTable(sb, saveFail);
175                                                    
176                          sb.append("<h3>Ukendte DAV:</h3>\n");                          sb.append("<h3>Ukendte DAV:</h3>\n");
177                          for (String dav : ukendteDAV) {                          for (Map.Entry<String, Integer> dav : ukendteDAV.entrySet()) {                          
178                                  sb.append(dav + "<br>\n");                                  sb.append(dav.getKey() + " : " + dav.getValue() + "<br>\n");
179                          }                          }
180                                                    
181                          sb.append("<h3>Dobbelt gadeid DAV:</h3>\n");                          sb.append("<h3>Dobbelt gadeid DAV:</h3>\n");
182                          for (String dav : dobbeltGadeidDAV) {                          for (Map.Entry<String, Integer> dav : dobbeltGadeidDAV.entrySet()) {                            
183                                  sb.append(dav + "<br>\n");                                  sb.append(dav.getKey() + " : " + dav.getValue() + "<br>\n");
184                          }                          }                                              
                           
185                  }                  }
186                    logger.info("Sendingreport mail");
187                                    
188                  headerSB.append("Antal Inserts: " + totalAntalNye + "<br>\n");                  headerSB.append("Antal Inserts: " + totalAntalNye + "<br>\n");
189                  headerSB.append("Antal insert fails: " + totalAntalFejl + "<br>\n");                  headerSB.append("Antal insert fails: " + totalAntalFejl + "<br>\n");
# Line 179  public class DawaTask extends Task { Line 193  public class DawaTask extends Task {
193                                    
194                  MailSender.sendMail(subject, headerSB.toString() + sb.toString() );                  MailSender.sendMail(subject, headerSB.toString() + sb.toString() );
195    
196                    
197                    //Cleaning
198                    dedup.clear();
199          }          }
200                    
201          private void addressTable(StringBuilder sb, List<Address> addr) {          private void addressTable(StringBuilder sb, List<Address> addr) {
# Line 216  public class DawaTask extends Task { Line 233  public class DawaTask extends Task {
233    
234          @Override          @Override
235          public double getPercentCompleted() {          public double getPercentCompleted() {
236                  return 0;                  if (antalKommuner == 0) {
237                            return 0;      
238                    }
239                    
240                    return  (antalBehandlede / ((double)antalKommuner) ) * 100.0;
241                    
242          }          }
243                    
244    

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

  ViewVC Help
Powered by ViewVC 1.1.20