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

  ViewVC Help
Powered by ViewVC 1.1.20