use of br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido in project balcaovirtual by trf2-jus-br.
the class ProcessoValidarGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
boolean fPorCaptcha = false;
if (req.captcha != null) {
if (!Utils.verifyCaptcha(req.captcha))
throw new PresentableUnloggedException("Token de reCaptcha inválido");
fPorCaptcha = true;
} else if (isValidToken(req.token, req.numero)) {
resp.token = req.token;
} else
AutenticarPost.assertAuthorization();
String usuario = null;
try {
Usuario u = AutenticarPost.assertUsuario();
usuario = u.usuario;
} catch (Exception e) {
usuario = BalcaojusServlet.INSTANCE.getProperty("public.username");
}
String[] numeros = (req.numero != null && req.numero.trim() != "") ? req.numero.split(",") : null;
if (numeros != null && numeros.length > 100)
throw new PresentableException("Não é permitido validar mais de 100 números de processos em uma única operação");
validar(usuario, numeros, req.nome, req.tipodedocumento, req.documento, req.oab, resp);
if (fPorCaptcha && resp.list != null && resp.list.size() > 0) {
StringBuilder sb = new StringBuilder();
for (ProcessoValido p : resp.list) {
if (sb.length() > 0)
sb.append(",");
sb.append(p.numero);
}
resp.token = jwt(sb.toString());
}
}
use of br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido in project balcaovirtual by trf2-jus-br.
the class ProcessoValidarGet method validar.
public static void validar(String usuario, String[] numeros, String nome, String tipoDeDocumento, String documento, String oab, IProcessoValidarGet.Response resp) throws Exception, PresentableException {
Map<String, SwaggerCallParameters> mapp = new HashMap<>();
int timeout;
String url;
String docvalido;
String context;
if (documento != null) {
docvalido = documento.replaceAll("[^0-9]", "");
if (docvalido.isEmpty())
throw new PresentableException("Termo de busca inválido !! " + documento);
url = "/processo/consultar?documento=" + URLEncoder.encode(docvalido, "UTF-8").replace("+", "%20");
context = " - consulta processo por cpf/cnpj da parte";
timeout = 30000;
} else if (nome != null) {
url = "/processo/consultar?nomeparte=" + URLEncoder.encode(nome.toUpperCase(), "UTF-8").replace("+", "%20");
context = " - consulta processo por nome da parte";
timeout = 30000;
} else if (oab != null) {
url = "/processo/consultar?oab=" + URLEncoder.encode(oab.toUpperCase(), "UTF-8").replace("+", "%20");
context = " - consulta processo por oab";
timeout = 30000;
} else {
IUsuarioUsernameProcessoNumerosGet.Request q = new IUsuarioUsernameProcessoNumerosGet.Request();
q.numeros = StringUtils.join(numeros, ",");
url = "/processo/" + q.numeros;
context = " - validar número de processo";
timeout = 15000;
}
url = url.replace("_", "%20");
for (String system : Utils.getSystems()) {
mapp.put(system, new SwaggerCallParameters(system + context, Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + usuario + url, null, IUsuarioUsernameProcessoNumerosGet.Response.class));
}
SwaggerMultipleCallResult mcr = SwaggerCall.callMultiple(mapp, timeout);
resp.status = Utils.getStatus(mcr);
// resp.list = new ArrayList<>();
Map<String, ProcessoValido> processosRecebidos = new HashMap<>();
ProcessoValido proc;
// TODO: Falta lógica para escolher o mais importante dos resultados.
for (String system : mcr.responses.keySet()) {
IUsuarioUsernameProcessoNumerosGet.Response rl = (IUsuarioUsernameProcessoNumerosGet.Response) mcr.responses.get(system);
if (rl.list == null || rl.list.size() == 0)
continue;
for (Processo r : rl.list) {
if (r.numero == null || r.perdecompetencia)
continue;
if (processosRecebidos.containsKey(r.numero)) {
// considera o processo no Eproc ao decidir competência
proc = processosRecebidos.get(r.numero);
if (proc.sistema.contains("apolo") && system.contains("eproc")) {
processosRecebidos.remove(r.numero);
} else if (proc.sistema.contains("eproc") && system.contains("apolo"))
continue;
else
throw new PresentableException("Não foi possível identificar qual sistema tem competência para o processo: " + r.numero, mcr.status);
}
ProcessoValido pv = new ProcessoValido();
pv.numero = r.numero;
pv.sistema = system;
pv.orgao = r.orgao;
pv.unidade = r.unidade != null ? r.unidade.trim() : null;
pv.localnaunidade = r.localNaUnidade;
pv.segredodejustica = r.segredodejustica;
pv.segredodejusticadesistema = r.segredodejusticadesistema;
pv.segredodejusticaabsoluto = r.segredodejusticaabsoluto;
pv.usuarioautorizado = r.usuarioautorizado;
pv.digital = r.eletronico;
pv.sentenciado = r.sentenciado;
pv.baixado = r.baixado;
pv.cdas = r.cdas;
if (r.dataultimomovimento != null)
pv.dataultimomovimento = Utils.parsearDataHoraMinuto(r.dataultimomovimento);
pv.autor = Texto.maiusculasEMinusculas(r.autor);
pv.reu = Texto.maiusculasEMinusculas(r.reu);
processosRecebidos.put(pv.numero, pv);
}
}
resp.list.addAll(processosRecebidos.values());
resp.datavalidacao = new Date();
}
use of br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido in project balcaovirtual by trf2-jus-br.
the class Notificar method notificarUsuario.
private void notificarUsuario(Dao dao, String usuario, List<String> tokens, Map<String, Date> processos, List<ProcessoValido> list) throws Exception {
// Calcular o body
int c = 0;
for (ProcessoValido pv : list) {
Date dt = processos.get(pv.numero);
if (dt == null || dt.before(pv.dataultimomovimento))
c++;
}
if (c == 0)
return;
String body = usuario + " possui " + c + (c > 1 ? " processos favoritos com movimentos novos." : " processo favorito com movimentos novos.");
// SwaggerUtils.log(Notificar.class).info(body);
String titulo = BalcaojusServlet.INSTANCE.getProperty("notificar.titulo");
if (titulo != null) {
String clickAction = BalcaojusServlet.INSTANCE.getProperty("notificar.url");
String icon = BalcaojusServlet.INSTANCE.getProperty("base.url") + "/assets/icon-256x256.png";
int sucessos = NotificarFirebase.enviarNotificacao(dao, tokens, titulo, body, clickAction, icon);
// SwaggerUtils.log(Notificar.class)
// .info(sucessos + (sucessos == 1 ? " notificação enviada." : " notificações
// enviadas."));
}
}
Aggregations