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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2457 - (show annotations) (download)
Fri Mar 20 13:57:47 2015 UTC (9 years, 2 months ago) by torben
File size: 5707 byte(s)
switch to maven
1 package dk.daoas.daoadresseservice;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.sql.SQLException;
6 import java.util.List;
7
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 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
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 String type = request.getParameter("type");
30 String str = null;
31
32 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 }
45
46 if (str != null) {
47 response.setContentType("text/csv");
48 response.setHeader("Content-Disposition", "filename=" + type + ".csv");
49 response.getWriter().print(str);
50 } else {
51 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 }
57 }
58
59 /* *******************************************
60 *
61 */
62 private String udtraekIkkeDaekket() {
63 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
64 if (search == null) {
65 return "data struktur ikke indlæst";
66 }
67
68 StringBuilder sb = new StringBuilder();
69 sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
70
71 for (Address addr : search.getNonCoveredAddresses() ) {
72 sb.append( addr.gadeid ).append(";")
73 .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
84 /* *******************************************
85 *
86 */
87
88 protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
89
90 AddressSearch search = (AddressSearch) 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 antal_dage = Integer.parseInt( request.getParameter("antaldage") );
99 }
100
101 int antal_nyfejl_glok = 0;
102 int antal_nyfejl_glfejl = 0;
103 int antal_nyok_glfejl = 0;
104 int antal_nyok_glgoogle = 0;
105 int antal_nygoogle_glgoogle = 0;
106 int antal_nyok_glok = 0;
107
108 try {
109 StringBuilder sb = new StringBuilder();
110 sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
111
112 List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);
113
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 antal_nyfejl_glok++;
123
124 } else {
125 appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
126 antal_nyfejl_glfejl++;
127 }
128
129 } else {
130 if (addr.status == 10) {
131 appendLogLine("ny OK, gl fejler", sb, addr, res);
132 antal_nyok_glfejl++;
133
134 } else if (addr.status == 12 ) {
135
136 if (res.google == false && res.osm == false) {
137
138 appendLogLine("ny Direkte, gl Google", sb, addr, res);
139 antal_nyok_glgoogle++;
140 } else {
141 appendLogLine("ny Google, gl Google", sb, addr, res);
142 antal_nygoogle_glgoogle++;
143 }
144 } else {
145 antal_nyok_glok++;
146 }
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
157 }
158
159 sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
160 sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
161 sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
162 sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
163 sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
164 sb.append("Antal ny google, gl google: ;").append( antal_nygoogle_glgoogle ).append(";;;\n");
165 sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
166 sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
167
168
169
170
171
172 return sb.toString();
173
174 } catch(SQLException e) {
175 throw new IOException(e);
176 }
177 }
178
179 private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
180
181 sb.append(msg).append(";")
182 .append(addr.postnr).append(";")
183 .append(addr.adresse).append(";")
184 .append(addr.status).append(";")
185 .append(res.status).append(";")
186 .append(res.splitResult).append(";")
187 .append(res.vej)
188 .append("\n");
189
190 }
191
192 }

  ViewVC Help
Powered by ViewVC 1.1.20