From d1bffcf7b8ce50dc8270c24dabe8d28e30debb6c Mon Sep 17 00:00:00 2001 From: "lucas.taia" Date: Wed, 22 Mar 2023 14:48:10 -0300 Subject: [PATCH] fixes bug#AL-2358 --- pom.xml | 2 +- .../dao/hibernate/EmpresaHibernateDAO.java | 35 +++++++-------- .../ventaboletos/enums/FolioSistemaEnum.java | 43 +++++++++++++++++++ 3 files changed, 62 insertions(+), 18 deletions(-) create mode 100644 src/com/rjconsultores/ventaboletos/enums/FolioSistemaEnum.java diff --git a/pom.xml b/pom.xml index 9d7f5c041..75cad88b0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.0.43 + 1.0.44 rj-releases diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java index 38a5563e7..ccf4b5d31 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java @@ -38,6 +38,7 @@ import com.rjconsultores.ventaboletos.entidad.ComEmpTipoEventoExtra; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.enums.FolioSistemaEnum; import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosEmpresaResultTransformer; /** @@ -47,10 +48,9 @@ import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosEmpres @Repository("empresaDAO") public class EmpresaHibernateDAO extends GenericHibernateDAO implements EmpresaDAO { - private static String FOLIO_SISTEMA_BPE = "FOLIO_SISTEMA_BPE_"; - private static String FS_BPE = "FS_BPE_"; - private static String FOLIO_SISTEMA = "FOLIO_SISTEMA_"; + private static String FS_BPE = "FS_BPE_"; + @Autowired private DataSource dataSource; @@ -224,41 +224,42 @@ public class EmpresaHibernateDAO extends GenericHibernateDAO i private void gerarSeqNumFolioSistema(Integer idEmpresa) throws SQLException { final Connection conn = dataSource.getConnection(); try { - geraSequence(conn, idEmpresa, false); - geraSequence(conn, idEmpresa, true); + geraSequence(conn, idEmpresa); } finally { conn.close(); } } @SuppressWarnings("unchecked") - private void geraSequence(final Connection conn, final Integer idEmpresa, final Boolean isFolioBpe) throws SQLException { + private void geraSequence(final Connection conn, final Integer idEmpresa) throws SQLException { final Statement statement = conn.createStatement(); try { - List lista = getSession().createSQLQuery(obtemSqlSequence(idEmpresa, isFolioBpe)).list(); - for (String instrucao : lista) { - statement.execute(instrucao); + for (FolioSistemaEnum folioSistemaEnum : FolioSistemaEnum.values()) { + + List lista = getSession().createSQLQuery(obtemSqlSequence(idEmpresa, folioSistemaEnum)).list(); + for (String instrucao : lista) { + statement.execute(instrucao); + } } + } finally { statement.close(); } } - private String obtemSqlSequence(Integer idEmpresa, Boolean isFolioBpe) { + private String obtemSqlSequence(Integer idEmpresa, FolioSistemaEnum folioSistemaEnum) { StringBuilder sql = new StringBuilder(); - sql.append("SELECT 'CREATE SEQUENCE ' || SEQUENCIA || ' INCREMENT BY 1 START WITH 1 NOCACHE ORDER NOCYCLE' FROM ("); - sql.append(" SELECT DISTINCT '" + obtemNomeFolio(isFolioBpe) +"'||CVEESTADO||'_" + idEmpresa + "_SEQ' SEQUENCIA "); + sql.append( + "SELECT 'CREATE SEQUENCE ' || SEQUENCIA || ' INCREMENT BY 1 START WITH 1 NOCACHE ORDER NOCYCLE' FROM ("); + sql.append(" SELECT DISTINCT '" + folioSistemaEnum.getNome() + + (folioSistemaEnum.isCveEstado() ? "'||CVEESTADO||'_" : "_") + idEmpresa + "_SEQ' SEQUENCIA "); sql.append(" FROM ESTADO WHERE ACTIVO = 1) TMP "); sql.append("WHERE TMP.SEQUENCIA NOT IN( "); sql.append(" SELECT SEQUENCE_NAME FROM USER_SEQUENCES "); - sql.append(" WHERE SEQUENCE_NAME LIKE '" + obtemNomeFolio(isFolioBpe) + "%_" + idEmpresa + "_SEQ')"); + sql.append(" WHERE SEQUENCE_NAME LIKE '" + folioSistemaEnum.getNome() + "%_" + idEmpresa + "_SEQ')"); return sql.toString(); } - private String obtemNomeFolio(Boolean isFolioBpe) { - return isFolioBpe ? FOLIO_SISTEMA_BPE : FOLIO_SISTEMA; - } - @Override @SuppressWarnings("unchecked") public List obtenerTodosIncluindoEmpresaTodas() { diff --git a/src/com/rjconsultores/ventaboletos/enums/FolioSistemaEnum.java b/src/com/rjconsultores/ventaboletos/enums/FolioSistemaEnum.java new file mode 100644 index 000000000..73f28239b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enums/FolioSistemaEnum.java @@ -0,0 +1,43 @@ +package com.rjconsultores.ventaboletos.enums; + +public enum FolioSistemaEnum { + + FOLIO_SISTEMA("FOLIO_SISTEMA_", true), + FOLIO_SISTEMA_BPE("FOLIO_SISTEMA_BPE_", true), + FOLIO_SISTEMA_DAV("FOLIO_SISTEMA_DAV_", false), + ; + + private String nome; + private boolean isCveEstado; + + private FolioSistemaEnum(String nome, boolean isCveEstado) { + this.nome = nome; + this.isCveEstado = isCveEstado; + } + + public static FolioSistemaEnum getFolioSistema(String nome) { + for (FolioSistemaEnum folio : FolioSistemaEnum.values()) { + if (folio.nome.equals(nome)) { + return folio; + } + } + throw new IllegalArgumentException("Folio Sistema não encontrado."); + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public boolean isCveEstado() { + return isCveEstado; + } + + public void setCveEstado(boolean isCveEstado) { + this.isCveEstado = isCveEstado; + } + +}