/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/admin/CsvUdtraek.java
ViewVC logotype

Annotation of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/admin/CsvUdtraek.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2394 - (hide annotations) (download)
Fri Feb 27 08:24:56 2015 UTC (9 years, 3 months ago) by torben
Original Path: dao/DaoAdresseService/src/dk/daoas/daoadresseservice/CsvUdtraek.java
File size: 4687 byte(s)
Pænere default side til csv udtræk
1 torben 2332 package dk.daoas.daoadresseservice;
2    
3     import java.io.IOException;
4 torben 2394 import java.io.PrintWriter;
5 torben 2384 import java.sql.SQLException;
6     import java.util.List;
7 torben 2332
8     import javax.servlet.ServletException;
9     import javax.servlet.annotation.WebServlet;
10     import javax.servlet.http.HttpServlet;
11     import javax.servlet.http.HttpServletRequest;
12     import javax.servlet.http.HttpServletResponse;
13    
14     import dk.daoas.daoadresseservice.beans.Address;
15 torben 2384 import dk.daoas.daoadresseservice.beans.LoggedAddress;
16     import dk.daoas.daoadresseservice.beans.SearchResult;
17     import dk.daoas.daoadresseservice.beans.SearchResult.Status;
18     import dk.daoas.daoadresseservice.db.DatabaseLayer;
19 torben 2332
20     /**
21     * Servlet implementation class CsvUdtraek
22     */
23     @WebServlet("/CsvUdtraek")
24     public class CsvUdtraek extends HttpServlet {
25     private static final long serialVersionUID = 1L;
26    
27    
28     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29 torben 2384 String type = request.getParameter("type");
30     String str = null;
31 torben 2332
32 torben 2384 if (type != null) {
33     switch( type ) {
34     case "ikkedaekket":
35     str = udtraekIkkeDaekket();
36     break;
37     case "sammenlign":
38     str = udtraekSammenligning(request);
39     break;
40     default:
41     str = null;
42     break;
43     }
44 torben 2332 }
45    
46 torben 2384 if (str != null) {
47     response.setContentType("text/csv");
48     response.setHeader("Content-Disposition", "filename=" + type + ".csv");
49     response.getWriter().print(str);
50     } else {
51 torben 2394 PrintWriter w = response.getWriter();
52     response.setContentType("text/html");
53     w.print("Type parameter is blank or invalid value<br>");
54     w.print("Type: <a href='CsvUdtraek?type=ikkedaekket'>ikkedaekket</a> <br>");
55     w.print("Type: <a href='CsvUdtraek?type=sammenlign&antaldage=5'>sammenlign</a> <br>");
56 torben 2384 }
57 torben 2332 }
58    
59 torben 2384 /* *******************************************
60     *
61     */
62 torben 2332 private String udtraekIkkeDaekket() {
63     AdressSearch search = (AdressSearch) getServletContext().getAttribute("search");
64     if (search == null) {
65     return "data struktur ikke indlæst";
66     }
67    
68     StringBuilder sb = new StringBuilder();
69 torben 2335 sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
70 torben 2332
71     for (Address addr : search.getNonCoveredAddresses() ) {
72 torben 2335 sb.append( addr.gadeid ).append(";")
73 torben 2332 .append( addr.postnr ).append(";")
74     .append( addr.vejnavn ).append(";")
75     .append( addr.husnr ).append(";")
76     .append( addr.husnrbogstav ).append(";")
77     .append( addr.distributor != null ? addr.distributor : "" )
78     .append( "\n" );
79     }
80    
81     return sb.toString();
82     }
83 torben 2384
84     /* *******************************************
85     *
86     */
87 torben 2332
88 torben 2384 protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
89    
90     AdressSearch search = (AdressSearch) getServletContext().getAttribute("search");
91     if (search == null) {
92     return "data struktur ikke indlæst";
93     }
94    
95     int antal_dage = 2;
96    
97     if (request.getParameter("antaldage") != null ) {
98 torben 2385 antal_dage = Integer.parseInt( request.getParameter("antaldage") );
99 torben 2384 }
100    
101    
102     try {
103     StringBuilder sb = new StringBuilder();
104 torben 2386 sb.append("besked;postnr;adresse;gl status;ny status;ny split\n");
105 torben 2384
106     List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);
107    
108     for(LoggedAddress addr : addrList) {
109     SearchResult res = search.search("" + addr.postnr, addr.adresse);
110    
111     if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
112    
113     if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
114    
115     appendLogLine("ny fejler, gl ok", sb, addr, res);
116    
117     } else {
118     appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
119     }
120    
121     } else {
122     if (addr.status == 10) {
123     appendLogLine("ny OK, gl fejler", sb, addr, res);
124    
125     } else if (addr.status == 12 ) {
126    
127     if (res.google == false && res.osm == false) {
128    
129     appendLogLine("ny Direkte, gl Google", sb, addr, res);
130     }
131     }
132     }
133    
134     if (res.osm || res.google) {
135     try {
136     Thread.sleep(50);//Back-off external services
137     } catch(InterruptedException e) {
138     //
139     }
140     }
141     }
142     sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
143 torben 2394 sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
144 torben 2384
145    
146     return sb.toString();
147    
148     } catch(SQLException e) {
149     throw new IOException(e);
150     }
151     }
152    
153     private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
154    
155 torben 2386 sb.append(msg).append(";")
156     .append(addr.postnr).append(";")
157 torben 2384 .append(addr.adresse).append(";")
158 torben 2386 .append(addr.status).append(";")
159     .append(res.status).append(";")
160     .append(res.splitResult).append(";")
161     .append("\n");
162 torben 2384
163     }
164    
165 torben 2332 }

  ViewVC Help
Powered by ViewVC 1.1.20