--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/CsvUdtraek.java 2015/02/22 17:42:45 2334 +++ dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/admin/CsvUdtraek.java 2015/07/23 09:25:03 2638 @@ -1,6 +1,8 @@ -package dk.daoas.daoadresseservice; +package dk.daoas.daoadresseservice.admin; import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -8,6 +10,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import dk.daoas.daoadresseservice.AddressSearch; import dk.daoas.daoadresseservice.beans.Address; /** @@ -19,34 +22,52 @@ 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 "100pct": + str = udtraek100Pct(); + break; + + default: + str = null; + break; + } } - response.setContentType("text/csv"); - response.getWriter().print(str); + if (str != null) { + type = URLEncoder.encode(type, "UTF-8"); + response.setContentType("text/csv"); + response.setHeader("Content-Disposition", "filename=" + type + ".csv"); + response.getWriter().print(str); + } else { + PrintWriter w = response.getWriter(); + response.setContentType("text/html"); + w.print("Type parameter is blank or invalid value
"); + w.print("Type: ikkedaekket
"); + w.print("Type: 100pct
"); + } } + /* ******************************************* + * + */ private String udtraekIkkeDaekket() { - AdressSearch search = (AdressSearch) getServletContext().getAttribute("search"); + AddressSearch search = (AddressSearch) getServletContext().getAttribute("search"); if (search == null) { return "data struktur ikke indlæst"; } StringBuilder sb = new StringBuilder(); - sb.append("rowid;gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n"); + sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n"); for (Address addr : search.getNonCoveredAddresses() ) { - sb.append( addr.id ).append(";") - .append( addr.gadeid ).append(";") + sb.append( addr.gadeid ).append(";") .append( addr.postnr ).append(";") .append( addr.vejnavn ).append(";") .append( addr.husnr ).append(";") @@ -57,5 +78,28 @@ return sb.toString(); } + + private String udtraek100Pct() { + AddressSearch search = (AddressSearch) getServletContext().getAttribute("search"); + if (search == null) { + return "data struktur ikke indlæst"; + } + + StringBuilder sb = new StringBuilder(); + sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n"); + + for (Address addr : search.get100PctAddresses() ) { + sb.append( addr.gadeid ).append(";") + .append( addr.postnr ).append(";") + .append( addr.vejnavn ).append(";") + .append( addr.husnr ).append(";") + .append( addr.husnrbogstav ).append(";") + .append( addr.distributor != null ? addr.distributor : "" ) + .append( "\n" ); + } + + return sb.toString(); + } + }