From 9e2be5e93dd2c7cb3b07085dd0314266d1ba6290 Mon Sep 17 00:00:00 2001 From: valdevir Date: Mon, 14 Aug 2023 15:33:58 -0300 Subject: [PATCH 1/2] fixes bug #AL-2734 --- pom.xml | 2 +- .../ventaboletos/dao/BoletoDAO.java | 4 ++- .../ventaboletos/dao/CorridaDAO.java | 4 ++- .../ventaboletos/dao/PuntoVentaDAO.java | 1 + .../dao/hibernate/BoletoHibernateDAO.java | 34 +++++++++++++++++-- .../dao/hibernate/CorridaHibernateDAO.java | 24 +++++++++++++ .../dao/hibernate/PuntoVentaHibernateDAO.java | 1 + .../ventaboletos/entidad/Boleto.java | 25 +++++++------- .../ventaboletos/service/BoletoService.java | 1 + .../ventaboletos/service/CorridaService.java | 7 ++++ .../service/PuntoVentaService.java | 1 + .../service/impl/BoletoServiceImpl.java | 8 +++-- .../service/impl/CorridaServiceImpl.java | 29 +++++++++++----- .../service/impl/PuntoVentaServiceImpl.java | 1 + 14 files changed, 113 insertions(+), 29 deletions(-) diff --git a/pom.xml b/pom.xml index 3bbb04544..57fe82c99 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.8.0 + 1.8.1 rj-releases diff --git a/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java b/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java index d686a73f4..69e78f66b 100644 --- a/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java @@ -4,6 +4,7 @@ */ package com.rjconsultores.ventaboletos.dao; +import java.util.Date; import java.util.List; import com.rjconsultores.ventaboletos.entidad.Boleto; @@ -22,5 +23,6 @@ public interface BoletoDAO extends GenericDAO { public String getSequenciaBoletoId(); public String getSequenciaNumOperacion(); public String getSequenciaNumReservacion(); - void insertBoletoRserva(Boleto miBoletoTemporal); + void insertBoletoReserva(Boleto miBoletoTemporal); + public boolean isExisteBoletoPorCorrida(Integer corridaId, Date fecCorrida); } diff --git a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java index b2827d4b9..bb55d3a96 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java @@ -109,5 +109,7 @@ public interface CorridaDAO extends GenericDAO { public Integer buscarOcupacaoCorrida(Corrida corrida); public List buscarCorridas(Parada ori, Parada des, Date dataInicio, Date dataFinal, ClaseServicio cs, - Ruta linha, Empresa empresa); + Ruta linha, Empresa empresa); + + public Corrida buscarCorridaAtivaPorId(Id id); } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/dao/PuntoVentaDAO.java b/src/com/rjconsultores/ventaboletos/dao/PuntoVentaDAO.java index 5c3ea7a51..c4d2fe5e2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/PuntoVentaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/PuntoVentaDAO.java @@ -41,4 +41,5 @@ public interface PuntoVentaDAO extends GenericDAO { public List buscaPuntoVentaEmpresa(Empresa empresa); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java index f50637606..51c82f9ac 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java @@ -4,9 +4,13 @@ */ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; +import org.apache.log4j.Logger; import org.hibernate.Criteria; +import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.hibernate.criterion.Order; @@ -20,6 +24,9 @@ import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.BoletoDAO; import com.rjconsultores.ventaboletos.entidad.Boleto; +import com.rjconsultores.ventaboletos.utilerias.ActivoUtil; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.vo.embarcada.PtoVtaUsuarioUltimaVendaDispositivoVO; /** @@ -28,7 +35,7 @@ import com.rjconsultores.ventaboletos.vo.embarcada.PtoVtaUsuarioUltimaVendaDispo */ @Repository("boletoDAO") public class BoletoHibernateDAO extends GenericHibernateDAO implements BoletoDAO { - + private static Logger log = Logger.getLogger(BoletoHibernateDAO.class); @Autowired public BoletoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); @@ -65,6 +72,27 @@ public class BoletoHibernateDAO extends GenericHibernateDAO implem return (Boleto) c.uniqueResult(); } + public boolean isExisteBoletoPorCorrida(Integer corridaId, Date fecCorrida) { + try { + + StringBuilder hql = new StringBuilder(); + hql.append(" select "); + hql.append(" count(*) from boleto b where " ); + hql.append(" b.corrida_id = :corridaId and b.feccorrida = :feccorrida and ROWNUM = 1 and b.activo = :isActivo"); + Query query = getSession().createSQLQuery(hql.toString()); + query.setInteger("isActivo", ActivoUtil.ATIVO); + query.setDate("feccorrida", fecCorrida); + query.setInteger("corridaId", corridaId); + + BigDecimal qtde = (BigDecimal) query.uniqueResult(); + return qtde !=null && MoneyHelper.isMaior(qtde, BigDecimal.ZERO) ; + }catch(Exception e) { + log.error("Erro buscar Bole to por corrida para corrida=" + corridaId + "data:" + DateUtil.getStringDate(fecCorrida), e); + return false; + } + + } + public String getSequenciaBoletoId(){ String sql = "SELECT BOLETO_SEQ.nextval FROM DUAL"; Object o = this.getSession().createSQLQuery(sql).uniqueResult(); @@ -84,7 +112,7 @@ public class BoletoHibernateDAO extends GenericHibernateDAO implem } @Override - public void insertBoletoRserva(Boleto miBoletoTemporal){ + public void insertBoletoReserva(Boleto miBoletoTemporal){ SQLQuery query = getSession().createSQLQuery(getSqlInsertBoletoRserva()); query.setLong("boletoId", miBoletoTemporal.getBoletoId()); @@ -130,7 +158,7 @@ public class BoletoHibernateDAO extends GenericHibernateDAO implem query.setBigDecimal("preciopagado", miBoletoTemporal.getPreciopagado()); query.setBigDecimal("preciobase", miBoletoTemporal.getPreciobase()); query.setInteger("ptovtaventaId", miBoletoTemporal.getPtovtaventaId()); - query.setInteger("puntoventaId", miBoletoTemporal.getPuntoVenta().getPuntoventaId()); + query.setInteger("puntoventaId", miBoletoTemporal.getPuntoVentaId()); query.setInteger("rutaId", miBoletoTemporal.getRutaId()); query.setInteger("temporeservafidelidade", miBoletoTemporal.getTemporeservafidelidade()); query.setInteger("tipoventaId", miBoletoTemporal.getTipoventaId()); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java index c8b5fbf19..830212511 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java @@ -819,6 +819,30 @@ public class CorridaHibernateDAO extends GenericHibernateDAO buscaCorridaFutura(){ + List corridaList = new ArrayList(); + + return corridaList; + } @Override public List buscarCorridaRelAproveitamento(Parada origem, Parada destino, diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java index 87c0d99fb..16829eed7 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java @@ -290,5 +290,6 @@ public class PuntoVentaHibernateDAO extends GenericHibernateDAO { public Boolean existeCorrida(Long id); public Integer buscarOcupacaoCorrida(Corrida corrida); + + public Boolean generarCorrida(Date dataGeracao, List lsEsquemaCorrida, boolean isGeracaoAutomaticaCorrida); + + public Corrida buscarPorId(Corrida.Id id); + + public Corrida buscarCorridaAtivaPorId(Id id); } diff --git a/src/com/rjconsultores/ventaboletos/service/PuntoVentaService.java b/src/com/rjconsultores/ventaboletos/service/PuntoVentaService.java index 937c5695a..b4af26c14 100644 --- a/src/com/rjconsultores/ventaboletos/service/PuntoVentaService.java +++ b/src/com/rjconsultores/ventaboletos/service/PuntoVentaService.java @@ -48,4 +48,5 @@ public interface PuntoVentaService { public List buscaPuntoVentaEmpresaSemECF(Empresa empresa); List buscarPuntoVentaPtoVtaComissao(List empresas); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java index 04f02757b..123f0c0ec 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java @@ -108,7 +108,7 @@ public class BoletoServiceImpl implements BoletoService { miBoletoTemporal.setOrigenId(unoTerminalOrigenId); miBoletoTemporal.setPreciopricing(BigDecimal.ZERO); miBoletoTemporal.setPorccategoria(null); - miBoletoTemporal.setPuntoVenta(miPuntoVenta); + miBoletoTemporal.setPuntoVentaId(unPuntoVenta.intValue()); miBoletoTemporal.setPtovtaventaId(miPuntoVenta.getPuntoventaId()); miBoletoTemporal.setRutaId(rutaId); miBoletoTemporal.setTemporeservafidelidade(tempoReserva!=null ? tempoReserva.intValue() : 0); @@ -118,7 +118,7 @@ public class BoletoServiceImpl implements BoletoService { miBoletoTemporal.setUsuario(usuario); miBoletoTemporal.setActivo(true); // Cria boleto de reserva - boletoDAO.insertBoletoRserva(miBoletoTemporal); + boletoDAO.insertBoletoReserva(miBoletoTemporal); } @@ -191,6 +191,10 @@ public class BoletoServiceImpl implements BoletoService { return "01" + (String.format("%010d", Integer.valueOf(numReservacopnSeq).intValue())); } + public boolean isExisteBoletoPorCorrida(Integer corridaId, Date fecCorrida) { + return boletoDAO.isExisteBoletoPorCorrida(corridaId, fecCorrida); + + } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index e51b5df6e..79ec4b37c 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -197,13 +197,10 @@ public class CorridaServiceImpl implements CorridaService { return corridaDAO.actualizacion(entidad); } + @Transactional public void borrar(Corrida entidad) { - entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); - entidad.setFecmodif(Calendar.getInstance().getTime()); - entidad.setActivo(ActivoUtil.ATIVO); - - corridaDAO.actualizacion(entidad); + corridaDAO.borrar(entidad); } @Override @@ -915,7 +912,7 @@ public class CorridaServiceImpl implements CorridaService { return b - a; } - private Boolean generarCorrida(Date dataGeracao, List lsEsquemaCorrida, boolean isGeracaoAutomaticaCorrida) { + public Boolean generarCorrida(Date dataGeracao, List lsEsquemaCorrida, boolean isGeracaoAutomaticaCorrida) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); @@ -1027,12 +1024,15 @@ public class CorridaServiceImpl implements CorridaService { } } - } finally { + }catch (Exception e) { + log.error("Erro ao gerar corrida", e ); + } + finally { if ((status != null) && (!status.isCompleted())) { transactionManager.commit(status); } } - //Valida se existe configuração de reserva para o cliente e crria Cria reserva + //Valida se existe configuração de reserva para o cliente e cria Cria reserva if(corrida !=null) { if(unUsuarioId!=null && unPuntoVenta!=null && estacionId!=null) { validaCriaReservaCliente(corrida, unUsuarioId, unPuntoVenta, estacionId); @@ -1715,5 +1715,18 @@ public class CorridaServiceImpl implements CorridaService { public Integer buscarOcupacaoCorrida(Corrida corrida) { return corridaDAO.buscarOcupacaoCorrida(corrida); } + + @Override + public Corrida buscarPorId(Id id) { + // TODO Auto-generated method stub + return corridaDAO.buscarPorId(id); + } + + @Override + public Corrida buscarCorridaAtivaPorId(Id id) { + return corridaDAO.buscarCorridaAtivaPorId(id); + } + + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java index 6f5c70e9f..f7f999b3f 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java @@ -188,6 +188,7 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { return entidad; } + private void integraAG(PuntoVenta entidad) throws IntegracionException{ Connection connection = null; try { From c3182a3ad59a0c6853bae5dfe6ccf105999d535b Mon Sep 17 00:00:00 2001 From: valdevir Date: Mon, 14 Aug 2023 15:34:10 -0300 Subject: [PATCH 2/2] fixes bug #AL-2734 --- .../TarefaGeracaoCorridaVO.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/com/rjconsultores/ventaboletos/vo/esquemaoperacional/TarefaGeracaoCorridaVO.java diff --git a/src/com/rjconsultores/ventaboletos/vo/esquemaoperacional/TarefaGeracaoCorridaVO.java b/src/com/rjconsultores/ventaboletos/vo/esquemaoperacional/TarefaGeracaoCorridaVO.java new file mode 100644 index 000000000..531e283e3 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/esquemaoperacional/TarefaGeracaoCorridaVO.java @@ -0,0 +1,47 @@ +package com.rjconsultores.ventaboletos.vo.esquemaoperacional; + +public class TarefaGeracaoCorridaVO { + + private String tarefa; + private String status; + private String codStatus; + + public TarefaGeracaoCorridaVO() { + super(); + } + + + + public TarefaGeracaoCorridaVO(String tarefa, String status, String codStatus) { + super(); + this.tarefa = tarefa; + this.status = status; + this.codStatus = codStatus; + } + + + + public String getTarefa() { + return tarefa; + } + + public void setTarefa(String tarefa) { + this.tarefa = tarefa; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getCodStatus() { + return codStatus; + } + + public void setCodStatus(String codStatus) { + this.codStatus = codStatus; + } +}