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

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

  ViewVC Help
Powered by ViewVC 1.1.20