--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Database.java 2015/06/14 15:11:23 2588 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Database.java 2015/07/28 08:08:22 2640 @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.TreeSet; @@ -29,7 +30,13 @@ List alleAdresser; Adresse alleIkkeDaekkede[]; + Map> daekkedeAdresserHO = new HashMap>(); + + + + + DeduplicateHelper husnrbogstavCache = new DeduplicateHelper(); DeduplicateHelper ruteCache = new DeduplicateHelper(); @@ -69,10 +76,10 @@ conn.createStatement().executeUpdate(sql); logger.info("Rename tables"); - sql = "RENAME TABLE fulddaekning.afstand_anden_rute" + ext + " TO fulddaekning.afstand_anden_rute_old" + ext + ", fulddaekning.afstand_anden_rute_ny TO fulddaekning.afstand_anden_rute" + ext; + String sql2 = "RENAME TABLE fulddaekning.afstand_anden_rute" + ext + " TO fulddaekning.afstand_anden_rute_old" + ext + ", fulddaekning.afstand_anden_rute_ny TO fulddaekning.afstand_anden_rute" + ext; - logger.info("Executing: " + sql); - conn.createStatement().executeUpdate(sql); + logger.info("Executing: " + sql2); + conn.createStatement().executeUpdate(sql2); } public BoundingBox getBoundingbox(short postnr) { @@ -95,6 +102,8 @@ "LEFT JOIN bogleveringer.postnummerdistributor p on (a.postnr=p.postnr) " + "WHERE rute IS NULL " + //Ingen dækning "AND a.postnr BETWEEN ? AND ? " + + "AND a.postnr NOT BETWEEN 3900 and 3999 " + //Skip greenland + "AND a.postnr NOT BETWEEN 9000 AND 9499 " + // Skip nordjylland (DAO) "AND latitude IS NOT NULL " + "AND longitude IS NOT NULL " + "AND gadeid IS NOT NULL " + @@ -137,9 +146,11 @@ + public Map> getDaekkedeAdresserHO() { + return daekkedeAdresserHO; + } - - public List hentAlleDaekkedeAdresser() throws SQLException { + public int hentAlleDaekkedeAdresser() throws SQLException { if ( alleAdresser == null ) { String sql = "SELECT id,a.postnr,adresse,gadeid,husnr,husnrbogstav,latitude,longitude,rute,p.distributor as ho " + "FROM fulddaekning.adressetabel a " + @@ -160,8 +171,21 @@ alleAdresser = new ArrayList(); alleAdresser.addAll(list); + + for(Adresse addr : list) { + short ho = addr.ho; + List hoListe = daekkedeAdresserHO.get(ho); + if ( hoListe == null) { + hoListe = new ArrayList(); + daekkedeAdresserHO.put(ho, hoListe); + } + + hoListe.add(addr); + + } } - return alleAdresser; + + return alleAdresser.size(); }