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

  ViewVC Help
Powered by ViewVC 1.1.20