/[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

revision 2332 by torben, Sat Feb 21 13:39:56 2015 UTC revision 2418 by torben, Mon Mar 2 07:33:09 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.getWriter().print(str);                  if (str != null) {
47                            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                  }                  }
67                                    
68                  StringBuilder sb = new StringBuilder();                  StringBuilder sb = new StringBuilder();
69                  sb.append("rowid;gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");                  sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
70                                    
71                  for (Address addr : search.getNonCoveredAddresses() ) {                  for (Address addr : search.getNonCoveredAddresses() ) {
72                          sb.append( addr.id ).append(";")                          sb.append( addr.gadeid ).append(";")
                                 .append( addr.gadeid ).append(";")  
73                                  .append( addr.postnr ).append(";")                                  .append( addr.postnr ).append(";")
74                                  .append( addr.vejnavn ).append(";")                                  .append( addr.vejnavn ).append(";")
75                                  .append( addr.husnr ).append(";")                                  .append( addr.husnr ).append(";")
# 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_nyok_glok = 0;
106                    
107                    try {
108                            StringBuilder sb = new StringBuilder();
109                            sb.append("besked;postnr;adresse;gl status;ny status;ny split;ny vej\n");
110                    
111                            List<LoggedAddress> addrList = DatabaseLayer.getLoggedAdresses(antal_dage);                    
112                            
113                            for(LoggedAddress addr : addrList) {
114                                    SearchResult res = search.search("" + addr.postnr, addr.adresse);
115                                    
116                                    if (res.status != Status.STATUS_OK) { //Ny service fandt ikke adressen) {
117                                            
118                                            if (addr.status != 10 ) {//Hvis gl service kunne finde adressen så er vi ude i en regression
119    
120                                                    appendLogLine("ny fejler, gl ok", sb, addr, res);
121                                                    antal_nyfejl_glok++;
122                                                    
123                                            } else {
124                                                    appendLogLine("ny fejler, gl fejler !!!", sb, addr, res);
125                                                    antal_nyfejl_glfejl++;
126                                            }
127    
128                                    } else {
129                                            if (addr.status == 10) {
130                                                    appendLogLine("ny OK, gl fejler", sb, addr, res);
131                                                    antal_nyok_glfejl++;
132    
133                                            } else if (addr.status == 12 ) {
134                                                    
135                                                    if (res.google == false && res.osm == false) {
136                                                            
137                                                            appendLogLine("ny Direkte, gl Google", sb, addr, res);  
138                                                            antal_nyok_glgoogle++;
139                                                    }                                              
140                                            } else {
141                                                    antal_nyok_glok++;
142                                            }
143                                    }
144                                    
145                                    if (res.osm || res.google) {
146                                            try {
147                                                    Thread.sleep(50);//Back-off external services
148                                            } catch(InterruptedException e) {
149                                                    //
150                                            }
151                                    }
152                            }
153                            sb.append("Antal adresser testet: ;").append(addrList.size()).append(";;;\n");
154                            sb.append("Antal dage: ;").append( antal_dage ).append(";;;\n");
155                            sb.append("Antal ny ok, gl ok: ;").append( antal_nyok_glok ).append(";;;\n");
156                            sb.append("Antal ny ok, gl google: ;").append( antal_nyok_glgoogle ).append(";;;\n");
157                            sb.append("Antal ny ok, gl fejl: ;").append( antal_nyok_glfejl ).append(";;;\n");
158                            sb.append("Antal ny fejl, gl ok: ;").append( antal_nyfejl_glok ).append(";;;\n");
159                            sb.append("Antal ny fejl, gl fejl: ;").append( antal_nyfejl_glfejl ).append(";;;\n");
160                            
161                            
162    
163                            return sb.toString();
164                            
165                    } catch(SQLException e) {
166                            throw new IOException(e);
167                    }
168            }
169            
170        private void appendLogLine(String msg, StringBuilder sb, LoggedAddress addr, SearchResult res) {
171            
172                    sb.append(msg).append(";")
173                            .append(addr.postnr).append(";")
174                            .append(addr.adresse).append(";")
175                            .append(addr.status).append(";")
176                            .append(res.status).append(";")
177                            .append(res.splitResult).append(";")
178                            .append(res.vej)
179                            .append("\n");
180            
181        }
182    
183  }  }

Legend:
Removed from v.2332  
changed lines
  Added in v.2418

  ViewVC Help
Powered by ViewVC 1.1.20