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-87c2c4800839
master
valdevir 2020-02-03 21:44:46 +00:00
parent 62f923bb8f
commit d95c3d5f6e
1 changed files with 93 additions and 27 deletions

View File

@ -10,9 +10,9 @@ import org.slf4j.LoggerFactory;
public class LocalizadorHelper {
private static Logger log = LoggerFactory.getLogger(LocalizadorHelper.class);
private Map<String, String> mapa = new HashMap<String, String>(0);
public LocalizadorHelper() {
mapa.put("1", "GO");
mapa.put("2", "JM");
@ -25,66 +25,132 @@ public class LocalizadorHelper {
mapa.put("9", "KZ");
mapa.put("0", "WT");
}
public String getLocalizadorAlfa(final String localizador) {
String valor = localizador.substring(2, 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;
}
public String getLocalizadorReal(final String localizador) {
if (StringUtils.isBlank(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;
}
}
String chave = entry.getKey();
String valor = entry.getValue();
if (valor.contains(digito)) {
novo += chave;
break;
}
}
} else {
novo += digito;
}
}
return "01" + String.format("%010d", Long.parseLong(novo, 16));
} catch (Exception e) {
log.error("Localizador invalido: " + localizador, e);
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;
}
}