--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Database.java 2015/08/14 10:56:32 2643 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Database.java 2015/09/27 20:14:24 2716 @@ -1,7 +1,5 @@ package dk.daoas.fulddaekning; -import geocode.GeoPoint; - import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; @@ -13,8 +11,10 @@ import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Queue; import java.util.Set; import java.util.TreeSet; +import java.util.concurrent.ConcurrentLinkedQueue; import java.util.logging.Logger; @@ -27,10 +27,10 @@ Connection conn; PreparedStatement saveStmt; - List alleAdresser; + List alleAdresser; Adresse alleIkkeDaekkede[]; - Map> daekkedeAdresserHO = new HashMap>(); + Map> daekkedeAdresserHO = new HashMap>(); @@ -93,7 +93,7 @@ } - public Adresse[] hentAlleIkkedaekkedeAdresser(int minPostnr, int maxPostnr) throws SQLException { + public Queue hentAlleIkkedaekkedeAdresser(int minPostnr, int maxPostnr) throws SQLException { logger.info("Henter alle IKKE-daekkede adresser"); @@ -102,12 +102,12 @@ "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 9549 " + // Skip nordjylland (DAO) "AND latitude IS NOT NULL " + "AND longitude IS NOT NULL " + "AND gadeid IS NOT NULL " + - "AND (a.distributor IS NULL OR a.distributor<>'LUKKET') "; + "AND (a.distributor IS NULL OR a.distributor<>'LUKKET') " + //"LIMIT 2500" + ; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setInt(1, minPostnr); stmt.setInt(2, maxPostnr); @@ -140,13 +140,13 @@ } - return alleIkkeDaekkede; + return new ConcurrentLinkedQueue( list ); } - public Map> getDaekkedeAdresserHO() { + public Map> getDaekkedeAdresserHO() { return daekkedeAdresserHO; } @@ -169,14 +169,14 @@ List list = hentAdresseListe( stmt ); - alleAdresser = new ArrayList(); + alleAdresser = new ArrayList(); alleAdresser.addAll(list); for(Adresse addr : list) { short ho = addr.ho; - List hoListe = daekkedeAdresserHO.get(ho); + List hoListe = daekkedeAdresserHO.get(ho); if ( hoListe == null) { - hoListe = new ArrayList(); + hoListe = new ArrayList(); daekkedeAdresserHO.put(ho, hoListe); }