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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2607 - (show 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 package dk.daoas.daoadresseservice.admin;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.net.URLEncoder;
6 import java.sql.SQLException;
7 import java.text.SimpleDateFormat;
8 import java.util.Date;
9 import java.util.List;
10
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 import dk.daoas.daoadresseservice.AddressSearch;
18 import dk.daoas.daoadresseservice.beans.Address;
19 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 import dk.daoas.daoadresseservice.util.TimingHelper;
24
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 String type = request.getParameter("type");
35 String str = null;
36
37 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 }
50
51 if (str != null) {
52 type = URLEncoder.encode(type, "UTF-8");
53 response.setContentType("text/csv");
54 response.setHeader("Content-Disposition", "filename=" + type + ".csv");
55 response.getWriter().print(str);
56 } else {
57 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 //w.print("Type: <a href='CsvUdtraek?type=sammenlign&antaldage=5'>sammenlign</a> <br>"); - Deprecated
62 }
63 }
64
65 /* *******************************************
66 *
67 */
68 private String udtraekIkkeDaekket() {
69 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
70 if (search == null) {
71 return "data struktur ikke indlæst";
72 }
73
74 StringBuilder sb = new StringBuilder();
75 sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
76
77 for (Address addr : search.getNonCoveredAddresses() ) {
78 sb.append( addr.gadeid ).append(";")
79 .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
90 /* *******************************************
91 *
92 */
93
94 @Deprecated
95 protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
96
97 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
98 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 antal_dage = Integer.parseInt( request.getParameter("antaldage") );
106 }
107
108 int antal_nyfejl_glok = 0;
109 int antal_nyfejl_glfejl = 0;
110 int antal_nyok_glfejl = 0;
111 int antal_nyok_glgoogle = 0;
112 int antal_nygoogle_glgoogle = 0;
113 int antal_nyok_glok = 0;
114
115 try {
116 TimingHelper timer = new TimingHelper();
117
118 StringBuilder sb = new StringBuilder();
119 sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
120
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 antal_nyfejl_glok++;
132
133 } else {
134 appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
135 antal_nyfejl_glfejl++;
136 }
137
138 } else {
139 if (addr.status == 10) {
140 appendLogLine("ny OK, gl fejler", sb, addr, res);
141 antal_nyok_glfejl++;
142
143 } else if (addr.status == 12 ) {
144
145 if (res.google == false && res.osm == false) {
146
147 appendLogLine("ny Direkte, gl Google", sb, addr, res);
148 antal_nyok_glgoogle++;
149 } else {
150 appendLogLine("ny Google, gl Google", sb, addr, res);
151 antal_nygoogle_glgoogle++;
152 }
153 } else {
154 antal_nyok_glok++;
155 }
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
166 }
167
168
169
170 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 sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
176 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 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 sb.append("Antal ny google, gl google: ;").append( antal_nygoogle_glgoogle ).append(";;;\n");
186 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
189
190
191
192
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 sb.append(msg).append(";")
203 .append(addr.postnr).append(";")
204 .append(addr.adresse).append(";")
205 .append(addr.status).append(";")
206 .append(res.status).append(";")
207 .append(res.splitResult).append(";")
208 .append(res.vej)
209 .append("\n");
210
211 }
212
213 }

  ViewVC Help
Powered by ViewVC 1.1.20