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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2418 - (show annotations) (download)
Mon Mar 2 07:33:09 2015 UTC (9 years, 2 months ago) by torben
File size: 5444 byte(s)
Træk vejnavn med ud i sammenlign csv
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_nyok_glok = 0;
106
107 try {
108 StringBuilder sb = new StringBuilder();
109 sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
110
111 List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);
112
113 for(LoggedAddress addr : addrList) {
114 SearchResult res = search.search("" + addr.postnr, addr.adresse);
115
116 if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
117
118 if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
119
120 appendLogLine("ny fejler, gl ok", sb, addr, res);
121 antal_nyfejl_glok++;
122
123 } else {
124 appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
125 antal_nyfejl_glfejl++;
126 }
127
128 } else {
129 if (addr.status == 10) {
130 appendLogLine("ny OK, gl fejler", sb, addr, res);
131 antal_nyok_glfejl++;
132
133 } else if (addr.status == 12 ) {
134
135 if (res.google == false && res.osm == false) {
136
137 appendLogLine("ny Direkte, gl Google", sb, addr, res);
138 antal_nyok_glgoogle++;
139 }
140 } else {
141 antal_nyok_glok++;
142 }
143 }
144
145 if (res.osm || res.google) {
146 try {
147 Thread.sleep(50);//Back-off external services
148 } catch(InterruptedException e) {
149 //
150 }
151 }
152 }
153 sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
154 sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
155 sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
156 sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
157 sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
158 sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
159 sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
160
161
162
163 return sb.toString();
164
165 } catch(SQLException e) {
166 throw new IOException(e);
167 }
168 }
169
170 private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
171
172 sb.append(msg).append(";")
173 .append(addr.postnr).append(";")
174 .append(addr.adresse).append(";")
175 .append(addr.status).append(";")
176 .append(res.status).append(";")
177 .append(res.splitResult).append(";")
178 .append(res.vej)
179 .append("\n");
180
181 }
182
183 }

  ViewVC Help
Powered by ViewVC 1.1.20