fixes bug#17915
qua:Kamila dev:Daniel git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@100014 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
62f923bb8f
commit
d95c3d5f6e
|
@ -87,4 +87,70 @@ public class LocalizadorHelper {
|
|||
return "010000000000";
|
||||
}
|
||||
}
|
||||
|
||||
public String getLocalizadorRealEmbarcada(final String localizador) {
|
||||
|
||||
if (StringUtils.isBlank(localizador)) {
|
||||
return localizador;
|
||||
}
|
||||
|
||||
try {
|
||||
String novo = "";
|
||||
|
||||
for (int idx = 0; idx < localizador.length(); idx++) {
|
||||
String digito = localizador.substring(idx, idx + 1);
|
||||
digito = digito.toUpperCase();
|
||||
|
||||
if (!"ABCDEF1234567890".contains(digito)) {
|
||||
for (Map.Entry<String, String> entry : mapa.entrySet()) {
|
||||
String chave = entry.getKey();
|
||||
String valor = entry.getValue();
|
||||
|
||||
if (valor.contains(digito)) {
|
||||
novo += chave;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
novo += digito;
|
||||
}
|
||||
}
|
||||
|
||||
return String.format("%010d", Long.parseLong(novo, 16));
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("Localizador invalido: " + localizador, e);
|
||||
|
||||
return "010000000000";
|
||||
}
|
||||
}
|
||||
|
||||
public String getLocalizadorAlfaEmbarcada(final String localizador) {
|
||||
if (StringUtils.isBlank(localizador) || StringUtils.isAlpha(localizador)) {
|
||||
return localizador;
|
||||
}
|
||||
|
||||
String valor = localizador.substring(0, localizador.length());
|
||||
String alfa = Long.toHexString(Integer.valueOf(valor)).toUpperCase();
|
||||
|
||||
String novo = "";
|
||||
|
||||
Random gerador = new Random();
|
||||
|
||||
for (int idx = 0; idx < alfa.length(); idx++) {
|
||||
String digito = alfa.substring(idx, idx + 1);
|
||||
|
||||
if (mapa.containsKey(digito)) {
|
||||
String mascara = mapa.get(digito);
|
||||
|
||||
int r = gerador.nextInt(2);
|
||||
|
||||
novo += mascara.substring(r, r + 1);
|
||||
} else {
|
||||
novo += digito;
|
||||
}
|
||||
}
|
||||
|
||||
return novo;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue