use of br.jus.trf2.balcaojus.util.PadraoUtils.Minuta in project balcaovirtual by trf2-jus-br.
the class VotosIdConsultarMinutaGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
if (!req.sistema.contains(".eproc"))
throw new Exception("Operação disponível apenas para o Eproc");
Usuario u = BalcaojusServlet.getPrincipal();
if (u.usuarios.get(req.sistema) == null)
throw new PresentableUnloggedException("Login inválido para " + Utils.getName(req.sistema));
IUsuarioUsernameVotosIdMinutasId2Get.Request q = new IUsuarioUsernameVotosIdMinutasId2Get.Request();
Future<SwaggerAsyncResponse<IUsuarioUsernameVotosIdMinutasId2Get.Response>> future = SwaggerCall.callAsync(getContext(), Utils.getApiEprocPassword(req.sistema), "GET", Utils.getApiEprocVotosUrl(req.sistema) + "/minuta?idminuta=" + req.idminuta, q, IUsuarioUsernameVotosIdMinutasId2Get.Response.class);
SwaggerAsyncResponse<IUsuarioUsernameVotosIdMinutasId2Get.Response> sar = future.get();
if (sar.getException() != null)
throw sar.getException();
IUsuarioUsernameVotosIdMinutasId2Get.Response r = (IUsuarioUsernameVotosIdMinutasId2Get.Response) sar.getResp();
resp.status = r.status;
resp.html = r.html;
}
use of br.jus.trf2.balcaojus.util.PadraoUtils.Minuta in project balcaovirtual by trf2-jus-br.
the class PipelineTest method before.
@BeforeAll
public void before() {
Gson gson = new Gson();
InputStream isMinutas = this.getClass().getResourceAsStream("minutas.json");
InputStreamReader rMinutas = new InputStreamReader(isMinutas);
Mesa mMinutas = gson.fromJson(rMinutas, Mesa.class);
minutas = new ArrayList<>();
for (MesaDocumento doc : mMinutas.list) {
minutas.add(new Minuta(doc));
}
InputStream isPadroes = this.getClass().getResourceAsStream("padroes.json");
InputStreamReader rPadroes = new InputStreamReader(isPadroes);
Mesa mPadroes = gson.fromJson(rPadroes, Mesa.class);
padroes = new ArrayList<>();
for (MesaDocumento doc : mPadroes.list) {
padroes.add(new Minuta(doc));
}
PadraoUtils.pipeline(minutas, padroes);
}
use of br.jus.trf2.balcaojus.util.PadraoUtils.Minuta 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);
}
}
Aggregations