/[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 2608 - (hide annotations) (download)
Wed Jul 15 06:52:05 2015 UTC (8 years, 10 months ago) by torben
File size: 6209 byte(s)
Separate database interface and implementation (preparation for mocking and more unit tests)
1 torben 2499 package dk.daoas.daoadresseservice.admin;
2 torben 2332
3     import java.io.IOException;
4 torben 2394 import java.io.PrintWriter;
5 torben 2532 import java.net.URLEncoder;
6 torben 2332
7     import javax.servlet.ServletException;
8     import javax.servlet.annotation.WebServlet;
9     import javax.servlet.http.HttpServlet;
10     import javax.servlet.http.HttpServletRequest;
11     import javax.servlet.http.HttpServletResponse;
12    
13 torben 2499 import dk.daoas.daoadresseservice.AddressSearch;
14 torben 2332 import dk.daoas.daoadresseservice.beans.Address;
15    
16     /**
17     * Servlet implementation class CsvUdtraek
18     */
19     @WebServlet("/CsvUdtraek")
20     public class CsvUdtraek extends HttpServlet {
21     private static final long serialVersionUID = 1L;
22    
23    
24     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
25 torben 2384 String type = request.getParameter("type");
26     String str = null;
27 torben 2332
28 torben 2384 if (type != null) {
29     switch( type ) {
30     case "ikkedaekket":
31     str = udtraekIkkeDaekket();
32     break;
33 torben 2608 /*case "sammenlign":
34 torben 2384 str = udtraekSammenligning(request);
35 torben 2608 break;*/
36 torben 2384 default:
37     str = null;
38     break;
39     }
40 torben 2332 }
41    
42 torben 2384 if (str != null) {
43 torben 2532 type = URLEncoder.encode(type, "UTF-8");
44 torben 2384 response.setContentType("text/csv");
45     response.setHeader("Content-Disposition", "filename=" + type + ".csv");
46     response.getWriter().print(str);
47     } else {
48 torben 2394 PrintWriter w = response.getWriter();
49     response.setContentType("text/html");
50     w.print("Type parameter is blank or invalid value<br>");
51     w.print("Type: <a href='CsvUdtraek?type=ikkedaekket'>ikkedaekket</a> <br>");
52 torben 2607 //w.print("Type: <a href='CsvUdtraek?type=sammenlign&antaldage=5'>sammenlign</a> <br>"); - Deprecated
53 torben 2384 }
54 torben 2332 }
55    
56 torben 2384 /* *******************************************
57     *
58     */
59 torben 2332 private String udtraekIkkeDaekket() {
60 torben 2410 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
61 torben 2332 if (search == null) {
62     return "data struktur ikke indlæst";
63     }
64    
65     StringBuilder sb = new StringBuilder();
66 torben 2335 sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
67 torben 2332
68     for (Address addr : search.getNonCoveredAddresses() ) {
69 torben 2335 sb.append( addr.gadeid ).append(";")
70 torben 2332 .append( addr.postnr ).append(";")
71     .append( addr.vejnavn ).append(";")
72     .append( addr.husnr ).append(";")
73     .append( addr.husnrbogstav ).append(";")
74     .append( addr.distributor != null ? addr.distributor : "" )
75     .append( "\n" );
76     }
77    
78     return sb.toString();
79     }
80 torben 2384
81     /* *******************************************
82     *
83 torben 2608
84 torben 2332
85 torben 2607 @Deprecated
86 torben 2384 protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
87    
88 torben 2410 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
89 torben 2384 if (search == null) {
90     return "data struktur ikke indlæst";
91     }
92    
93     int antal_dage = 2;
94    
95     if (request.getParameter("antaldage") != null ) {
96 torben 2385 antal_dage = Integer.parseInt( request.getParameter("antaldage") );
97 torben 2384 }
98    
99 torben 2402 int antal_nyfejl_glok = 0;
100     int antal_nyfejl_glfejl = 0;
101     int antal_nyok_glfejl = 0;
102     int antal_nyok_glgoogle = 0;
103 torben 2419 int antal_nygoogle_glgoogle = 0;
104 torben 2402 int antal_nyok_glok = 0;
105 torben 2384
106     try {
107 torben 2500 TimingHelper timer = new TimingHelper();
108    
109 torben 2384 StringBuilder sb = new StringBuilder();
110 torben 2418 sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
111 torben 2384
112 torben 2608 List<LoggedAddress> addrList = DatabaseLayerImplementation.getLoggedAdresses(antal_dage);
113 torben 2384
114     for(LoggedAddress addr : addrList) {
115     SearchResult res = search.search("" + addr.postnr, addr.adresse);
116    
117     if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
118    
119     if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
120    
121     appendLogLine("ny fejler, gl ok", sb, addr, res);
122 torben 2402 antal_nyfejl_glok++;
123 torben 2384
124     } else {
125     appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
126 torben 2402 antal_nyfejl_glfejl++;
127 torben 2384 }
128    
129     } else {
130     if (addr.status == 10) {
131     appendLogLine("ny OK, gl fejler", sb, addr, res);
132 torben 2402 antal_nyok_glfejl++;
133 torben 2384
134     } else if (addr.status == 12 ) {
135    
136     if (res.google == false && res.osm == false) {
137    
138 torben 2402 appendLogLine("ny Direkte, gl Google", sb, addr, res);
139     antal_nyok_glgoogle++;
140 torben 2419 } else {
141     appendLogLine("ny Google, gl Google", sb, addr, res);
142     antal_nygoogle_glgoogle++;
143     }
144 torben 2402 } else {
145     antal_nyok_glok++;
146 torben 2384 }
147     }
148    
149     if (res.osm || res.google) {
150     try {
151     Thread.sleep(50);//Back-off external services
152     } catch(InterruptedException e) {
153     //
154     }
155     }
156 torben 2419
157 torben 2384 }
158 torben 2419
159 torben 2500
160 torben 2502
161 torben 2500 sb.append("Forbrugt tid: ;").append( timer.getElapsed() ).append(";;;\n");
162     sb.append("SearchData genereret: ;").append( search.getStatistics().buildTime ).append(";;;\n");
163     sb.append("Sammenligning csv genereret: ;").append( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format( new Date() ) ).append(";;;\n");
164    
165    
166 torben 2394 sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
167 torben 2502 sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
168     double sekunder = timer.getElapsed() / 1000.0;
169     int adresserPrSekund = (int) Math.round( addrList.size() / sekunder );
170     sb.append("Antal adresser testet/s: ;").append(adresserPrSekund).append(";;;\n");
171    
172    
173 torben 2402 sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
174     sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
175     sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
176 torben 2419 sb.append("Antal ny google, gl google: ;").append( antal_nygoogle_glgoogle ).append(";;;\n");
177 torben 2402 sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
178     sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
179 torben 2384
180 torben 2402
181 torben 2419
182    
183 torben 2384
184     return sb.toString();
185    
186     } catch(SQLException e) {
187     throw new IOException(e);
188     }
189     }
190    
191 torben 2608
192 torben 2384 private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
193    
194 torben 2386 sb.append(msg).append(";")
195     .append(addr.postnr).append(";")
196 torben 2384 .append(addr.adresse).append(";")
197 torben 2386 .append(addr.status).append(";")
198     .append(res.status).append(";")
199     .append(res.splitResult).append(";")
200 torben 2418 .append(res.vej)
201 torben 2386 .append("\n");
202 torben 2384
203     }
204 torben 2608 */
205 torben 2384
206 torben 2332 }

  ViewVC Help
Powered by ViewVC 1.1.20