--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java 2015/02/24 20:38:56 2372 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java 2015/02/27 09:39:05 2395 @@ -13,8 +13,10 @@ import dk.daoas.daoadresseservice.DaekningsType; import dk.daoas.daoadresseservice.beans.Address; +import dk.daoas.daoadresseservice.beans.AliasBean; import dk.daoas.daoadresseservice.beans.ExtendedBean; import dk.daoas.daoadresseservice.beans.HundredePctBean; +import dk.daoas.daoadresseservice.beans.LoggedAddress; import dk.daoas.daoadresseservice.beans.SearchResult; import dk.daoas.daoadresseservice.util.DeduplicateHelper; @@ -82,6 +84,43 @@ } } + public static List getAliasList() throws SQLException { + + + String sql = "SELECT postnr,vejnavn,aliasvejnavn " + + "FROM bogleveringer.vejtabelprod " + ; + + try ( Connection conn = DBConnection.getConnection(); + Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY); + ) { + + stmt.setFetchSize(Integer.MIN_VALUE); + + ResultSet res = stmt.executeQuery(sql); + + DeduplicateHelper vejCache = new DeduplicateHelper(); + + List list = new ArrayList( 5000); + while (res.next()) { + + AliasBean ab = new AliasBean(); + ab.postnr = res.getInt(1); + ab.vejnavn = vejCache.getInstance( res.getString(2) ); + ab.aliasVejnavn = vejCache.getInstance( res.getString(3) ); + + list.add(ab); + } + + res.close(); + + System.out.println("Loaded " + list.size() + " aliase beans"); + + return list; + } + + } + public static List getExtendedAdresslist() throws SQLException { String debugFilter1 = DatabaseLayer.DEBUG ? " WHERE orgPostnr = 8700 " : ""; String debugFilter2 = DatabaseLayer.DEBUG ? " AND orgPostnr = 8700 " : ""; @@ -195,6 +234,41 @@ } } + /* + * Bruges til at sammenligne gammel og ny adresse service - kan fjernes engang efter at vi er skiftet til ny service + */ + public static List getLoggedAdresses(int antaldage) throws SQLException { + String sql = "select postnr,adresse,status from logs.hentruteinformation where indlast>=date_sub(curdate(), interval " + antaldage + " day) " + + "and status IN (10,11,12) " + + "group by postnr,adresse " + ; + + try ( Connection conn = DBConnection.getConnection(); + Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY); + ) { + + + stmt.setFetchSize(Integer.MIN_VALUE); + + ResultSet res = stmt.executeQuery(sql); + + List result = new ArrayList(); + + while (res.next()) { + LoggedAddress a = new LoggedAddress(); + a.postnr = res.getInt(1); + a.adresse = res.getString(2); + a.status = res.getInt(3); + + result.add(a); + } + + res.close(); + + return result; + } + } + private static int getStatusInt(SearchResult.Status status) { switch (status) {