1 |
package dk.daoas.adressevedligehold.dawa; |
package dk.daoas.adressevedligehold.dawa; |
2 |
|
|
3 |
import java.util.ArrayList; |
import java.util.ArrayList; |
4 |
|
import java.util.Collections; |
5 |
import java.util.List; |
import java.util.List; |
6 |
import java.util.Map; |
import java.util.Map; |
7 |
|
import java.util.Map.Entry; |
8 |
import java.util.TreeMap; |
import java.util.TreeMap; |
9 |
|
|
10 |
|
import com.google.common.base.Splitter; |
11 |
|
|
12 |
import dk.daoas.adressevedligehold.MailSender; |
import dk.daoas.adressevedligehold.MailSender; |
13 |
import dk.daoas.adressevedligehold.beans.Address; |
import dk.daoas.adressevedligehold.beans.Address; |
14 |
import dk.daoas.adressevedligehold.beans.Address.AddressState; |
import dk.daoas.adressevedligehold.beans.Address.AddressState; |
85 |
StringBuilder headerSB = new StringBuilder(); |
StringBuilder headerSB = new StringBuilder(); |
86 |
headerSB.append("<h1>Indlæsnings rapport for " + regionName + " </h1><br>"); |
headerSB.append("<h1>Indlæsnings rapport for " + regionName + " </h1><br>"); |
87 |
|
|
88 |
int totalAntalNye = 0; |
List<Address> totalNye = new ArrayList<>(); |
89 |
int totalAntalFejl = 0; |
List<Address> totalFejl = new ArrayList<>(); |
90 |
int totalAntalUkendt = 0; |
CountMap totalUkendtDAV = new CountMap(); |
91 |
int totalAntalDobbelt = 0; |
CountMap totalDobbeltDav = new CountMap(); |
92 |
|
|
93 |
|
|
94 |
|
|
95 |
antalKommuner = kommuner.size(); |
antalKommuner = kommuner.size(); |
96 |
|
|
156 |
} |
} |
157 |
} |
} |
158 |
|
|
159 |
totalAntalNye += saveOK.size(); |
totalNye.addAll(saveOK); |
160 |
totalAntalFejl += saveFail.size(); |
totalFejl.addAll(saveFail); |
|
totalAntalUkendt += ukendteDAV.size(); |
|
|
totalAntalDobbelt += dobbeltGadeidDAV.size(); |
|
161 |
|
|
162 |
|
totalUkendtDAV.putAll(ukendteDAV); |
163 |
|
totalDobbeltDav.putAll(dobbeltGadeidDAV); |
164 |
|
|
165 |
|
|
166 |
antalBehandlede++; |
antalBehandlede++; |
167 |
|
|
173 |
sb.append("Antal insert fails: " + saveFail.size() + "<br>\n"); |
sb.append("Antal insert fails: " + saveFail.size() + "<br>\n"); |
174 |
sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n"); |
sb.append("Antal ukendte dav: " + ukendteDAV.size() + "<br>\n"); |
175 |
sb.append("Antal dobbelt gadeid dav: " + dobbeltGadeidDAV.size() + "<br>\n"); |
sb.append("Antal dobbelt gadeid dav: " + dobbeltGadeidDAV.size() + "<br>\n"); |
|
|
|
|
sb.append("<h3>Adresser ok:</h3>\n"); |
|
|
addressTable(sb, saveOK); |
|
|
|
|
|
sb.append("<h3>SQL INSERT fejl:</h3>\n"); |
|
|
addressTable(sb, saveFail); |
|
|
|
|
|
sb.append("<h3>Ukendte DAV:</h3>\n"); |
|
|
for (Map.Entry<String, Integer> dav : ukendteDAV.entrySet()) { |
|
|
sb.append(dav.getKey() + " : " + dav.getValue() + "<br>\n"); |
|
|
} |
|
|
|
|
|
sb.append("<h3>Dobbelt gadeid DAV:</h3>\n"); |
|
|
for (Map.Entry<String, Integer> dav : dobbeltGadeidDAV.entrySet()) { |
|
|
sb.append(dav.getKey() + " : " + dav.getValue() + "<br>\n"); |
|
|
} |
|
176 |
} |
} |
177 |
|
|
178 |
logger.info("Sendingreport mail"); |
logger.info("Sendingreport mail"); |
179 |
|
|
180 |
headerSB.append("Antal Inserts: " + totalAntalNye + "<br>\n"); |
headerSB.append("Antal Inserts: " + totalNye.size() + "<br>\n"); |
181 |
headerSB.append("Antal insert fails: " + totalAntalFejl + "<br>\n"); |
headerSB.append("Antal insert fails: " + totalFejl.size() + "<br>\n"); |
182 |
headerSB.append("Antal ukendte dav: " + totalAntalUkendt + "<br>\n"); |
headerSB.append("Antal ukendte dav: " + totalUkendtDAV.size() + "<br>\n"); |
183 |
headerSB.append("Antal dobbelt gadeid dav: " + totalAntalDobbelt + "<br>\n"); |
headerSB.append("Antal dobbelt gadeid dav: " + totalDobbeltDav.size() + "<br>\n"); |
184 |
headerSB.append("Elapsed: " + timer.getElapsed() + " ms.<br>\n"); |
headerSB.append("Elapsed: " + timer.getElapsed() + " ms.<br>\n"); |
185 |
|
|
186 |
MailSender.sendMail(subject, headerSB.toString() + sb.toString() ); |
Map<String,String> attachments = new TreeMap<>(); |
187 |
|
attachments.put("saveok.csv", buildAddressFile(totalNye) ); |
188 |
|
attachments.put("savefailed.csv", buildAddressFile(totalFejl) ); |
189 |
|
|
190 |
|
attachments.put("ukendte_dav.csv", buildDavFile(totalUkendtDAV) ); |
191 |
|
attachments.put("dobbelt_dav_gadeid.csv", buildDavFile(totalDobbeltDav) ); |
192 |
|
|
193 |
|
|
194 |
|
MailSender.sendMailWithAttachments(subject, headerSB.toString() + sb.toString(), attachments); |
195 |
|
|
196 |
|
|
197 |
//Cleaning |
//Cleaning |
198 |
dedup.clear(); |
dedup.clear(); |
199 |
} |
} |
200 |
|
|
201 |
private void addressTable(StringBuilder sb, List<Address> addr) { |
private String buildDavFile(CountMap dav) { |
202 |
sb.append("<table border=0>\n"); |
StringBuilder sb = new StringBuilder(); |
203 |
sb.append("<tr><th>GadeID</th><th>Postnr</th><th>Kom.kode</th><th>Vejkode</th><th>Vejnavn</th><th>Husnr<th><th>Litra</th></tr>"); |
|
204 |
|
sb.append("Gadeid;Vejnavn;Antal\r\n"); |
205 |
|
for ( Entry<String,Integer> entry : dav.entrySet()) { |
206 |
|
|
207 |
|
List<String> split = Splitter.on(' ').limit(2).splitToList(entry.getKey()); |
208 |
|
sb.append( split.get(0) ).append(";");//gadeid |
209 |
|
sb.append( split.get(1) ).append(";");//vejnavn |
210 |
|
|
211 |
|
sb.append( entry.getValue() ).append("\r\n");//vejnavn |
212 |
|
|
213 |
|
} |
214 |
|
|
215 |
|
return sb.toString(); |
216 |
|
} |
217 |
|
|
218 |
|
private String buildAddressFile(List<Address> addr) { |
219 |
|
|
220 |
|
Collections.sort(addr); //brug dens egen compareTo funktion |
221 |
|
|
222 |
|
StringBuilder sb = new StringBuilder(); |
223 |
|
|
224 |
|
sb.append("GadeID;Postnr;Kom.kode;Vejkode;Vejnavn;Husnr;Litra\r\n"); |
225 |
for (Address a: addr) { |
for (Address a: addr) { |
226 |
sb.append("<tr>"); |
sb.append(a.gadeid).append(";"); |
227 |
sb.append("<td> ").append(a.gadeid).append(" </td>"); |
sb.append(a.postnr).append(";"); |
228 |
sb.append("<td> ").append(a.postnr).append(" </td>"); |
sb.append(a.kommunekode).append(";"); |
229 |
sb.append("<td> ").append(a.kommunekode).append(" </td>"); |
sb.append(a.vejkode).append(";"); |
230 |
sb.append("<td> ").append(a.vejkode).append(" </td>"); |
sb.append(a.vejnavn).append(";"); |
231 |
sb.append("<td> ").append(a.vejnavn).append(" </td>"); |
sb.append(a.husnr).append(";"); |
232 |
sb.append("<td> ").append(a.husnr).append(" </td>"); |
sb.append(a.husnrbogstav).append("\r\n"); |
|
sb.append("<td> ").append(a.husnrbogstav).append(" </td>"); |
|
233 |
} |
} |
234 |
sb.append("</table><br>\n"); |
return sb.toString(); |
235 |
|
|
236 |
} |
} |
237 |
|
|
238 |
|
|
239 |
String getDAVid(Address addr) { |
String getDAVid(Address addr) { |
240 |
String dav = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode); |
String dav = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode); |
241 |
|
|