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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2418 - (hide annotations) (download)
Mon Mar 2 07:33:09 2015 UTC (9 years, 3 months ago) by torben
File size: 5444 byte(s)
Træk vejnavn med ud i sammenlign csv
1 torben 2332 package dk.daoas.daoadresseservice;
2    
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     import dk.daoas.daoadresseservice.beans.Address;
15 torben 2384 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 torben 2332
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 torben 2384 String type = request.getParameter("type");
30     String str = null;
31 torben 2332
32 torben 2384 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 torben 2332 }
45    
46 torben 2384 if (str != null) {
47     response.setContentType("text/csv");
48     response.setHeader("Content-Disposition", "filename=" + type + ".csv");
49     response.getWriter().print(str);
50     } else {
51 torben 2394 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 torben 2384 }
57 torben 2332 }
58    
59 torben 2384 /* *******************************************
60     *
61     */
62 torben 2332 private String udtraekIkkeDaekket() {
63 torben 2410 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
64 torben 2332 if (search == null) {
65     return "data struktur ikke indlæst";
66     }
67    
68     StringBuilder sb = new StringBuilder();
69 torben 2335 sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
70 torben 2332
71     for (Address addr : search.getNonCoveredAddresses() ) {
72 torben 2335 sb.append( addr.gadeid ).append(";")
73 torben 2332 .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 torben 2384
84     /* *******************************************
85     *
86     */
87 torben 2332
88 torben 2384 protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
89    
90 torben 2410 AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
91 torben 2384 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 torben 2385 antal_dage = Integer.parseInt( request.getParameter("antaldage") );
99 torben 2384 }
100    
101 torben 2402 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 torben 2384
107     try {
108     StringBuilder sb = new StringBuilder();
109 torben 2418 sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
110 torben 2384
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 torben 2402 antal_nyfejl_glok++;
122 torben 2384
123     } else {
124     appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
125 torben 2402 antal_nyfejl_glfejl++;
126 torben 2384 }
127    
128     } else {
129     if (addr.status == 10) {
130     appendLogLine("ny OK, gl fejler", sb, addr, res);
131 torben 2402 antal_nyok_glfejl++;
132 torben 2384
133     } else if (addr.status == 12 ) {
134    
135     if (res.google == false && res.osm == false) {
136    
137 torben 2402 appendLogLine("ny Direkte, gl Google", sb, addr, res);
138     antal_nyok_glgoogle++;
139 torben 2384 }
140 torben 2402 } else {
141     antal_nyok_glok++;
142 torben 2384 }
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 torben 2394 sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
155 torben 2402 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 torben 2384
161 torben 2402
162 torben 2384
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 torben 2386 sb.append(msg).append(";")
173     .append(addr.postnr).append(";")
174 torben 2384 .append(addr.adresse).append(";")
175 torben 2386 .append(addr.status).append(";")
176     .append(res.status).append(";")
177     .append(res.splitResult).append(";")
178 torben 2418 .append(res.vej)
179 torben 2386 .append("\n");
180 torben 2384
181     }
182    
183 torben 2332 }

  ViewVC Help
Powered by ViewVC 1.1.20