/[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 2384 - (show annotations) (download)
Thu Feb 26 13:11:45 2015 UTC (9 years, 2 months ago) by torben
File size: 4299 byte(s)
CSV udtraæk der sammenligner gl og ny service
1 package dk.daoas.daoadresseservice;
2
3 import java.io.IOException;
4 import java.sql.SQLException;
5 import java.util.List;
6
7 import javax.servlet.ServletException;
8 import javax.servlet.annotation.WebServlet;
9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import dk.daoas.daoadresseservice.beans.Address;
14 import dk.daoas.daoadresseservice.beans.LoggedAddress;
15 import dk.daoas.daoadresseservice.beans.SearchResult;
16 import dk.daoas.daoadresseservice.beans.SearchResult.Status;
17 import dk.daoas.daoadresseservice.db.DatabaseLayer;
18
19 /**
20 * Servlet implementation class CsvUdtraek
21 */
22 @WebServlet("/CsvUdtraek")
23 public class CsvUdtraek extends HttpServlet {
24 private static final long serialVersionUID = 1L;
25
26
27 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
28 String type = request.getParameter("type");
29 String str = null;
30
31 if (type != null) {
32 switch( type ) {
33 case "ikkedaekket":
34 str = udtraekIkkeDaekket();
35 break;
36 case "sammenlign":
37 str = udtraekSammenligning(request);
38 break;
39 default:
40 str = null;
41 break;
42 }
43 }
44
45 if (str != null) {
46 response.setContentType("text/csv");
47 response.setHeader("Content-Disposition", "filename=" + type + ".csv");
48 response.getWriter().print(str);
49 } else {
50 response.setContentType("text/plain");
51 response.getWriter().print("Type parameter is blank or invalid value");
52 }
53 }
54
55 /* *******************************************
56 *
57 */
58 private String udtraekIkkeDaekket() {
59 AdressSearch search = (AdressSearch) getServletContext().getAttribute("search");
60 if (search == null) {
61 return "data struktur ikke indlæst";
62 }
63
64 StringBuilder sb = new StringBuilder();
65 sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
66
67 for (Address addr : search.getNonCoveredAddresses() ) {
68 sb.append( addr.gadeid ).append(";")
69 .append( addr.postnr ).append(";")
70 .append( addr.vejnavn ).append(";")
71 .append( addr.husnr ).append(";")
72 .append( addr.husnrbogstav ).append(";")
73 .append( addr.distributor != null ? addr.distributor : "" )
74 .append( "\n" );
75 }
76
77 return sb.toString();
78 }
79
80 /* *******************************************
81 *
82 */
83
84 protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
85
86 AdressSearch search = (AdressSearch) getServletContext().getAttribute("search");
87 if (search == null) {
88 return "data struktur ikke indlæst";
89 }
90
91 int antal_dage = 2;
92
93 if (request.getParameter("antaldage") != null ) {
94 antal_dage = Integer.parseInt("antaldage");
95 }
96
97
98 try {
99 StringBuilder sb = new StringBuilder();
100 sb.append("besked;postnr;adresse;gl status;ny status\n");
101
102 List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);
103
104 for(LoggedAddress addr : addrList) {
105 SearchResult res = search.search("" + addr.postnr, addr.adresse);
106
107 if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
108
109 if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
110
111 appendLogLine("ny fejler, gl ok", sb, addr, res);
112
113 } else {
114 appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
115 }
116
117 } else {
118 if (addr.status == 10) {
119 appendLogLine("ny OK, gl fejler", sb, addr, res);
120
121 } else if (addr.status == 12 ) {
122
123 if (res.google == false && res.osm == false) {
124
125 appendLogLine("ny Direkte, gl Google", sb, addr, res);
126 }
127 }
128 }
129
130 if (res.osm || res.google) {
131 try {
132 Thread.sleep(50);//Back-off external services
133 } catch(InterruptedException e) {
134 //
135 }
136 }
137 }
138 sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
139
140
141 return sb.toString();
142
143 } catch(SQLException e) {
144 throw new IOException(e);
145 }
146 }
147
148 private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
149
150 sb.append(msg).append(";").append(addr.postnr).append(";")
151 .append(addr.adresse).append(";")
152 .append(addr.status).append(";").append(res.status).append("\n");
153
154 }
155
156 }

  ViewVC Help
Powered by ViewVC 1.1.20