--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 16:12:28 2868 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/02/03 18:51:36 2904 @@ -15,6 +15,7 @@ import dk.daoas.adressevedligehold.beans.Address; import dk.daoas.adressevedligehold.beans.Address.AddressState; import dk.daoas.adressevedligehold.db.DatabaseLayerImplementation; +import dk.daoas.adressevedligehold.tasks.TaskLogger; import dk.daoas.adressevedligehold.util.DeduplicateHelper; import dk.daoas.adressevedligehold.util.MiscUtils; import dk.daoas.adressevedligehold.util.TimingHelper; @@ -28,6 +29,8 @@ public class AddressManager { + private TaskLogger logger = TaskLogger.getInstance(); + List
addressList; @@ -35,6 +38,8 @@ ArrayList rejectedEntries = new ArrayList(); + Map unknownStreets = new TreeMap(); + Map dbkBaneMap = new TreeMap(); public AddressManager() throws SQLException { @@ -82,7 +87,7 @@ list.trimToSize(); } - System.out.println("AddressManager ready, elapsed " + timer.getElapsed() + "ms"); + logger.info("AddressManager ready, elapsed " + timer.getElapsed() + "ms"); } @@ -179,8 +184,8 @@ continue; } - System.out.println(addr.state + ": " + addr.toStringExtended() ); - System.out.println(addr.getRuteString() ); + logger.info(addr.state + ": " + addr.toStringExtended() ); + logger.info(addr.getRuteString() ); if (count++ > 50) return; @@ -188,7 +193,7 @@ } public void writeBackChanges() { - System.out.println("Writing back changes"); + logger.info("Writing back changes"); TimingHelper timer = new TimingHelper(); List
updates = new ArrayList
(1024*1024); @@ -206,10 +211,11 @@ DatabaseLayerImplementation db = new DatabaseLayerImplementation(); db.updateAddresses(updates); + db.saveNewAddresses(inserts); - System.out.println("Writeback done: elapsed " + timer.getElapsed() + "ms."); + logger.info("Writeback done: elapsed " + timer.getElapsed() + "ms."); } @@ -224,6 +230,10 @@ private void visitSingle(AddressSourceEntry entry) { TreeMap> gade = searchStructure.get( entry.gadeid ); if (gade == null) { + if (! unknownStreets.containsKey(entry.gadeid)) { + unknownStreets.put(entry.gadeid, entry.vejnavn); + } + createFromEntry(entry); // if we get here there was no match - so we need to create it return; } @@ -250,7 +260,11 @@ TreeMap> gade = searchStructure.get( entry.gadeid ); if (gade == null) { - System.out.println("[Range] Ukendt gadeID " + entry); + if (! unknownStreets.containsKey(entry.gadeid)) { + unknownStreets.put(entry.gadeid, entry.vejnavn); + } + + logger.info("[Range] Ukendt gadeID " + entry); return; } @@ -290,7 +304,7 @@ private void updateAddress(Address addr, AddressSourceEntry entry) { if ( addr.distributor != null && addr.distributor.equals(entry.distributor) == false) { rejectedEntries.add(entry); - System.out.println("Afviser " + entry); + logger.info("Afviser " + entry); return; } @@ -312,7 +326,7 @@ } } } else { - System.out.println( "Double visit monday " + addr); + logger.info( "Double visit monday " + addr); } } @@ -334,7 +348,7 @@ } } } else { - System.out.println( "Double visit tuesday " + addr); + logger.info( "Double visit tuesday " + addr); } } @@ -354,7 +368,7 @@ } } } else { - System.out.println( "Double visit wednesday " + addr); + logger.info( "Double visit wednesday " + addr); } } @@ -376,7 +390,7 @@ } } } else { - System.out.println( "Double visit thursday " + addr); + logger.info( "Double visit thursday " + addr); } } @@ -397,7 +411,7 @@ } } } else { - System.out.println( "Double visit friday " + addr); + logger.info( "Double visit friday " + addr); } } @@ -419,7 +433,7 @@ } } } else { - System.out.println( "Double visit saturday " + addr); + logger.info( "Double visit saturday " + addr); } } @@ -440,7 +454,7 @@ } } } else { - System.out.println( "Double visit sunday " + addr); + logger.info( "Double visit sunday " + addr); } } @@ -477,13 +491,22 @@ if (entry.kommunekode < 100) { return; } - if (Short.parseShort(Integer.toString(entry.gadeid).substring(0, 4)) != entry.postnr) { + + if (entry.gadeid == 0) { + return; + } + + String gadeidStr = Integer.toString(entry.gadeid); + if (gadeidStr.length() != 9) { + return; + } + if (Short.parseShort(gadeidStr.substring(0, 4)) != entry.postnr) { return; //gadeid / postnr mismatch } - System.out.println("Opretter adresse ud fra " + entry); + logger.info("Opretter adresse ud fra " + entry); Address a = new Address(); a.state = AddressState.CREATED; @@ -597,11 +620,11 @@ bane = 204; break; default: - throw new RuntimeException("Ukendt distributor" + a.distributor); //Silence findBugs + throw new RuntimeException("Ukendt distributor: " + a.distributor); //Silence findBugs } if (bane == null) { - throw new RuntimeException("Ukendt bane for postnr" + a.postnr); + throw new RuntimeException("Ukendt bane for postnr: " + a.postnr); } if (a.dbkBane != bane) { @@ -616,6 +639,10 @@ return Collections.unmodifiableList(addressList); } + public Map getUnknownStreets() { + return Collections.unmodifiableMap( unknownStreets ); + } + public int getRejectedCount() {