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

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

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

revision 2335 by torben, Sun Feb 22 18:27:29 2015 UTC revision 2419 by torben, Mon Mar 2 07:45:27 2015 UTC
# Line 1  Line 1 
1  package dk.daoas.daoadresseservice;  package dk.daoas.daoadresseservice;
2    
3  import java.io.IOException;  import java.io.IOException;
4    import java.io.PrintWriter;
5    import java.sql.SQLException;
6    import java.util.List;
7    
8  import javax.servlet.ServletException;  import javax.servlet.ServletException;
9  import javax.servlet.annotation.WebServlet;  import javax.servlet.annotation.WebServlet;
# Line 9  import javax.servlet.http.HttpServletReq Line 12  import javax.servlet.http.HttpServletReq
12  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpServletResponse;
13    
14  import dk.daoas.daoadresseservice.beans.Address;  import dk.daoas.daoadresseservice.beans.Address;
15    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    
20  /**  /**
21   * Servlet implementation class CsvUdtraek   * Servlet implementation class CsvUdtraek
# Line 19  public class CsvUdtraek extends HttpServ Line 26  public class CsvUdtraek extends HttpServ
26    
27                    
28          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29                  String type = request.getParameter("type");                  String type = request.getParameter("type");            
30                    String str = null;
31                                    
32                  String str;                  if (type != null) {
33                  switch( type ) {                          switch( type ) {
34                  case "ikkedaekket":                          case "ikkedaekket":
35                          str = udtraekIkkeDaekket();                                  str = udtraekIkkeDaekket();
36                          break;                                  break;
37                  default:                          case "sammenlign":
38                          str = "ukendt type";                                  str = udtraekSammenligning(request);
39                          break;                                  break;
40                            default:
41                                    str = null;
42                                    break;
43                            }
44                  }                  }
45                                    
46                  response.setContentType("text/csv");                  if (str != null) {
47                  response.getWriter().print(str);                          response.setContentType("text/csv");
48                            response.setHeader("Content-Disposition", "filename=" + type + ".csv");
49                            response.getWriter().print(str);
50                    } else {
51                            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                    }
57          }          }
58                    
59            /* *******************************************
60             *
61             */
62          private String udtraekIkkeDaekket() {          private String udtraekIkkeDaekket() {
63                  AdressSearch search = (AdressSearch) getServletContext().getAttribute("search");                  AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
64                  if (search == null) {                  if (search == null) {
65                          return "data struktur ikke indlæst";                          return "data struktur ikke indlæst";
66                  }                  }
# Line 56  public class CsvUdtraek extends HttpServ Line 80  public class CsvUdtraek extends HttpServ
80                                    
81                  return sb.toString();                  return sb.toString();
82          }          }
83            
84            /* *******************************************
85             *
86             */
87    
88            protected String udtraekSammenligning(HttpServletRequest request) throws IOException {
89                    
90                    AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
91                    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                            antal_dage = Integer.parseInt( request.getParameter("antaldage") );
99                    }
100    
101                    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_nygoogle_glgoogle = 0;
106                    int antal_nyok_glok = 0;
107                    
108                    try {
109                            StringBuilder sb = new StringBuilder();
110                            sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
111                    
112                            List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);                    
113                            
114                            for(LoggedAddress addr : addrList) {
115                                    SearchResult res = search.search("" + addr.postnr, addr.adresse);
116                                    
117                                    if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
118                                            
119                                            if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
120    
121                                                    appendLogLine("ny fejler, gl ok", sb, addr, res);
122                                                    antal_nyfejl_glok++;
123                                                    
124                                            } else {
125                                                    appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
126                                                    antal_nyfejl_glfejl++;
127                                            }
128    
129                                    } else {
130                                            if (addr.status == 10) {
131                                                    appendLogLine("ny OK, gl fejler", sb, addr, res);
132                                                    antal_nyok_glfejl++;
133    
134                                            } else if (addr.status == 12 ) {
135                                                    
136                                                    if (res.google == false && res.osm == false) {
137                                                            
138                                                            appendLogLine("ny Direkte, gl Google", sb, addr, res);  
139                                                            antal_nyok_glgoogle++;
140                                                    } else {
141                                                            appendLogLine("ny Google, gl Google", sb, addr, res);  
142                                                            antal_nygoogle_glgoogle++;                                                      
143                                                    }
144                                            } else {
145                                                    antal_nyok_glok++;
146                                            }
147                                    }
148                                    
149                                    if (res.osm || res.google) {
150                                            try {
151                                                    Thread.sleep(50);//Back-off external services
152                                            } catch(InterruptedException e) {
153                                                    //
154                                            }
155                                    }
156                            
157                            }
158                            
159                            sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
160                            sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");                  
161                            sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
162                            sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
163                            sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
164                            sb.append("Antal ny google, gl google: ;").append( antal_nygoogle_glgoogle ).append(";;;\n");
165                            sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
166                            sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
167                            
168                            
169                            
170                            
171    
172                            return sb.toString();
173                            
174                    } catch(SQLException e) {
175                            throw new IOException(e);
176                    }
177            }
178            
179        private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
180            
181                    sb.append(msg).append(";")
182                            .append(addr.postnr).append(";")
183                            .append(addr.adresse).append(";")
184                            .append(addr.status).append(";")
185                            .append(res.status).append(";")
186                            .append(res.splitResult).append(";")
187                            .append(res.vej)
188                            .append("\n");
189            
190        }
191    
192  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20