From 471c64bdeced825662b75deb5b5453479ea384e3 Mon Sep 17 00:00:00 2001 From: julio Date: Tue, 11 Jun 2019 17:43:56 +0000 Subject: [PATCH] bug#14533 -- teste de performance II dev: julio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@94404 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/BpeHibernateDAO.java | 24 +++---- .../ventaboletos/service/BpeService.java | 3 +- .../service/impl/BpeServiceImpl.java | 3 +- .../utilerias/exportacao/ExportacaoBpe.java | 63 +++++++------------ .../utilerias/exportacao/bpe/xml/BPeUtil.java | 17 +++-- 5 files changed, 48 insertions(+), 62 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java index ca9d2e599..565e7f60e 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java @@ -60,11 +60,11 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0) as valortotal, "); sql.append(" bpe.codstat as codstatus, "); - sql.append(" COALESCE(bpe_cancel.xml_bpe, bpe.xml_bpe) as xml_bpe, "); - sql.append(" COALESCE(bpe_cancel.xml_bpe_2, bpe.xml_bpe_2) as xml_bpe_2, "); - sql.append(" COALESCE(bpe_cancel.xml_bpe_3, bpe.xml_bpe_3) as xml_bpe_3, "); - sql.append(" COALESCE(bpe_cancel.xml_bpe_4, bpe.xml_bpe_4) as xml_bpe_4, "); - sql.append(" COALESCE(bpe_cancel.xml_bpe_5, bpe.xml_bpe_5) as xml_bpe_5, "); + sql.append(" bpe.xml_bpe as xml_bpe, "); + sql.append(" bpe.xml_bpe_2 as xml_bpe_2, "); + sql.append(" bpe.xml_bpe_3 as xml_bpe_3, "); + sql.append(" bpe.xml_bpe_4 as xml_bpe_4, "); + sql.append(" bpe.xml_bpe_5 as xml_bpe_5, "); // sql.append(" DBMS_LOB.substr(COALESCE(bpe_cancel.xmlregular, bpe_cancel.xmlcontingencia, bpe.xmlregular, bpe.xmlcontingencia), 3000) AS xml_bpe, "); // sql.append(" DBMS_LOB.substr(COALESCE(bpe_cancel.xmlregular, bpe_cancel.xmlcontingencia, bpe.xmlregular, bpe.xmlcontingencia), 3000, 3001) AS xml_bpe_2, "); @@ -111,7 +111,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); sql.append(" and bpe.activo = (case when c.motivocancelacion_id = 17 and c.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" left join bpe bpe_cancel on bpe.chbpe = bpe_cancel.chbpe and bpe.codstat in ('135') and bpe_cancel.codstat in ('100','150') "); + // sql.append(" left join bpe bpe_cancel on bpe.chbpe = bpe_cancel.chbpe and bpe.codstat in ('135') and bpe_cancel.codstat in ('100','150') "); sql.append(" join estado e on e.codibge = bpe.uf "); sql.append(" join marca ma on c.marca_id = ma.marca_id "); @@ -136,8 +136,8 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" and e.cveestado = ? "); sql.append("order by to_number(c.numfoliosistema), to_number(num_bpe), dh_emisao "); -// ResultSet rs = null; -// PreparedStatement ps = null; + // ResultSet rs = null; + // PreparedStatement ps = null; try { PreparedStatement ps = connection.prepareStatement(sql.toString()); ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00"); @@ -145,7 +145,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - ps.setFetchSize(9999); + ps.setFetchSize(999); ResultSet rs = ps.executeQuery(); while (rs.next()) { @@ -215,8 +215,8 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { registro.setXml(xml); if (exportacaoBPEVo.isBpeCanceladoENaoEmbarque(registro)) { - // String xmlAnterior = buscarXmlBPE(connection, (StringUtils.isBlank(registro.getChbpeSub()) ? registro.getChbpe() : registro.getChbpeSub())); - registro.setXmlAnterior(xml); + String xmlAnterior = buscarXmlBPE(connection, (StringUtils.isBlank(registro.getChbpeSub()) ? registro.getChbpe() : registro.getChbpeSub())); + registro.setXmlAnterior(xmlAnterior); registro.setXml(null); } @@ -257,6 +257,8 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { } } } + + log.info(" --- Inicio preocesso da ExportacaoBpe: " + new Date()); for (ExportacaoBPEBase registro : aux) { exportacaoBPEVo.gerarListas(registro); diff --git a/src/com/rjconsultores/ventaboletos/service/BpeService.java b/src/com/rjconsultores/ventaboletos/service/BpeService.java index 90aa633ea..21e300104 100644 --- a/src/com/rjconsultores/ventaboletos/service/BpeService.java +++ b/src/com/rjconsultores/ventaboletos/service/BpeService.java @@ -1,6 +1,5 @@ package com.rjconsultores.ventaboletos.service; -import java.io.File; import java.util.Date; import java.util.List; @@ -12,7 +11,7 @@ public interface BpeService { public List buscarBpeRDI(Date inicio, Date fim, Empresa empresa, List estados, boolean isReceitaTerceiros); - public File buscarArquivoExportacaoBPE(Date inicio, Date fim, Empresa empresa, Estado estado, String nomeArquivo); + public String buscarArquivoExportacaoBPE(Date inicio, Date fim, Empresa empresa, Estado estado, String nomeArquivo); public String buscarXmlBPE(String chBpe); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/BpeServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/BpeServiceImpl.java index c32725f18..a1fe42ed5 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/BpeServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/BpeServiceImpl.java @@ -1,6 +1,5 @@ package com.rjconsultores.ventaboletos.service.impl; -import java.io.File; import java.sql.Connection; import java.sql.SQLException; import java.util.Date; @@ -56,7 +55,7 @@ public class BpeServiceImpl implements BpeService { } @Override - public File buscarArquivoExportacaoBPE(Date inicio, Date fim, Empresa empresa, Estado estado, String nomeArquivo) { + public String buscarArquivoExportacaoBPE(Date inicio, Date fim, Empresa empresa, Estado estado, String nomeArquivo) { Connection connection = null; try { diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java index 77041f24a..4ac07945f 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java @@ -1,10 +1,5 @@ package com.rjconsultores.ventaboletos.utilerias.exportacao; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; @@ -13,7 +8,6 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.stereotype.Service; -import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal; import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEBase; @@ -35,15 +29,16 @@ public class ExportacaoBpe { } - public File gerarArquivoBPE(final Date dataInicial, final Date dataFinal, String nomeArquivo, final String nomeEmpresa, ExportacaoBPEVo registro) { + public String gerarArquivoBPE(final Date dataInicial, final Date dataFinal, String nomeArquivo, final String nomeEmpresa, ExportacaoBPEVo registro) { + log.info(" Inicio -- Retorno da lista " + new Date()); try { - File arquivo = File.createTempFile(nomeArquivo + "-", ".fs"); - PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(arquivo), Constantes.UTF_8)); + StringBuilder writer = new StringBuilder(); ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService"); - String valorConstante = constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF") == null - ? null : constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF").getValorconstante(); + String valorConstante = constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF") == null + ? null + : constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF").getValorconstante(); boolean isVersao131 = StringUtils.isBlank(valorConstante) ? true : false; String versaoLayout = StringUtils.isBlank(valorConstante) ? "131" : valorConstante; @@ -80,22 +75,19 @@ public class ExportacaoBpe { } - writer.print("TRA|" + linhas + UtiliteriasFiscal.QUEBRA_LINHA); + writer.append("TRA|" + linhas + UtiliteriasFiscal.QUEBRA_LINHA); - writer.close(); - - return arquivo; - } catch ( - - IOException e) { + log.info(" Fim -- Retorno da lista " + new Date()); + + return writer.toString(); + } catch (Exception e) { log.error(e.getMessage(), e); } return null; } - private void adicionarRegistroBPETipoCAB(final PrintWriter writer, final Date dataInicial, final Date dataFinal, final String nomeEmpresa, final String arquivo, String versaoLayout) { - StringBuilder sb = new StringBuilder(); + private void adicionarRegistroBPETipoCAB(final StringBuilder sb, final Date dataInicial, final Date dataFinal, final String nomeEmpresa, final String arquivo, String versaoLayout) { sb.append("CAB").append(SEPARADOR); sb.append(versaoLayout).append(SEPARADOR); sb.append("TotalBus").append(SEPARADOR); @@ -105,11 +97,10 @@ public class ExportacaoBpe { sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)).append(SEPARADOR); sb.append(arquivo).append(SEPARADOR); sb.append("N"); - - writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); + sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } - private void adicionarRegistroBPETipoBEP(final PrintWriter writer, ExportacaoBPETipoBPE tipoBPE, boolean isVersao131) { + private void adicionarRegistroBPETipoBEP(final StringBuilder sb, ExportacaoBPETipoBPE tipoBPE, boolean isVersao131) { String tipoRegistro = "BPE"; String estabelecimento = tipoBPE.getEstabelecimento(); @@ -129,12 +120,8 @@ public class ExportacaoBpe { String CSTCOFINS = tipoBPE.getCstCofins(); String receitaTributavelCOFINS = tipoBPE.getReceitaTriCofins() == null ? VAZIO : formataValor(tipoBPE.getReceitaTriCofins(), 15); String naturezaReceitaCOFINS = VAZIO; - String CSTPIS = tipoBPE.getCstPis(); - String receitaTributávelPIS = tipoBPE.getReceitaTriCofins() == null ? VAZIO : formataValor(tipoBPE.getReceitaTriCofins(), 15); - // String receitaTributávelPIS = formataValor(tipoBPE.getReceitaTributávelPis(), 15); - String naturezaReceitaPIS = VAZIO; String receitaCSL1 = VAZIO; String receitaCSL2 = VAZIO; @@ -151,7 +138,6 @@ public class ExportacaoBpe { String codAjusteFiscal = VAZIO; String exclussaoBCPISCOFINS = VAZIO; - StringBuilder sb = new StringBuilder(); sb.append(tipoRegistro).append(SEPARADOR); sb.append(estabelecimento).append(SEPARADOR); sb.append(chaveEletrônica).append(SEPARADOR); @@ -186,11 +172,10 @@ public class ExportacaoBpe { sb.append(observacao).append(SEPARADOR); sb.append(codAjusteFiscal).append(isVersao131 ? VAZIO : SEPARADOR); sb.append(isVersao131 ? VAZIO : exclussaoBCPISCOFINS); - - writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); + sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } - private void adicionarRegistroBPETipoDPE(final PrintWriter writer, ExportacaoBPETipoDPE tipoDPE) { + private void adicionarRegistroBPETipoDPE(final StringBuilder sb, ExportacaoBPETipoDPE tipoDPE) { String tipoRegistro = "DBE"; String valor = formataValor(tipoDPE.getValor(), 15); String CFOP = tipoDPE.getCfop(); @@ -202,7 +187,6 @@ public class ExportacaoBpe { String isentas = formataValor(tipoDPE.getIsentas(), 15); String outras = formataValor(tipoDPE.getOutras(), 15); - StringBuilder sb = new StringBuilder(); sb.append(tipoRegistro).append(SEPARADOR); sb.append(valor).append(SEPARADOR); sb.append(CFOP).append(SEPARADOR); @@ -213,24 +197,21 @@ public class ExportacaoBpe { sb.append(ICMS).append(SEPARADOR); sb.append(isentas).append(SEPARADOR); sb.append(outras); - - writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); + sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } - private void adicionarRegistroBPETipoOBE(final PrintWriter writer, ExportacaoBPETipoOBE tipoOBE) { + private void adicionarRegistroBPETipoOBE(final StringBuilder sb, ExportacaoBPETipoOBE tipoOBE) { String tipoRegistro = "OBE"; String codigo = tipoOBE.getCodigo(); String valor = formataValor(tipoOBE.getValor(), 15); - StringBuilder sb = new StringBuilder(); sb.append(tipoRegistro).append(SEPARADOR); sb.append(codigo).append(SEPARADOR); sb.append(valor); - - writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); + sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } - private void adicionarRegistroBPETipoRPC(final PrintWriter writer, ExportacaoBPETipoPRC tipoPRC) { + private void adicionarRegistroBPETipoRPC(final StringBuilder sb, ExportacaoBPETipoPRC tipoPRC) { String tipoRegistro = "RPC"; String UF = tipoPRC.getUf(); String municipio = tipoPRC.getMunicipio(); @@ -238,15 +219,13 @@ public class ExportacaoBpe { String baseCalculoICMS = formataValor(tipoPRC.getBaseCalculoICMS(), 15); String ICMS = formataValor(tipoPRC.getIcms(), 15); - StringBuilder sb = new StringBuilder(); sb.append(tipoRegistro).append(SEPARADOR); sb.append(UF).append(SEPARADOR); sb.append(municipio).append(SEPARADOR); sb.append(valor).append(SEPARADOR); sb.append(baseCalculoICMS).append(SEPARADOR); sb.append(ICMS); - - writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); + sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } private String formataValor(final BigDecimal valor, final int tamanho) { diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/xml/BPeUtil.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/xml/BPeUtil.java index 14040fb9d..e8232700b 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/xml/BPeUtil.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/xml/BPeUtil.java @@ -1,13 +1,17 @@ package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.xml; -import java.io.StringReader; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; +import javax.xml.transform.stream.StreamSource; import org.apache.log4j.Logger; +import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo; import br.inf.portalfiscal.bpe.TBPe; @@ -20,12 +24,15 @@ public class BPeUtil { TBPe objeto = null; if (xml != null) { try { - JAXBContext jaxbContext = JAXBContext.newInstance(TBPe.class); - Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - StringReader reader = new StringReader(xml); - objeto = (TBPe) unmarshaller.unmarshal(reader); + JAXBContext jc = JAXBContext.newInstance(TBPe.class); + Unmarshaller unmarshaller = jc.createUnmarshaller(); + InputStream input = new ByteArrayInputStream(xml.getBytes(Constantes.UTF_8)); + StreamSource source = new StreamSource(input); + objeto = (TBPe) unmarshaller.unmarshal(source); } catch (JAXBException e) { log.info("Nao encontrou o xml bpe"); + } catch (UnsupportedEncodingException e) { + log.info("Nao encontrou o xml bpe"); } } return objeto;