From d95c3d5f6e547ab16ff60ae5c0695f420fc32a54 Mon Sep 17 00:00:00 2001 From: valdevir Date: Mon, 3 Feb 2020 21:44:46 +0000 Subject: [PATCH] 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 --- .../utilerias/LocalizadorHelper.java | 120 ++++++++++++++---- 1 file changed, 93 insertions(+), 27 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/utilerias/LocalizadorHelper.java b/src/com/rjconsultores/ventaboletos/utilerias/LocalizadorHelper.java index 5e87a6115..388e091ea 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/LocalizadorHelper.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/LocalizadorHelper.java @@ -10,9 +10,9 @@ import org.slf4j.LoggerFactory; public class LocalizadorHelper { private static Logger log = LoggerFactory.getLogger(LocalizadorHelper.class); - + private Map mapa = new HashMap(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 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 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; + } }