--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/13 11:52:33 2275 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/13 13:48:09 2276 @@ -56,6 +56,10 @@ if (addr == null) { return new SearchResult(Status.ERROR_UNKNOWN_ADDRESSPOINT); } + + if (addr.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET) { + return new SearchResult(Status.STATUS_NOT_COVERED); + } return new SearchResult(addr); @@ -67,7 +71,10 @@ searchGadeidentAdresser = new HashMap>(); idAddressMap = new HashMap(); + System.out.println("Build -- stage 1"); + alleAdresser = DatabaseLayer.getAllAdresses(); + for (Address a : alleAdresser) { idAddressMap.put(a.id, a); @@ -90,10 +97,102 @@ } String husnrSearch = "" + a.husnr + a.husnrbogstav; gade.put(husnrSearch, a); - + } + + System.out.println("Build -- stage 2"); + + List extDao = DatabaseLayer.getExtendedAdresslistDao(); + for (ExtendedBean eb : extDao) { + + Address orgAddress = idAddressMap.get(eb.orgId); + if (orgAddress == null) + continue; + + Address targetAddress = idAddressMap.get(eb.targetId); + if (targetAddress == null) + continue; + + orgAddress.extTarget = targetAddress; + orgAddress.extAfstand = eb.afstand; + + orgAddress.rute = calculateExtendedRoute(eb,orgAddress,targetAddress); + + if (orgAddress.rute != null) { + orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; + orgAddress.koreliste = targetAddress.koreliste; + orgAddress.dbkBane = targetAddress.dbkBane; + + /* Sådan gør den gamle service */ + orgAddress.kommunekode = targetAddress.kommunekode; + orgAddress.vejkode = targetAddress.vejkode; + + orgAddress.distributor = targetAddress.distributor; + } + } + System.out.println("Build -- stage 3"); + + System.out.println("Build -- stage 4"); + } + + private String calculateExtendedRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { + switch (targetAddress.distributor) { + case "DAO": + // /////////////////////////////////////////////////////////////////// + switch( eb.transport) { + case "cykel": + if (eb.afstand < 0.151) { + return "." + targetAddress.rute; + } else if (eb.afstand < 0.501) { + return ".." + targetAddress.rute; + } else if (eb.afstand < 0.701) { + return "..." + targetAddress.rute; + } else if (eb.afstand < 0.501) { + return "...." + targetAddress.rute; + } + break; + case "scooter": + if (eb.afstand < 0.151) { + return "." + targetAddress.rute; + } else if (eb.afstand < 0.801) { + return ".." + targetAddress.rute; + } else if (eb.afstand < 1.201) { + return "..." + targetAddress.rute; + } else if (eb.afstand < 2.101) { + return "...." + targetAddress.rute; + } + break; + case "bil": + if (eb.afstand < 0.151) { + return "." + targetAddress.rute; + } else if (eb.afstand < 1.001) { + return ".." + targetAddress.rute; + } else if (eb.afstand < 1.601) { + return "..." + targetAddress.rute; + } else if (eb.afstand < 2.601) { + return "...." + targetAddress.rute; + } + break; + } + break; + + /////////////////////////////////////////////////////////// + + case "BK": + String inject; + if (eb.afstand <= 0.500) { + inject = "."; + } else { + inject = ".."; + } + return AddressUtils.injectIntoBk(targetAddress.rute, inject); + } + return null; + } + + }