Merge pull request 'fixes bug#AL-2358' (#41) from AL-2358 into master

Reviewed-on: http://18.235.188.113:3000/adm/ModelWeb/pulls/41
Reviewed-by: fabio <fabio.faria@rjconsultores.com.br>
master
Lucas Taiã 2023-03-22 17:53:12 +00:00
commit ad40645014
3 changed files with 62 additions and 18 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ModelWeb</artifactId> <artifactId>ModelWeb</artifactId>
<version>1.0.43</version> <version>1.0.44</version>
<distributionManagement> <distributionManagement>
<repository> <repository>
<id>rj-releases</id> <id>rj-releases</id>

View File

@ -38,6 +38,7 @@ import com.rjconsultores.ventaboletos.entidad.ComEmpTipoEventoExtra;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual; import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.enums.FolioSistemaEnum;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosEmpresaResultTransformer; import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosEmpresaResultTransformer;
/** /**
@ -47,9 +48,8 @@ import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosEmpres
@Repository("empresaDAO") @Repository("empresaDAO")
public class EmpresaHibernateDAO extends GenericHibernateDAO<Empresa, Integer> implements EmpresaDAO { public class EmpresaHibernateDAO extends GenericHibernateDAO<Empresa, Integer> implements EmpresaDAO {
private static String FOLIO_SISTEMA_BPE = "FOLIO_SISTEMA_BPE_";
private static String FS_BPE = "FS_BPE_"; private static String FS_BPE = "FS_BPE_";
private static String FOLIO_SISTEMA = "FOLIO_SISTEMA_";
@Autowired @Autowired
private DataSource dataSource; private DataSource dataSource;
@ -224,41 +224,42 @@ public class EmpresaHibernateDAO extends GenericHibernateDAO<Empresa, Integer> i
private void gerarSeqNumFolioSistema(Integer idEmpresa) throws SQLException { private void gerarSeqNumFolioSistema(Integer idEmpresa) throws SQLException {
final Connection conn = dataSource.getConnection(); final Connection conn = dataSource.getConnection();
try { try {
geraSequence(conn, idEmpresa, false); geraSequence(conn, idEmpresa);
geraSequence(conn, idEmpresa, true);
} finally { } finally {
conn.close(); conn.close();
} }
} }
@SuppressWarnings("unchecked") @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(); final Statement statement = conn.createStatement();
try { try {
List<String> lista = getSession().createSQLQuery(obtemSqlSequence(idEmpresa, isFolioBpe)).list(); for (FolioSistemaEnum folioSistemaEnum : FolioSistemaEnum.values()) {
List<String> lista = getSession().createSQLQuery(obtemSqlSequence(idEmpresa, folioSistemaEnum)).list();
for (String instrucao : lista) { for (String instrucao : lista) {
statement.execute(instrucao); statement.execute(instrucao);
} }
}
} finally { } finally {
statement.close(); statement.close();
} }
} }
private String obtemSqlSequence(Integer idEmpresa, Boolean isFolioBpe) { private String obtemSqlSequence(Integer idEmpresa, FolioSistemaEnum folioSistemaEnum) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT 'CREATE SEQUENCE ' || SEQUENCIA || ' INCREMENT BY 1 START WITH 1 NOCACHE ORDER NOCYCLE' FROM ("); sql.append(
sql.append(" SELECT DISTINCT '" + obtemNomeFolio(isFolioBpe) +"'||CVEESTADO||'_" + idEmpresa + "_SEQ' SEQUENCIA "); "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(" FROM ESTADO WHERE ACTIVO = 1) TMP ");
sql.append("WHERE TMP.SEQUENCIA NOT IN( "); sql.append("WHERE TMP.SEQUENCIA NOT IN( ");
sql.append(" SELECT SEQUENCE_NAME FROM USER_SEQUENCES "); 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(); return sql.toString();
} }
private String obtemNomeFolio(Boolean isFolioBpe) {
return isFolioBpe ? FOLIO_SISTEMA_BPE : FOLIO_SISTEMA;
}
@Override @Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public List<Empresa> obtenerTodosIncluindoEmpresaTodas() { public List<Empresa> obtenerTodosIncluindoEmpresaTodas() {

View File

@ -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;
}
}