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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/CsvUdtraek.java revision 2335 by torben, Sun Feb 22 18:27:29 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/admin/CsvUdtraek.java revision 2532 by torben, Fri May 8 20:36:56 2015 UTC
# Line 1  Line 1 
1  package dk.daoas.daoadresseservice;  package dk.daoas.daoadresseservice.admin;
2    
3  import java.io.IOException;  import java.io.IOException;
4    import java.io.PrintWriter;
5    import java.net.URLEncoder;
6    import java.sql.SQLException;
7    import java.text.SimpleDateFormat;
8    import java.util.Date;
9    import java.util.List;
10    
11  import javax.servlet.ServletException;  import javax.servlet.ServletException;
12  import javax.servlet.annotation.WebServlet;  import javax.servlet.annotation.WebServlet;
# Line 8  import javax.servlet.http.HttpServlet; Line 14  import javax.servlet.http.HttpServlet;
14  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletRequest;
15  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpServletResponse;
16    
17    import dk.daoas.daoadresseservice.AddressSearch;
18  import dk.daoas.daoadresseservice.beans.Address;  import dk.daoas.daoadresseservice.beans.Address;
19    import dk.daoas.daoadresseservice.beans.LoggedAddress;
20    import dk.daoas.daoadresseservice.beans.SearchResult;
21    import dk.daoas.daoadresseservice.beans.SearchResult.Status;
22    import dk.daoas.daoadresseservice.db.DatabaseLayer;
23    import dk.daoas.daoadresseservice.util.TimingHelper;
24    
25  /**  /**
26   * Servlet implementation class CsvUdtraek   * Servlet implementation class CsvUdtraek
# Line 19  public class CsvUdtraek extends HttpServ Line 31  public class CsvUdtraek extends HttpServ
31    
32                    
33          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34                  String type = request.getParameter("type");                  String type = request.getParameter("type");            
35                    String str = null;
36                                    
37                  String str;                  if (type != null) {
38                  switch( type ) {                          switch( type ) {
39                  case "ikkedaekket":                          case "ikkedaekket":
40                          str = udtraekIkkeDaekket();                                  str = udtraekIkkeDaekket();
41                          break;                                  break;
42                  default:                          case "sammenlign":
43                          str = "ukendt type";                                  str = udtraekSammenligning(request);
44                          break;                                  break;
45                            default:
46                                    str = null;
47                                    break;
48                            }
49                  }                  }
50                                    
51                  response.setContentType("text/csv");                  if (str != null) {
52                  response.getWriter().print(str);                          type = URLEncoder.encode(type, "UTF-8");
53                            response.setContentType("text/csv");
54                            response.setHeader("Content-Disposition", "filename=" + type + ".csv");
55                            response.getWriter().print(str);
56                    } else {
57                            PrintWriter w = response.getWriter();
58                            response.setContentType("text/html");
59                            w.print("Type parameter is blank or invalid value<br>");
60                            w.print("Type: <a href='CsvUdtraek?type=ikkedaekket'>ikkedaekket</a> <br>");
61                            w.print("Type: <a href='CsvUdtraek?type=sammenlign&antaldage=5'>sammenlign</a> <br>");
62                    }
63          }          }
64                    
65            /* *******************************************
66             *
67             */
68          private String udtraekIkkeDaekket() {          private String udtraekIkkeDaekket() {
69                  AdressSearch search = (AdressSearch) getServletContext().getAttribute("search");                  AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
70                  if (search == null) {                  if (search == null) {
71                          return "data struktur ikke indlæst";                          return "data struktur ikke indlæst";
72                  }                  }
# Line 56  public class CsvUdtraek extends HttpServ Line 86  public class CsvUdtraek extends HttpServ
86                                    
87                  return sb.toString();                  return sb.toString();
88          }          }
89            
90            /* *******************************************
91             *
92             */
93    
94            protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
95                    
96                    AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
97                    if (search == null) {
98                            return "data struktur ikke indlæst";
99                    }
100                    
101                    int antal_dage = 2;
102                    
103                    if (request.getParameter("antaldage") != null ) {
104                            antal_dage = Integer.parseInt( request.getParameter("antaldage") );
105                    }
106    
107                    int antal_nyfejl_glok = 0;
108                    int antal_nyfejl_glfejl = 0;
109                    int antal_nyok_glfejl = 0;
110                    int antal_nyok_glgoogle = 0;
111                    int antal_nygoogle_glgoogle = 0;
112                    int antal_nyok_glok = 0;
113                    
114                    try {
115                            TimingHelper timer = new TimingHelper();
116                            
117                            StringBuilder sb = new StringBuilder();
118                            sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
119                    
120                            List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);                    
121                            
122                            for(LoggedAddress addr : addrList) {
123                                    SearchResult res = search.search("" + addr.postnr, addr.adresse);
124                                    
125                                    if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
126                                            
127                                            if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
128    
129                                                    appendLogLine("ny fejler, gl ok", sb, addr, res);
130                                                    antal_nyfejl_glok++;
131                                                    
132                                            } else {
133                                                    appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
134                                                    antal_nyfejl_glfejl++;
135                                            }
136    
137                                    } else {
138                                            if (addr.status == 10) {
139                                                    appendLogLine("ny OK, gl fejler", sb, addr, res);
140                                                    antal_nyok_glfejl++;
141    
142                                            } else if (addr.status == 12 ) {
143                                                    
144                                                    if (res.google == false && res.osm == false) {
145                                                            
146                                                            appendLogLine("ny Direkte, gl Google", sb, addr, res);  
147                                                            antal_nyok_glgoogle++;
148                                                    } else {
149                                                            appendLogLine("ny Google, gl Google", sb, addr, res);  
150                                                            antal_nygoogle_glgoogle++;                                                      
151                                                    }
152                                            } else {
153                                                    antal_nyok_glok++;
154                                            }
155                                    }
156                                    
157                                    if (res.osm || res.google) {
158                                            try {
159                                                    Thread.sleep(50);//Back-off external services
160                                            } catch(InterruptedException e) {
161                                                    //
162                                            }
163                                    }
164                            
165                            }
166                            
167                            
168                            
169                            sb.append("Forbrugt tid: ;").append( timer.getElapsed() ).append(";;;\n");
170                            sb.append("SearchData genereret: ;").append( search.getStatistics().buildTime ).append(";;;\n");
171                            sb.append("Sammenligning csv genereret: ;").append( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format( new Date() ) ).append(";;;\n");
172                            
173                            
174                            sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
175                            sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
176                            double sekunder = timer.getElapsed() / 1000.0;
177                            int adresserPrSekund =  (int)  Math.round( addrList.size() / sekunder );
178                            sb.append("Antal adresser testet/s: ;").append(adresserPrSekund).append(";;;\n");
179                            
180                            
181                            sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
182                            sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
183                            sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
184                            sb.append("Antal ny google, gl google: ;").append( antal_nygoogle_glgoogle ).append(";;;\n");
185                            sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
186                            sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
187                            
188                            
189                            
190                            
191    
192                            return sb.toString();
193                            
194                    } catch(SQLException e) {
195                            throw new IOException(e);
196                    }
197            }
198            
199        private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
200            
201                    sb.append(msg).append(";")
202                            .append(addr.postnr).append(";")
203                            .append(addr.adresse).append(";")
204                            .append(addr.status).append(";")
205                            .append(res.status).append(";")
206                            .append(res.splitResult).append(";")
207                            .append(res.vej)
208                            .append("\n");
209            
210        }
211    
212  }  }

Legend:
Removed from v.2335  
changed lines
  Added in v.2532

  ViewVC Help
Powered by ViewVC 1.1.20