/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressManager.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressManager.java

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

revision 2840 by torben, Mon Jan 25 10:25:22 2016 UTC revision 2845 by torben, Tue Jan 26 08:21:22 2016 UTC
# Line 5  import java.util.ArrayList; Line 5  import java.util.ArrayList;
5  import java.util.Collections;  import java.util.Collections;
6  import java.util.List;  import java.util.List;
7  import java.util.Map;  import java.util.Map;
8    import java.util.Map.Entry;
9  import java.util.TreeMap;  import java.util.TreeMap;
10    
11  import org.apache.commons.lang3.StringUtils;  import org.apache.commons.lang3.StringUtils;
# Line 17  import dk.daoas.adressevedligehold.util. Line 18  import dk.daoas.adressevedligehold.util.
18  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
19    
20  /*  /*
  * TODO: implementer visitRange()  
21   * TODO: håndtering af entry dupletter ! (+ rapportering af dem)   * TODO: håndtering af entry dupletter ! (+ rapportering af dem)
22     * TODO: ajourføring af DBKbane
23    DAO:
24    UPDATE fulddaekning.adressetabel
25    SET dbkbane = case
26            when substr(korelisteMa,1,2) IN ('07','10','11','12','14','15','16','18','19','20') then 205 #DAO-BRA
27        when substr(korelisteMa,1,2) BETWEEN 24 and 30 then 201 #DAO-Ovrige
28        else 202 #dao syd (52-99=
29    END
30    WHERE distributor='DAO'
31    AND ruteMa is not null;
32    
33    FD: Altid 200
34    NS: Altid 204
35    BK: 195,196,197,198
36    
37    
38   */   */
39    
40  public class AddressManager {  public class AddressManager {
# Line 157  public class AddressManager { Line 173  public class AddressManager {
173                          if (addr.state == AddressState.NOT_CHANGED) {                          if (addr.state == AddressState.NOT_CHANGED) {
174                                  continue;                                  continue;
175                          }                          }
176                          if (addr.stateMan == AddressState.NOT_CHANGED || addr.stateMan == AddressState.CREATED) {                          /*if (addr.stateMan == AddressState.NOT_CHANGED || addr.stateMan == AddressState.CREATED) {
177                                  continue;                                  continue;
178                          }                          }*/
179                                                    
180                          if (addr.stateMan != AddressState.MODIFIED ) {                          if (addr.stateMan != AddressState.OPENED ) {
181                                  continue;                                  continue;
182                          }                          }
183                                                    
# Line 190  public class AddressManager { Line 206  public class AddressManager {
206                  }                  }
207                                    
208                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();
209                    
210                  db.updateAddresses(updates);                  db.updateAddresses(updates);
211    
212                    
213                                    
214                  System.out.println("Writeback done: elapsed " + timer.getElapsed() + "ms.");                  System.out.println("Writeback done: elapsed " + timer.getElapsed() + "ms.");
215          }          }
# Line 229  public class AddressManager { Line 248  public class AddressManager {
248                    
249          private void visitRange(AddressSourceEntry entry) {          private void visitRange(AddressSourceEntry entry) {
250                                    
251                  throw new UnsupportedOperationException("Not implemented yet");                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );
252                    if (gade == null) {
253                            System.out.println("[Range] Ukendt gadeID " + entry);
254                            return;
255                    }
256                    
257                    for (Entry<Short, ArrayList<Address>> husnrEntry: gade.entrySet()) {
258                            
259                            short husnummer = husnrEntry.getKey();
260                            
261                            if ( (entry.husnr % 2) != (husnummer%2) ){ //lige/ulige skal passe sammen
262                                    continue;
263                            }
264                            
265                            if ( husnummer < entry.husnr || husnummer > entry.tilHusnr) {
266                                    continue;
267                            }
268                            
269                            ArrayList<Address> litraList = husnrEntry.getValue();
270                            
271                            /* a=adressetabel u=input
272                             * and (a.husnr>u.FraHusNr OR (a.husnr=u.FraHusNr AND a.HusnrBogstav >= u.FraBog))
273                             * AND (a.husnr<u.TilHusNr OR (a.husnr=u.TilHusNr AND a.HusnrBogstav <= u.TilBog))
274                             */
275                            
276                            
277                            for (Address addr: litraList) {
278                                    if (addr.husnr > entry.husnr || (addr.husnr == entry.husnr && addr.husnrbogstav.compareTo(entry.litra) >= 0 )) {
279                                            //Using nested IF instead of &&
280                                            if (addr.husnr < entry.tilHusnr || (addr.husnr == entry.tilHusnr && addr.husnrbogstav.compareTo(entry.tilLitra) <= 0 )) {
281                                                    updateAddress(addr, entry);
282                                            }                                      
283                                    }
284                            }
285                    }
286          }          }
287                    
288                    
# Line 241  public class AddressManager { Line 294  public class AddressManager {
294                          return;                          return;
295                  }                  }
296                                    
297                  addr.visited = true;  
                 if (addr.state == AddressState.NOT_CHANGED) {  
                         if (addr.distributor == null) {  
                                 addr.state = AddressState.OPENED;  
                                 addr.distributor = entry.distributor;  
                         } else {  
                                 addr.state = AddressState.MODIFIED;  
                         }  
                 }  
298                                    
299                  if (entry.ugedage.mandag) {                  if (entry.ugedage.mandag) {
300                          addr.visitedMan = true;                          addr.visitedMan = true;
# Line 369  public class AddressManager { Line 414  public class AddressManager {
414                                  }                                  }
415                          }                          }
416                  }                  }
417                    
418                    
419                    
420                    addr.visited = true;
421                    if (addr.state == AddressState.NOT_CHANGED) {
422                            if (addr.distributor == null) {
423                                    addr.state = AddressState.OPENED;
424                                    addr.distributor = entry.distributor;
425                            } else {
426                                    if (addr.stateMan != AddressState.NOT_CHANGED || addr.stateTir != AddressState.NOT_CHANGED
427                                                    || addr.stateOns != AddressState.NOT_CHANGED || addr.stateTor != AddressState.NOT_CHANGED
428                                                    || addr.stateFre != AddressState.NOT_CHANGED || addr.stateLor != AddressState.NOT_CHANGED || addr.stateSon != AddressState.NOT_CHANGED ){
429                                            
430                                            addr.state = AddressState.MODIFIED;    
431                                    }
432                            }
433                    }              
434                                    
435                                    
436          }          }

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

  ViewVC Help
Powered by ViewVC 1.1.20