Search in sources :

Example 1 with SwaggerCallParameters

use of com.crivano.swaggerservlet.SwaggerCallParameters 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();
}
Also used : HashMap(java.util.HashMap) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) IUsuarioUsernameProcessoNumerosGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameProcessoNumerosGet) Date(java.util.Date) ProcessoValido(br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido) Processo(br.jus.trf2.sistemaprocessual.ISistemaProcessual.Processo) PresentableException(com.crivano.swaggerservlet.PresentableException) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult)

Example 2 with SwaggerCallParameters

use of com.crivano.swaggerservlet.SwaggerCallParameters 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);
            }
    }
}
Also used : IUsuarioUsernamePeticaoIntercorrenteContarGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernamePeticaoIntercorrenteContarGet) Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) HashMap(java.util.HashMap) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) Contagem(br.jus.trf2.sistemaprocessual.ISistemaProcessual.Contagem) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult) QuantidadePorData(br.jus.trf2.balcaojus.IBalcaojus.QuantidadePorData)

Example 3 with SwaggerCallParameters

use of com.crivano.swaggerservlet.SwaggerCallParameters 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);
    }
}
Also used : Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) ISistemaProcessual(br.jus.trf2.sistemaprocessual.ISistemaProcessual) Padrao(br.jus.trf2.balcaojus.model.Padrao) HashMap(java.util.HashMap) MesaDocumento(br.jus.trf2.balcaojus.IBalcaojus.MesaDocumento) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) ArrayList(java.util.ArrayList) SorensenDice(info.debatty.java.stringsimilarity.SorensenDice) NormalizedStringSimilarity(info.debatty.java.stringsimilarity.interfaces.NormalizedStringSimilarity) IUsuarioUsernameLocalIdMesaId2DocumentosGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameLocalIdMesaId2DocumentosGet) Minuta(br.jus.trf2.balcaojus.util.PadraoUtils.Minuta) MesaDocumento(br.jus.trf2.balcaojus.IBalcaojus.MesaDocumento) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult)

Example 4 with SwaggerCallParameters

use of com.crivano.swaggerservlet.SwaggerCallParameters 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);
            }
        }
    }
}
Also used : IUsuarioUsernameAvisosGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameAvisosGet) Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) ISistemaProcessual(br.jus.trf2.sistemaprocessual.ISistemaProcessual) HashMap(java.util.HashMap) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) ArrayList(java.util.ArrayList) Aviso(br.jus.trf2.balcaojus.IBalcaojus.Aviso) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult)

Example 5 with SwaggerCallParameters

use of com.crivano.swaggerservlet.SwaggerCallParameters 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);
}
Also used : Cookie(javax.servlet.http.Cookie) IUsuarioUsernameGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameGet) HashMap(java.util.HashMap) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) SwaggerAuthorizationException(com.crivano.swaggerservlet.SwaggerAuthorizationException) HttpServletResponse(javax.servlet.http.HttpServletResponse) PresentableUnloggedException(com.crivano.swaggerservlet.PresentableUnloggedException) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult)

Aggregations

SwaggerCallParameters (com.crivano.swaggerservlet.SwaggerCallParameters)11 SwaggerMultipleCallResult (com.crivano.swaggerservlet.SwaggerMultipleCallResult)11 HashMap (java.util.HashMap)11 Usuario (br.jus.trf2.balcaojus.AutenticarPost.Usuario)5 ISistemaProcessual (br.jus.trf2.sistemaprocessual.ISistemaProcessual)3 Aviso (br.jus.trf2.balcaojus.IBalcaojus.Aviso)2 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 Entidade (br.jus.trf2.balcaojus.IBalcaojus.Entidade)1 ListStatus (br.jus.trf2.balcaojus.IBalcaojus.ListStatus)1 MesaDocumento (br.jus.trf2.balcaojus.IBalcaojus.MesaDocumento)1 PeticaoIntercorrenteResumo (br.jus.trf2.balcaojus.IBalcaojus.PeticaoIntercorrenteResumo)1 ProcessoValido (br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido)1 QuantidadeConfirmadaPorData (br.jus.trf2.balcaojus.IBalcaojus.QuantidadeConfirmadaPorData)1 QuantidadePorData (br.jus.trf2.balcaojus.IBalcaojus.QuantidadePorData)1 Voto (br.jus.trf2.balcaojus.IBalcaojus.Voto)1 Padrao (br.jus.trf2.balcaojus.model.Padrao)1 Minuta (br.jus.trf2.balcaojus.util.PadraoUtils.Minuta)1 Contagem (br.jus.trf2.sistemaprocessual.ISistemaProcessual.Contagem)1 IAdvogadoDocumentoGet (br.jus.trf2.sistemaprocessual.ISistemaProcessual.IAdvogadoDocumentoGet)1