Search in sources :

Example 1 with Padrao

use of br.jus.trf2.balcaojus.model.Padrao in project balcaovirtual by trf2-jus-br.

the class PadraoGet method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    Usuario u = BalcaojusServlet.getPrincipal();
    try (Dao dao = new Dao()) {
        List<Padrao> l = dao.obtemPadroes(u.usuario);
        for (Padrao i : l) {
            PadraoItem d = formatar(i);
            // d.numeroDoDocumento;
            // d.autor;
            // d.reu;
            // d.descricao;
            // d.status;
            // d.descricaoDoStatus;
            // d.tipoDoDocumento;
            // d.identificadorDoUsuarioQueIncluiu;
            // d.nomeDoUsuarioQueIncluiu;
            // d.siglaDaUnidade;
            resp.list.add(d);
        }
    }
}
Also used : PadraoItem(br.jus.trf2.balcaojus.IBalcaojus.PadraoItem) Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) Padrao(br.jus.trf2.balcaojus.model.Padrao)

Example 2 with Padrao

use of br.jus.trf2.balcaojus.model.Padrao in project balcaovirtual by trf2-jus-br.

the class PadraoGet method formatar.

public static PadraoItem formatar(Padrao i) {
    PadraoItem d = new PadraoItem();
    d.dataDeInclusao = i.getPadrDfInclusao();
    d.sistema = i.getSistema() != null ? i.getSistema().getSistSg() : null;
    d.id = i.getPadrId().toString();
    d.numeroDoProcesso = i.getPadrCdProc();
    d.conteudo = i.getPadrTxConteudo();
    return d;
}
Also used : PadraoItem(br.jus.trf2.balcaojus.IBalcaojus.PadraoItem)

Example 3 with Padrao

use of br.jus.trf2.balcaojus.model.Padrao in project balcaovirtual by trf2-jus-br.

the class PadraoPost method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    Usuario u = BalcaojusServlet.getPrincipal();
    try (Dao dao = new Dao()) {
        Padrao p = (req.id != null) ? dao.find(Padrao.class, Long.valueOf(req.id)) : new Padrao();
        Document documentoOriginal = Jsoup.parse(req.html);
        // conteudo = document.select("section[contentEditable=true]").text();
        String htmlEditavel = documentoOriginal.select("section[contentEditable=true]").html();
        if (htmlEditavel == null || htmlEditavel.isEmpty())
            htmlEditavel = req.html;
        // Converter para markdown
        String markdown = Markdown.convertHtmlToMarkdown(htmlEditavel);
        // Padronizar número, nomes, etc.
        // ocorrencias = new Tudo(doc.autor, doc.reu).extract(markdown);
        // markdownSimplificado = Utils.replaceOcurrencesWithPlaceholders(markdown, ocorrencias);
        String html = Markdown.convertMarkdownToHtml(markdown);
        p.setPadrTxConteudo(html);
        p.setPadrCdUsu(u.usuario);
        if (req.id == null)
            p.setPadrDfInclusao(new Date());
        if (p.getPadrDfModificacao() == null)
            p.setPadrDfModificacao(p.getPadrDfInclusao());
        dao.persist(p);
        resp.padrao = PadraoGet.formatar(p);
    } catch (Exception e) {
        Dao.rollbackCurrentTransaction();
        throw e;
    }
}
Also used : Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) Padrao(br.jus.trf2.balcaojus.model.Padrao) Document(org.jsoup.nodes.Document) Date(java.util.Date)

Example 4 with Padrao

use of br.jus.trf2.balcaojus.model.Padrao 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 5 with Padrao

use of br.jus.trf2.balcaojus.model.Padrao in project balcaovirtual by trf2-jus-br.

the class PadraoIdDelete method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    try (Dao dao = new Dao()) {
        Padrao padrao = dao.find(Padrao.class, Long.valueOf(req.id));
        if (padrao == null)
            return;
        dao.beginTransaction();
        dao.remove(padrao);
    } catch (Exception e) {
        Dao.rollbackCurrentTransaction();
        throw e;
    }
}
Also used : Padrao(br.jus.trf2.balcaojus.model.Padrao)

Aggregations

Padrao (br.jus.trf2.balcaojus.model.Padrao)5 Usuario (br.jus.trf2.balcaojus.AutenticarPost.Usuario)4 PadraoItem (br.jus.trf2.balcaojus.IBalcaojus.PadraoItem)2 MesaDocumento (br.jus.trf2.balcaojus.IBalcaojus.MesaDocumento)1 Minuta (br.jus.trf2.balcaojus.util.PadraoUtils.Minuta)1 ISistemaProcessual (br.jus.trf2.sistemaprocessual.ISistemaProcessual)1 IUsuarioUsernameLocalIdMesaId2DocumentosGet (br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameLocalIdMesaId2DocumentosGet)1 SwaggerCallParameters (com.crivano.swaggerservlet.SwaggerCallParameters)1 SwaggerMultipleCallResult (com.crivano.swaggerservlet.SwaggerMultipleCallResult)1 SorensenDice (info.debatty.java.stringsimilarity.SorensenDice)1 NormalizedStringSimilarity (info.debatty.java.stringsimilarity.interfaces.NormalizedStringSimilarity)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 Document (org.jsoup.nodes.Document)1