--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/CsvUdtraek.java 2015/02/26 11:25:26 2383 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/CsvUdtraek.java 2015/02/26 13:11:45 2384 @@ -1,6 +1,8 @@ package dk.daoas.daoadresseservice; import java.io.IOException; +import java.sql.SQLException; +import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -9,6 +11,10 @@ import javax.servlet.http.HttpServletResponse; import dk.daoas.daoadresseservice.beans.Address; +import dk.daoas.daoadresseservice.beans.LoggedAddress; +import dk.daoas.daoadresseservice.beans.SearchResult; +import dk.daoas.daoadresseservice.beans.SearchResult.Status; +import dk.daoas.daoadresseservice.db.DatabaseLayer; /** * Servlet implementation class CsvUdtraek @@ -19,23 +25,36 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String type = request.getParameter("type"); + String type = request.getParameter("type"); + String str = null; - String str; - switch( type ) { - case "ikkedaekket": - str = udtraekIkkeDaekket(); - break; - default: - str = "ukendt type"; - break; + if (type != null) { + switch( type ) { + case "ikkedaekket": + str = udtraekIkkeDaekket(); + break; + case "sammenlign": + str = udtraekSammenligning(request); + break; + default: + str = null; + break; + } } - response.setContentType("text/csv"); - response.setHeader("Content-Disposition", "filename=" + type + ".csv"); - response.getWriter().print(str); + if (str != null) { + response.setContentType("text/csv"); + response.setHeader("Content-Disposition", "filename=" + type + ".csv"); + response.getWriter().print(str); + } else { + response.setContentType("text/plain"); + response.getWriter().print("Type parameter is blank or invalid value"); + } } + /* ******************************************* + * + */ private String udtraekIkkeDaekket() { AdressSearch search = (AdressSearch) getServletContext().getAttribute("search"); if (search == null) { @@ -57,5 +76,81 @@ return sb.toString(); } + + /* ******************************************* + * + */ + + protected String udtraekSammenligning(HttpServletRequest request) throws IOException { + + AdressSearch search = (AdressSearch) getServletContext().getAttribute("search"); + if (search == null) { + return "data struktur ikke indlæst"; + } + + int antal_dage = 2; + + if (request.getParameter("antaldage") != null ) { + antal_dage = Integer.parseInt("antaldage"); + } + + + try { + StringBuilder sb = new StringBuilder(); + sb.append("besked;postnr;adresse;gl status;ny status\n"); + + List addrList = DatabaseLayer.getLoggedAdresses(antal_dage); + + for(LoggedAddress addr : addrList) { + SearchResult res = search.search("" + addr.postnr, addr.adresse); + + if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) { + + if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression + + appendLogLine("ny fejler, gl ok", sb, addr, res); + + } else { + appendLogLine("ny fejler, gl fejler !!!", sb, addr, res); + } + + } else { + if (addr.status == 10) { + appendLogLine("ny OK, gl fejler", sb, addr, res); + + } else if (addr.status == 12 ) { + + if (res.google == false && res.osm == false) { + + appendLogLine("ny Direkte, gl Google", sb, addr, res); + } + } + } + + if (res.osm || res.google) { + try { + Thread.sleep(50);//Back-off external services + } catch(InterruptedException e) { + // + } + } + } + sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n"); + + + return sb.toString(); + + } catch(SQLException e) { + throw new IOException(e); + } + } + + private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) { + + sb.append(msg).append(";").append(addr.postnr).append(";") + .append(addr.adresse).append(";") + .append(addr.status).append(";").append(res.status).append("\n"); + + } }