--- dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java 2016/03/07 21:00:45 2968 +++ dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java 2016/03/07 22:17:30 2969 @@ -448,8 +448,9 @@ for (ExtendedBean eb : extDao) { Address orgAddress = idAddressMap.get(eb.orgId); - if (orgAddress == null) + if (orgAddress == null) { continue; + } /*if (orgAddress.daekningsType != DaekningsType.DAEKNING_IKKEDAEKKET) { //kan være at adressen er blevet markeret dækket og - find-nærmeste data ikke er opdateret i mellemtiden @@ -472,31 +473,36 @@ continue; } - orgAddress.extTarget = targetAddress; - orgAddress.extAfstand = eb.afstand; - boolean covered = false; + + short modifyCounter = 0; + if (targetAddress.distributor.equals("DAO")) { - orgAddress.routingMandag.rute = calculateExtendedDaoRoute(eb, targetAddress.routingMandag); - orgAddress.routingMandag.rute = ruteHelper.getInstance(orgAddress.routingMandag.rute); - - if (orgAddress.routingMandag.rute != null) { - orgAddress.routingMandag.koreliste = targetAddress.routingMandag.koreliste; - covered = true; - } + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingMandag, targetAddress.routingMandag, korelisteHelper); + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingTirsdag, targetAddress.routingTirsdag, korelisteHelper); + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingOnsdag, targetAddress.routingOnsdag, korelisteHelper); + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingTorsdag, targetAddress.routingTorsdag, korelisteHelper); + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingFredag, targetAddress.routingFredag, korelisteHelper); + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingLordag, targetAddress.routingLordag, korelisteHelper); + modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingSondag, targetAddress.routingSondag, korelisteHelper); } if (targetAddress.distributor.equals("BK")) { - orgAddress.routingMandag.koreliste = calculateExtendedBkKoreliste(eb, targetAddress.routingMandag); - orgAddress.routingMandag.koreliste = korelisteHelper.getInstance(orgAddress.routingMandag.koreliste); - - if (orgAddress.routingMandag.koreliste != null) { - orgAddress.routingMandag.rute = targetAddress.routingMandag.rute; - covered = true; - } + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingMandag, targetAddress.routingMandag, korelisteHelper); + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingTirsdag, targetAddress.routingTirsdag, korelisteHelper); + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingOnsdag, targetAddress.routingOnsdag, korelisteHelper); + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingTorsdag, targetAddress.routingTorsdag, korelisteHelper); + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingFredag, targetAddress.routingFredag, korelisteHelper); + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingLordag, targetAddress.routingLordag, korelisteHelper); + modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingSondag, targetAddress.routingSondag, korelisteHelper); } - if (covered) { //Kopier resten af felterne + if (modifyCounter > 0) { + orgAddress.extTarget = targetAddress; + orgAddress.extAfstand = eb.afstand; + } + + if (modifyCounter>0 && orgAddress.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET) { //Kopier resten af felterne orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; orgAddress.dbkBane = targetAddress.dbkBane; @@ -535,13 +541,13 @@ } short modifyCounter = 0; - modifyCounter += update100PctRouting(bean, addr.routingMandag); - modifyCounter += update100PctRouting(bean, addr.routingTirsdag); - modifyCounter += update100PctRouting(bean, addr.routingOnsdag); - modifyCounter += update100PctRouting(bean, addr.routingTorsdag); - modifyCounter += update100PctRouting(bean, addr.routingFredag); - modifyCounter += update100PctRouting(bean, addr.routingLordag); - modifyCounter += update100PctRouting(bean, addr.routingSondag); + modifyCounter += updateRouting100Pct(bean, addr.routingMandag); + modifyCounter += updateRouting100Pct(bean, addr.routingTirsdag); + modifyCounter += updateRouting100Pct(bean, addr.routingOnsdag); + modifyCounter += updateRouting100Pct(bean, addr.routingTorsdag); + modifyCounter += updateRouting100Pct(bean, addr.routingFredag); + modifyCounter += updateRouting100Pct(bean, addr.routingLordag); + modifyCounter += updateRouting100Pct(bean, addr.routingSondag); if (addr.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET && modifyCounter>0) { @@ -598,7 +604,40 @@ } - public short update100PctRouting(HundredePctBean bean, RoutingInfo routing) { + public short updateRoutingExtendedBK(ExtendedBean bean, RoutingInfo source, RoutingInfo target, DeduplicateHelper korelisteHelper) { + if (source.rute != null) { + return 0; + } + + source.koreliste = calculateExtendedBkKoreliste(bean, target); + source.koreliste = korelisteHelper.getInstance(source.koreliste); + + if (source.koreliste != null) { + source.rute = target.rute; + return 1; + } else { + return 0; + } + } + + public short updateRoutingExtendedDAO(ExtendedBean bean, RoutingInfo source, RoutingInfo target, DeduplicateHelper korelisteHelper) { + if (source.rute != null) { + return 0; + } + + source.rute = calculateExtendedDaoRoute(bean, target); + source.rute = korelisteHelper.getInstance(source.rute); + + if (source.rute != null) { + source.koreliste = target.koreliste; + return 1; + } else { + return 0; + } + + } + + public short updateRouting100Pct(HundredePctBean bean, RoutingInfo routing) { if (routing.rute == null) { routing.rute = bean.rute; routing.koreliste = bean.koreliste;