/[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 2340 by torben, Mon Feb 23 13:12:38 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/admin/CsvUdtraek.java revision 2607 by torben, Tue Jul 14 08:48:33 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.setHeader("Content-Disposition", "filename=" + type + ".csv");                          type = URLEncoder.encode(type, "UTF-8");
53                  response.getWriter().print(str);                          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>"); - Deprecated
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 57  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            @Deprecated
95            protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
96                    
97                    AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
98                    if (search == null) {
99                            return "data struktur ikke indlæst";
100                    }
101                    
102                    int antal_dage = 2;
103                    
104                    if (request.getParameter("antaldage") != null ) {
105                            antal_dage = Integer.parseInt( request.getParameter("antaldage") );
106                    }
107    
108                    int antal_nyfejl_glok = 0;
109                    int antal_nyfejl_glfejl = 0;
110                    int antal_nyok_glfejl = 0;
111                    int antal_nyok_glgoogle = 0;
112                    int antal_nygoogle_glgoogle = 0;
113                    int antal_nyok_glok = 0;
114                    
115                    try {
116                            TimingHelper timer = new TimingHelper();
117                            
118                            StringBuilder sb = new StringBuilder();
119                            sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
120                    
121                            List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);                    
122                            
123                            for(LoggedAddress addr : addrList) {
124                                    SearchResult res = search.search("" + addr.postnr, addr.adresse);
125                                    
126                                    if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
127                                            
128                                            if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
129    
130                                                    appendLogLine("ny fejler, gl ok", sb, addr, res);
131                                                    antal_nyfejl_glok++;
132                                                    
133                                            } else {
134                                                    appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
135                                                    antal_nyfejl_glfejl++;
136                                            }
137    
138                                    } else {
139                                            if (addr.status == 10) {
140                                                    appendLogLine("ny OK, gl fejler", sb, addr, res);
141                                                    antal_nyok_glfejl++;
142    
143                                            } else if (addr.status == 12 ) {
144                                                    
145                                                    if (res.google == false && res.osm == false) {
146                                                            
147                                                            appendLogLine("ny Direkte, gl Google", sb, addr, res);  
148                                                            antal_nyok_glgoogle++;
149                                                    } else {
150                                                            appendLogLine("ny Google, gl Google", sb, addr, res);  
151                                                            antal_nygoogle_glgoogle++;                                                      
152                                                    }
153                                            } else {
154                                                    antal_nyok_glok++;
155                                            }
156                                    }
157                                    
158                                    if (res.osm || res.google) {
159                                            try {
160                                                    Thread.sleep(50);//Back-off external services
161                                            } catch(InterruptedException e) {
162                                                    //
163                                            }
164                                    }
165                            
166                            }
167                            
168                            
169                            
170                            sb.append("Forbrugt tid: ;").append( timer.getElapsed() ).append(";;;\n");
171                            sb.append("SearchData genereret: ;").append( search.getStatistics().buildTime ).append(";;;\n");
172                            sb.append("Sammenligning csv genereret: ;").append( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format( new Date() ) ).append(";;;\n");
173                            
174                            
175                            sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
176                            sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
177                            double sekunder = timer.getElapsed() / 1000.0;
178                            int adresserPrSekund =  (int)  Math.round( addrList.size() / sekunder );
179                            sb.append("Antal adresser testet/s: ;").append(adresserPrSekund).append(";;;\n");
180                            
181                            
182                            sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
183                            sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
184                            sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
185                            sb.append("Antal ny google, gl google: ;").append( antal_nygoogle_glgoogle ).append(";;;\n");
186                            sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
187                            sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
188                            
189                            
190                            
191                            
192    
193                            return sb.toString();
194                            
195                    } catch(SQLException e) {
196                            throw new IOException(e);
197                    }
198            }
199            
200        private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
201            
202                    sb.append(msg).append(";")
203                            .append(addr.postnr).append(";")
204                            .append(addr.adresse).append(";")
205                            .append(addr.status).append(";")
206                            .append(res.status).append(";")
207                            .append(res.splitResult).append(";")
208                            .append(res.vej)
209                            .append("\n");
210            
211        }
212    
213  }  }

Legend:
Removed from v.2340  
changed lines
  Added in v.2607

  ViewVC Help
Powered by ViewVC 1.1.20