use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class CertidaoAutenticarNumeroCpfcnpjGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
if (!CertidaoObterTokenGet.isValidToken(req.token, req.numero, null, req.cpfcnpj))
throw new PresentableException("Token inválido");
FetchResponse r = CertidaoEmitirRequisitanteCpfcnpjPost.fetch(Utils.getCertApiUrl(req.sistema) + "/bv_consul_cert_neg.asp", Utils.getCertApiPassword(req.sistema), "POST", "Botao=Consultar&NumProt=" + req.numero + "&NumDocPess=" + req.cpfcnpj);
if (r.headerFields.containsKey(Utils.ERROR_MESSAGE))
throw new PresentableUnloggedException(r.headerFields.get(Utils.ERROR_MESSAGE).get(0));
resp.html = r.html;
if (r.headerFields.containsKey(Utils.RESULT_KIND)) {
resp.tipo = r.headerFields.get(Utils.RESULT_KIND).get(0);
resp.html = Utils.obterHtml(resp.html, resp.tipo);
}
if (r.headerFields.containsKey(Utils.CERT_NUMBER))
resp.numero = r.headerFields.get(Utils.CERT_NUMBER).get(0);
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class CertidaoRequererRequisitanteCpfcnpjPost method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
if (!CertidaoObterTokenGet.isValidToken(req.token, null, req.requisitante, req.cpfcnpj))
throw new PresentableException("Token inválido");
FetchResponse r = CertidaoEmitirRequisitanteCpfcnpjPost.fetch(Utils.getCertApiUrl(req.sistema) + "/bv_conf_req_cert.asp", Utils.getCertApiPassword(req.sistema), "POST", "Botao=Requerer&NumDocPessReq=" + req.requisitante + "&NumDoc=" + req.cpfcnpj + "&Nome=" + URLEncoder.encode(req.nome, "ISO-8859-1"));
if (r.headerFields.containsKey(Utils.ERROR_MESSAGE))
throw new PresentableUnloggedException(r.headerFields.get(Utils.ERROR_MESSAGE).get(0));
resp.html = r.html;
if (r.headerFields.containsKey(Utils.RESULT_KIND)) {
resp.tipo = r.headerFields.get(Utils.RESULT_KIND).get(0);
resp.html = Utils.obterHtml(resp.html, resp.tipo);
}
if (r.headerFields.containsKey(Utils.CERT_NUMBER))
resp.numero = r.headerFields.get(Utils.CERT_NUMBER).get(0);
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class ProcessoCompleto method call.
@Override
public String call() throws Exception {
ContentInfoUtil contentInfoUtil = new ContentInfoUtil();
String bufName = null;
try {
this.status = Status.update(this.uuid, "Obtendo a lista de documentos", 0, 100, 0L);
boolean fEproc = sistema.contains(".eproc");
// Consulta o processo para saber quais são os documentos a serem
// concatenados
String json = SoapMNI.consultarProcesso(username, password, sistema, numProc, false, fEproc, true);
JSONObject proc = new JSONObject(json).getJSONObject("value");
JSONArray docs = proc.getJSONArray("documento");
// Cria um mapa de movimentos para facilitar a criação das páginas de separação
Map<String, JSONObject> movs = new HashMap<>();
if (fEproc) {
JSONArray movimentos = proc.getJSONArray("movimento");
for (int i = 0; i < movimentos.length(); i++) {
JSONObject mov = movimentos.getJSONObject(i);
movs.put(mov.getString("identificadorMovimento"), mov);
}
}
// Cria um documento em diretório temporário para agregar os
// diversos PDFs
String dirTemp = Utils.getDirTemp();
bufName = dirTemp + "/" + numProc + "-completo-" + uuid + ".pdf";
FileOutputStream buf = new FileOutputStream(bufName);
Document document = new Document();
PdfCopy copy = new PdfSmartCopy(document, buf);
copy.setPageSize(PageSize.A4);
document.open();
long bytes = 0;
for (int i = 0; i < docs.length(); i++) {
String idDocumento = null;
JSONObject doc;
if (fEproc) {
doc = docs.getJSONObject(docs.length() - i - 1);
String movimento = doc.getString("movimento");
String dataHora = Utils.formatarDataHoraMinutoSegundo(Utils.parsearApoloDataHoraMinuto(doc.getString("dataHora")));
String usuario = null;
String descricao = null;
if (movs.containsKey(movimento)) {
JSONObject mov = movs.get(movimento);
if (mov != null) {
JSONArray complementos = mov.getJSONArray("complemento");
if (complementos != null) {
for (int j = 0; j < complementos.length(); j++) {
String complemento = complementos.getString(j);
if (complemento != null && complemento.startsWith("Movimentado por: ")) {
usuario = complemento.replace("Movimentado por: ", "");
}
}
}
if (mov.getJSONObject("movimentoLocal") != null)
descricao = mov.getJSONObject("movimentoLocal").getString("descricao");
}
}
// String html = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><style type=\"text/css\">@media print {} @page {size: a4 portrait; margin-left: 2cm; margin-right: 2cm; margin-top: 2cm; margin-bottom: 2cm;background-color: lightyellow;}</style></head><body style=\"background-color: lightyellow;\">";
String html = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><style type=\"text/css\">@media print {} @page {margin-left: 2cm; margin-right: 2cm; margin-top: 2cm; margin-bottom: 2cm;background-color: lightyellow;}</style></head><body style=\"background-color: lightyellow;\">";
// String html = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><style
// type=\"text/css\">@media print {background-color: lightyellow; @page{size: a4
// portrait; margin-left:0cm; padding-right: 3cm; margin-top: 3cm;
// margin-bottom: 3cm;}}</style></head><body style=\"background-color:
// lightyellow;\">";
html += "<p align=\"center\"><b>";
html += i == 0 ? "CAPA DO PROCESSO" : "PÁGINA DE SEPARAÇÃO";
html += "</b><br/><i>(Gerada automaticamente pelo Balcãojus.)</i><br/><br/><br/><br/><br/></p>";
if (i == 0)
html += "<h1 style=\"text-align: center;\">Processo Nº " + Utils.formatarNumeroProcesso(numProc) + "</h1>";
html += "<br/><br/><br/><h2 style=\"text-align: center;\">Evento " + movimento;
html += "</h2><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>";
html += "<p>Data: " + dataHora + "</p>";
html += "<p>Número do Processo: " + Utils.formatarNumeroProcesso(numProc) + "</p>";
if (movimento != null)
html += "<p>Número do Evento: " + movimento + "</p>";
if (usuario != null)
html += "<p>Usuário: " + usuario + "</p>";
if (descricao != null)
html += "<p>Descrição do Evento: " + descricao + "</p>";
html += "</body></html>";
byte[] abSep = new Html2Pdf().converter(html, false);
bytes += abSep.length;
PdfReader reader = new PdfReader(abSep);
copy.addDocument(reader);
reader.close();
} else
doc = docs.getJSONObject(i);
idDocumento = doc.getString("idDocumento");
this.status = Status.update(this.uuid, "Agregando documento " + (i + 1) + "/" + docs.length(), i * 2 + 1, docs.length() * 2 + 1, bytes);
byte[] ab = SoapMNI.obterPecaProcessual(username, password, sistema, numProc, idDocumento);
if (ab == null)
continue;
ContentInfo info = contentInfoUtil.findMatch(ab);
if (info.getMimeType().startsWith("application/xml")) {
// System.out.println("xml");
this.status = Status.update(this.uuid, "Convertendo documento " + (i + 1) + "/" + docs.length() + " de XHTML para PDF", i * 2 + 2, docs.length() * 2 + 1, bytes);
final XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(ab));
String fileEncoding = xmlStreamReader.getEncoding();
boolean fHtml = false;
while (xmlStreamReader.hasNext()) {
int eventType = xmlStreamReader.next();
if (eventType == XMLStreamConstants.START_ELEMENT) {
if (xmlStreamReader.getLocalName().equals("html"))
fHtml = true;
break;
}
}
xmlStreamReader.close();
if (fHtml) {
String html = new String(ab, fileEncoding);
// System.out.println(html);
ab = new Html2Pdf().converter(html, false);
info = contentInfoUtil.findMimeTypeMatch("application/pdf");
}
} else if (info.getMimeType().startsWith("text/html")) {
// System.out.println("html");
this.status = Status.update(this.uuid, "Convertendo " + (i + 1) + "/" + docs.length() + " de HTML para PDF", i * 2 + 2, docs.length() * 2 + 1, bytes);
String html = new String(ab, StandardCharsets.UTF_8);
if (html.toLowerCase().contains("charset=windows-1252") || html.toLowerCase().contains("iso-8859-1"))
html = new String(ab, StandardCharsets.ISO_8859_1);
// Removendo comentários no tag <style> do html que estavam desativados usando
// <!-- -->, o que inclusive não está correto. Isso ocasionava um erro que
// produzia uma página em branco no PDF completo.
html = html.replaceAll("(?s)\\<!--.*?--\\>", "");
// System.out.println(html);
ab = new Html2Pdf().converter(html, false);
info = contentInfoUtil.findMimeTypeMatch("application/pdf");
} else if ("application/pdf".equals(info.getMimeType())) {
// System.out.println("pdf");
} else
throw new PresentableException("Não foi possível obter um PDF. (" + info.getMimeType() + ")");
bytes += ab.length;
PdfReader reader = new PdfReader(ab);
copy.addDocument(reader);
reader.close();
}
document.close();
this.status = Status.update(this.uuid, "PDF completo gerado", docs.length() * 2 + 1, docs.length() * 2 + 1, bytes);
} catch (Exception ex) {
this.status.ex = ex;
Status.update(this.uuid, this.status);
}
return bufName;
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class Utils method limparHtml.
public static String limparHtml(String s, String tipoDeConteudo) throws PresentableException {
if (!s.contains(Utils.HTML_START) || !s.contains(Utils.HTML_END))
throw new PresentableException("Não foi possível obter " + tipoDeConteudo + ", por favor tente novamente em alguns minutos.");
if (s.contains(Utils.HTML_START))
s = s.substring(s.indexOf(Utils.HTML_START) + Utils.HTML_START.length());
if (s.contains(Utils.HTML_END))
s = s.substring(0, s.indexOf(Utils.HTML_END));
s = s.replaceAll(" width=\"[0-9]+\"", " width=\"100%\"");
s = s.replaceAll("src=\"./imagens/brasao-apolo.jpg\"", "src=\"" + getBaseUrl() + "/assets/brasao-260x260.png\"");
s = s.replaceAll("font-size: [0-9]+pt", "");
s = s.replaceAll(" face=\"Times New Roman\"", "");
s = s.replaceAll(" color=\"#[0-9]+\"", "");
return s;
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class ProcessoNumeroMarcasGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
Usuario u = BalcaojusServlet.getPrincipal();
if (u.usuarios == null)
throw new PresentableException("Usuário não possui identificador e unidade");
UsuarioDetalhe ud = u.usuarios.get(req.sistema.toLowerCase());
resp.list = new ArrayList<>();
if (ud == null)
throw new PresentableUnloggedException("disabled");
try (Dao dao = new Dao()) {
Processo p = dao.obtemProcesso(req.numero, req.sistema, true);
List<Object[]> l = dao.obtemMarcas(p, u.isInterno(), ud.id, ud.codunidade);
if (l == null)
return;
for (Object[] i : l) {
br.jus.trf2.balcaojus.model.Marca m = (br.jus.trf2.balcaojus.model.Marca) i[0];
String t = (String) i[1];
Marca r = new Marca();
r.dataalteracao = m.getMarcDfAlteracao();
r.idestilo = Long.toString(m.getEstilo().getEstiId());
r.idmarca = Long.toString(m.getMarcId());
r.idpeca = m.getMarcIdPeca();
r.nomeusuario = m.getMarcNmUsu();
r.paginicial = m.getMarcNrPagInicial() != null ? m.getMarcNrPagInicial().toString() : null;
r.pagfinal = m.getMarcNrPagFinal() != null ? m.getMarcNrPagFinal().toString() : null;
r.texto = m.getMarcTxConteudo();
r.texto = t != null ? t + (m.getMarcTxConteudo() != null ? " - " + m.getMarcTxConteudo() : "") : m.getMarcTxConteudo();
resp.list.add(r);
}
}
}
Aggregations