7 |
import java.util.concurrent.ConcurrentHashMap; |
import java.util.concurrent.ConcurrentHashMap; |
8 |
|
|
9 |
import dk.daoas.daoadresseservice.AddressUtils.SplitResult; |
import dk.daoas.daoadresseservice.AddressUtils.SplitResult; |
10 |
import dk.daoas.daoadresseservice.SearchResult.Status; |
import dk.daoas.daoadresseservice.beans.Address; |
11 |
|
import dk.daoas.daoadresseservice.beans.ExtendedBean; |
12 |
|
import dk.daoas.daoadresseservice.beans.HundredePctBean; |
13 |
|
import dk.daoas.daoadresseservice.beans.SearchResult; |
14 |
|
import dk.daoas.daoadresseservice.beans.SearchResult.Status; |
15 |
import dk.daoas.daoadresseservice.db.DatabaseLayer; |
import dk.daoas.daoadresseservice.db.DatabaseLayer; |
16 |
|
|
17 |
public class AdressSearch { |
public class AdressSearch { |
137 |
orgAddress.extTarget = targetAddress; |
orgAddress.extTarget = targetAddress; |
138 |
orgAddress.extAfstand = eb.afstand; |
orgAddress.extAfstand = eb.afstand; |
139 |
|
|
140 |
orgAddress.rute = calculateExtendedRoute(eb,orgAddress,targetAddress); |
boolean covered = false; |
141 |
|
if (targetAddress.distributor.equals("DAO")) { |
142 |
|
orgAddress.rute = calculateExtendedDaoRoute(eb,orgAddress,targetAddress); |
143 |
|
if (orgAddress.rute != null) { |
144 |
|
orgAddress.koreliste = targetAddress.koreliste; |
145 |
|
covered = true; |
146 |
|
} |
147 |
|
} |
148 |
|
|
149 |
|
if (targetAddress.distributor.equals("BK")) { |
150 |
|
orgAddress.koreliste = calculateExtendedBkKoreliste(eb,orgAddress,targetAddress); |
151 |
|
if (orgAddress.koreliste != null) { |
152 |
|
orgAddress.rute = targetAddress.rute; |
153 |
|
covered = true; |
154 |
|
} |
155 |
|
} |
156 |
|
|
157 |
if (orgAddress.rute != null) { |
if (covered) { //Kopier resten af felterne |
158 |
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; |
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; |
|
orgAddress.koreliste = targetAddress.koreliste; |
|
159 |
orgAddress.dbkBane = targetAddress.dbkBane; |
orgAddress.dbkBane = targetAddress.dbkBane; |
160 |
|
|
161 |
/* Sådan gør den gamle service */ |
/* Sådan gør den gamle service */ |
198 |
} |
} |
199 |
|
|
200 |
|
|
201 |
private String calculateExtendedRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { |
private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { |
202 |
switch (targetAddress.distributor) { |
|
203 |
case "DAO": |
// /////////////////////////////////////////////////////////////////// |
204 |
// /////////////////////////////////////////////////////////////////// |
switch( eb.transport) { |
205 |
switch( eb.transport) { |
case "cykel": |
206 |
case "cykel": |
if (eb.afstand < 0.151) { |
207 |
if (eb.afstand < 0.151) { |
return "." + targetAddress.rute; |
208 |
return "." + targetAddress.rute; |
} else if (eb.afstand < 0.501) { |
209 |
} else if (eb.afstand < 0.501) { |
return ".." + targetAddress.rute; |
210 |
return ".." + targetAddress.rute; |
} else if (eb.afstand < 0.701) { |
211 |
} else if (eb.afstand < 0.701) { |
return "..." + targetAddress.rute; |
212 |
return "..." + targetAddress.rute; |
} else if (eb.afstand < 0.501) { |
213 |
} else if (eb.afstand < 0.501) { |
return "...." + targetAddress.rute; |
214 |
return "...." + targetAddress.rute; |
} |
215 |
} |
break; |
216 |
break; |
case "scooter": |
217 |
case "scooter": |
if (eb.afstand < 0.151) { |
218 |
if (eb.afstand < 0.151) { |
return "." + targetAddress.rute; |
219 |
return "." + targetAddress.rute; |
} else if (eb.afstand < 0.801) { |
220 |
} else if (eb.afstand < 0.801) { |
return ".." + targetAddress.rute; |
221 |
return ".." + targetAddress.rute; |
} else if (eb.afstand < 1.201) { |
222 |
} else if (eb.afstand < 1.201) { |
return "..." + targetAddress.rute; |
223 |
return "..." + targetAddress.rute; |
} else if (eb.afstand < 2.101) { |
224 |
} else if (eb.afstand < 2.101) { |
return "...." + targetAddress.rute; |
225 |
return "...." + targetAddress.rute; |
} |
226 |
} |
break; |
227 |
break; |
case "bil": |
228 |
case "bil": |
if (eb.afstand < 0.151) { |
229 |
if (eb.afstand < 0.151) { |
return "." + targetAddress.rute; |
230 |
return "." + targetAddress.rute; |
} else if (eb.afstand < 1.001) { |
231 |
} else if (eb.afstand < 1.001) { |
return ".." + targetAddress.rute; |
232 |
return ".." + targetAddress.rute; |
} else if (eb.afstand < 1.601) { |
233 |
} else if (eb.afstand < 1.601) { |
return "..." + targetAddress.rute; |
234 |
return "..." + targetAddress.rute; |
} else if (eb.afstand < 2.601) { |
235 |
} else if (eb.afstand < 2.601) { |
return "...." + targetAddress.rute; |
|
return "...." + targetAddress.rute; |
|
|
} |
|
|
break; |
|
236 |
} |
} |
237 |
break; |
break; |
238 |
|
} |
|
/////////////////////////////////////////////////////////// |
|
|
|
|
|
case "BK": |
|
|
String inject; |
|
|
if (eb.afstand <= 0.500) { |
|
|
inject = "."; |
|
|
} else { |
|
|
inject = ".."; |
|
|
} |
|
|
return AddressUtils.injectIntoBk(targetAddress.rute, inject); |
|
|
} |
|
239 |
return null; |
return null; |
240 |
} |
} |
241 |
|
|
242 |
|
/////////////////////////////////////////////////////////// |
243 |
|
private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) { |
244 |
|
String inject; |
245 |
|
if (eb.afstand <= 0.500) { |
246 |
|
inject = "."; |
247 |
|
} else { |
248 |
|
inject = ".."; |
249 |
|
} |
250 |
|
return AddressUtils.injectIntoBk(targetAddress.koreliste, inject); |
251 |
|
} |
252 |
|
|
253 |
|
|
254 |
} |
} |