use of com.crivano.swaggerservlet.SwaggerMultipleCallResult 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 com.crivano.swaggerservlet.SwaggerMultipleCallResult in project balcaovirtual by trf2-jus-br.
the class PeticaoIntercorrenteContarGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
Usuario u = BalcaojusServlet.getPrincipal();
Map<String, SwaggerCallParameters> mapp = new HashMap<>();
for (String system : Utils.getSystems()) {
mapp.put(system, new SwaggerCallParameters(system + " - obter tipos de petição intercorrente", Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + u.usuario + "/peticao-intercorrente/contar?dias=7", null, IUsuarioUsernamePeticaoIntercorrenteContarGet.Response.class));
}
SwaggerMultipleCallResult mcr = SwaggerCall.callMultiple(mapp, BalcaojusServlet.TIMEOUT_MILLISECONDS);
resp.status = Utils.getStatus(mcr);
resp.list = new ArrayList<>();
for (String system : mcr.responses.keySet()) {
IUsuarioUsernamePeticaoIntercorrenteContarGet.Response r = (IUsuarioUsernamePeticaoIntercorrenteContarGet.Response) mcr.responses.get(system);
if (r.list != null)
for (Contagem i : r.list) {
QuantidadePorData t = new QuantidadePorData();
t.data = i.data;
t.quantidade = i.quantidade;
resp.list.add(t);
}
}
}
use of com.crivano.swaggerservlet.SwaggerMultipleCallResult in project balcaovirtual by trf2-jus-br.
the class MesaIdGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
Usuario u = BalcaojusServlet.getPrincipal();
if (!u.isInterno())
throw new Exception("Mesas só podem ser acessadas por usuários internos");
resp.list = new ArrayList<>();
resp.status = new ArrayList<>();
Map<String, SwaggerCallParameters> mapp = new HashMap<>();
for (String system : Utils.getSystems()) {
if (!u.usuarios.containsKey(system) || !"int".equals(u.usuarios.get(system).origem) || !system.contains(".eproc"))
continue;
IUsuarioUsernameLocalIdMesaId2DocumentosGet.Request q = new IUsuarioUsernameLocalIdMesaId2DocumentosGet.Request();
q.username = u.usuario;
mapp.put(system, new SwaggerCallParameters(system + " - listar minutas", Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + u.usuario + "/local/null/mesa/null/documentos", q, IUsuarioUsernameLocalIdMesaId2DocumentosGet.Response.class));
}
SwaggerMultipleCallResult mcr = null;
mcr = SwaggerCall.callMultiple(mapp, 15000);
resp.status = Utils.getStatus(mcr);
for (String system : mcr.responses.keySet()) {
IUsuarioUsernameLocalIdMesaId2DocumentosGet.Response r = (IUsuarioUsernameLocalIdMesaId2DocumentosGet.Response) mcr.responses.get(system);
for (ISistemaProcessual.MesaDocumento a : r.list) {
IBalcaojus.MesaDocumento i = new MesaDocumento();
i.dataDeInclusao = a.dataDeInclusao;
i.id = a.id;
i.numeroDoProcesso = a.numeroDoProcesso;
i.autor = Texto.maiusculasEMinusculas(a.autor);
i.reu = Texto.maiusculasEMinusculas(a.reu);
i.numeroDoDocumento = a.numeroDoDocumento;
i.descricao = a.descricao;
i.status = a.status;
i.descricaoDoStatus = a.descricaoDoStatus;
i.tipoDoDocumento = Texto.maiusculasEMinusculas(a.tipoDoDocumento);
i.identificadorDoUsuarioQueIncluiu = a.identificadorDoUsuarioQueIncluiu;
i.nomeDoUsuarioQueIncluiu = a.nomeDoUsuarioQueIncluiu;
i.siglaDaUnidade = a.siglaDaUnidade;
i.conteudo = a.conteudo;
i.sistema = system;
if (a.lembretes != null) {
i.lembretes = new ArrayList<>();
for (ISistemaProcessual.Lembrete j : a.lembretes) {
IBalcaojus.Lembrete lembrete = new IBalcaojus.Lembrete();
lembrete.id = j.id;
lembrete.dataDeInclusao = j.dataDeInclusao;
lembrete.conteudo = j.conteudo;
lembrete.identificadorDoUsuario = j.identificadorDoUsuario;
lembrete.nomeDoUsuario = j.nomeDoUsuario;
i.lembretes.add(lembrete);
}
}
resp.list.add(i);
}
}
// Pipeline para minuta-padrão
if (resp.list.size() == 0)
return;
// Carregar padrões
List<Minuta> padroes = new ArrayList<>();
try (Dao dao = new Dao()) {
List<Padrao> l = dao.obtemPadroes(u.usuario);
for (Padrao i : l) {
padroes.add(new Minuta(i.getPadrId().toString(), i.getPadrTxConteudo()));
}
}
if (padroes.size() == 0)
return;
// Carregar Minutas
List<Minuta> minutas = new ArrayList<>();
for (MesaDocumento m : resp.list) {
if (m.conteudo == null || m.conteudo.trim().isEmpty())
continue;
minutas.add(new Minuta(m));
}
// Processar similaridade
NormalizedStringSimilarity metric = new SorensenDice();
for (Minuta minuta : minutas) {
for (Minuta padrao : padroes) {
double coef = 0d;
if (minuta.markdown.equals(padrao.markdown))
coef = 1d;
else
coef = 0.99d * metric.similarity(minuta.markdownSimplificado, padrao.markdownSimplificado);
if (coef > 0.75d) {
if (minuta.similaridade == 0d || minuta.similaridade < coef) {
minuta.padrao = padrao;
minuta.similaridade = coef;
}
}
}
}
for (Minuta minuta : minutas) {
if (minuta.padrao == null)
continue;
minuta.calcularDiff();
minuta.doc.similaridade = minuta.similaridade;
minuta.doc.diferencas = minuta.htmlDiff;
minuta.doc.idPadrao = minuta.padrao.id;
System.out.println(minuta.markdownDiff);
System.out.println(minuta.similaridade + " -> " + minuta.markdownSimplificado);
}
}
use of com.crivano.swaggerservlet.SwaggerMultipleCallResult in project balcaovirtual by trf2-jus-br.
the class AvisoListarGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
Usuario u = BalcaojusServlet.getPrincipal();
resp.list = new ArrayList<>();
resp.status = new ArrayList<>();
List<String> mniSystems = new ArrayList<>();
Map<String, SwaggerCallParameters> mapp = new HashMap<>();
for (String system : Utils.getSystems()) {
if (!u.usuarios.containsKey(system) || !"ext".equals(u.usuarios.get(system).origem))
continue;
if (system.contains(".eproc") && (req.mni == null || !req.mni)) {
IUsuarioUsernameAvisosGet.Request q = new IUsuarioUsernameAvisosGet.Request();
q.username = u.usuario;
mapp.put(system, new SwaggerCallParameters(system + " - listar avisos", Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + u.usuario + "/avisos", q, IUsuarioUsernameAvisosGet.Response.class));
} else {
mniSystems.add(system);
}
}
// Inicia a carga de avisos do Eproc
SwaggerMultipleCallResult mcr = null;
if (mapp.size() > 0) {
mcr = SwaggerCall.callMultiple(mapp, 15000);
resp.status = Utils.getStatus(mcr);
}
// Carrega avisos via MNI
for (String system : mniSystems) SoapMNI.consultarAvisosPendentes(system, u.usuario, u.getSenha(), resp.list, resp.status);
// Retoma a carga de avisos do Eproc
if (mapp.size() > 0) {
resp.status = Utils.getStatus(mcr);
for (String system : mcr.responses.keySet()) {
IUsuarioUsernameAvisosGet.Response r = (IUsuarioUsernameAvisosGet.Response) mcr.responses.get(system);
for (ISistemaProcessual.Aviso a : r.list) {
Aviso i = new Aviso();
i.idaviso = a.idAviso;
i.dataaviso = a.dataAviso;
i.tipo = a.tipo;
i.processo = a.processo;
i.unidade = a.unidade;
i.unidadenome = a.unidadeNome;
i.unidadetipo = a.unidadeTipo;
i.orgao = a.orgao;
i.sistema = system;
i.localidade = a.localidade;
i.teor = a.teor;
i.eventointimacao = a.eventoIntimacao;
i.motivointimacao = a.motivoIntimacao;
i.numeroprazo = a.numeroPrazo;
i.tipoprazo = a.tipoPrazo;
i.multiplicadorprazo = a.multiplicadorPrazo;
i.datalimiteintimacaoautomatica = a.dataLimiteIntimacaoAutomatica;
i.datafinalprazo = a.dataFinalPrazo;
i.assunto = a.assunto;
resp.list.add(i);
}
}
}
}
use of com.crivano.swaggerservlet.SwaggerMultipleCallResult in project balcaovirtual by trf2-jus-br.
the class AutenticarPost method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
String usuariosRestritos = Utils.getUsuariosRestritos();
if (usuariosRestritos != null) {
if (!ArrayUtils.contains(usuariosRestritos.split(","), req.username))
throw new PresentableUnloggedException("Usuário não autorizado.");
}
// Read list from connected systems
String[] systems = Utils.getSystems();
if (systems == null)
return;
String authorization = "Basic " + SwaggerUtils.base64Encode((req.username + ":" + req.password).getBytes());
Map<String, SwaggerCallParameters> mapp = new HashMap<>();
for (String system : systems) {
String urlsys = Utils.getApiUrl(system);
IUsuarioUsernameGet.Request q = new IUsuarioUsernameGet.Request();
q.username = req.username;
mapp.put(system, new SwaggerCallParameters(system + "-autenticar-usuário", authorization, "GET", urlsys + "/usuario/" + req.username, q, IUsuarioUsernameGet.Response.class));
}
SwaggerMultipleCallResult mcr = SwaggerCall.callMultiple(mapp, BalcaojusServlet.TIMEOUT_MILLISECONDS);
resp.status = Utils.getStatus(mcr);
String origem = null;
String usuarios = null;
String cpf = null;
String nome = null;
String email = null;
for (String system : mcr.responses.keySet()) {
IUsuarioUsernameGet.Response u = (IUsuarioUsernameGet.Response) mcr.responses.get(system);
if (u.codusu == null)
continue;
if (origem == null)
origem = u.interno ? "int" : "ext";
else if ((origem.equals("int") && !u.interno) || (origem.equals("ext") && u.interno))
origem = "int/ext";
if (u.cpf != null)
cpf = u.cpf;
if (u.nome != null)
nome = u.nome;
if (u.email != null)
email = u.email;
if (usuarios == null)
usuarios = "";
else
usuarios += ";";
usuarios += system + "," + u.codusu + "," + (u.interno ? "int" : "ext") + "," + serialize(u.codentidade != null && !u.codentidade.equals("0") ? u.codentidade : null) + "," + serialize(u.entidade) + "," + serialize(u.codunidade != null && !u.codunidade.equals("0") ? u.codunidade : null) + "," + serialize(u.unidade) + "," + (u.perfil != null && !u.perfil.equals("") ? u.perfil.toLowerCase() : "null");
}
if (usuarios == null)
throw new SwaggerAuthorizationException("Credenciais rejeitadas. Base" + (systems.length == 1 ? "" : "s") + " acessada" + (systems.length == 1 ? "" : "s") + ": " + Utils.getSystemsNames() + ".", mcr.status);
String jwt = jwt(origem, req.username, cpf, nome, email, usuarios);
verify(jwt);
resp.id_token = jwt;
Cookie cookie = buildCookie(jwt);
SwaggerServlet.getHttpServletResponse().addCookie(cookie);
Usuario.setSenha(req.username, req.password);
}
Aggregations