From df54cedf7cdbb7605ca041b981d916a3b6eae22b Mon Sep 17 00:00:00 2001 From: "valdir.cordeiro" Date: Wed, 24 May 2023 16:06:20 -0300 Subject: [PATCH] =?UTF-8?q?bug#al-2280=20(AGUIA=20BRANCA)=20ESPEC=202022?= =?UTF-8?q?=20-=20PRICING=20CONEX=C3=83O=20-=20vers=C3=A3o=202=20dev:=20qu?= =?UTF-8?q?a:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../ventaboletos/dao/ConexionCtrlDAO.java | 5 + .../ventaboletos/dao/ConexionRutaConfDAO.java | 8 ++ .../hibernate/ConexionCtrlHibernateDAO.java | 53 +++++++++ .../ConexionRutaConfHibernateDAO.java | 67 ++++++----- .../ventaboletos/entidad/Conexion.java | 10 ++ .../ventaboletos/entidad/Pricing.java | 32 +++++- .../ventaboletos/entidad/PricingConexao.java | 106 ++++++++++++++++++ .../service/ConexionCtrlService.java | 5 + .../service/impl/ConexionCtrlServiceImpl.java | 11 ++ .../service/impl/PricingServiceImpl.java | 24 ++++ .../vo/parada/ParadaVOConexionRuta.java | 10 ++ 12 files changed, 301 insertions(+), 32 deletions(-) create mode 100644 src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java diff --git a/pom.xml b/pom.xml index 619db7695..fbe5c2674 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.4.4 + 1.5.0 rj-releases diff --git a/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java index 237cff54c..07388a805 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java @@ -3,9 +3,14 @@ package com.rjconsultores.ventaboletos.dao; import java.util.List; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; +import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; public interface ConexionCtrlDAO extends GenericDAO { public List buscarConexionesCtrl(Integer origenId, Integer destinoId); + public List buscarTodasConexionesCtrlPricing(); + + public List carregarConexoesCadastradas(Long conexionctrlId); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/ConexionRutaConfDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConexionRutaConfDAO.java index 8e883a4dc..75666366f 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ConexionRutaConfDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ConexionRutaConfDAO.java @@ -2,9 +2,12 @@ package com.rjconsultores.ventaboletos.dao; import java.util.List; +import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; import com.rjconsultores.ventaboletos.entidad.ConexionRutaConf; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO; import com.rjconsultores.ventaboletos.vo.parada.ConexionRutaConfVO; +import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; public interface ConexionRutaConfDAO extends GenericDAO { @@ -22,4 +25,9 @@ public interface ConexionRutaConfDAO extends GenericDAO localidadesCombinadas, + List listConexionCtrl, List listConexionCtrlVO, List result); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java index fe66618de..3c68dd3c0 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java @@ -1,5 +1,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.hibernate.Query; @@ -10,10 +12,18 @@ import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.ConexionCtrlDAO; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; +import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.vo.conexion.OrdenarLocalidadesGeradas; +import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO; +import com.rjconsultores.ventaboletos.vo.parada.ConexionRutaCtrlVO; +import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; @Repository("conexionCtrlDAO") public class ConexionCtrlHibernateDAO extends GenericHibernateDAO implements ConexionCtrlDAO { + + @Autowired + private ConexionRutaConfHibernateDAO confRutaDAO; @Autowired public ConexionCtrlHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { @@ -39,4 +49,47 @@ public class ConexionCtrlHibernateDAO extends GenericHibernateDAO buscarTodasConexionesCtrlPricing() { + StringBuilder sb = new StringBuilder(); + sb.append(" from ConexionCtrl "); + sb.append(" where activo = 1 and indPricing = 1 "); + + Query query = getSession().createQuery(sb.toString()); + List list = query.list(); + + return list; + } + + @Override + public List carregarConexoesCadastradas(Long conexionctrlId) { + + if(conexionctrlId == null) { + return null; + } + + StringBuilder sQuery = new StringBuilder(); + sQuery.append(confRutaDAO.getSQLCarregarConexoesCadastradas()) + .append(" where ") + .append(" coctrl.activo = 1 and coctrl.conexionctrl_id = :conexionctrl_id "); + + Query qr = getSession().createSQLQuery(sQuery.toString()); + qr.setParameter("conexionctrl_id", conexionctrlId); + + List localidadesCombinadas = new ArrayList(0); + List listConexionCtrl = new ArrayList(0); + List listConexionCtrlVO = new ArrayList(0); + + List result = qr.list(); + + confRutaDAO.transformarObjetosConexao(localidadesCombinadas, listConexionCtrl, listConexionCtrlVO, result); + + + Collections.sort(localidadesCombinadas, new OrdenarLocalidadesGeradas()); + + return localidadesCombinadas; + + } } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionRutaConfHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionRutaConfHibernateDAO.java index f87fee88d..c775bfb50 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionRutaConfHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionRutaConfHibernateDAO.java @@ -157,26 +157,9 @@ public class ConexionRutaConfHibernateDAO extends GenericHibernateDAO listConexionCtrlVO = new ArrayList(0); List result = qr.list(); + + transformarObjetosConexao(localidadesCombinadas, listConexionCtrl, listConexionCtrlVO, result); + + retorno.setListConexionCtrl(listConexionCtrl); + + Collections.sort(localidadesCombinadas, new OrdenarLocalidadesGeradas()); + retorno.setLocalidadesCombinadas(localidadesCombinadas); + + return retorno; + } + + @Override + public void transformarObjetosConexao(List localidadesCombinadas, + List listConexionCtrl, List listConexionCtrlVO, List result) { for (Object[] tupla : result) { Long conexionRutaTramoId = Long.valueOf(tupla[0].toString()); Integer rutaId = Integer.valueOf(tupla[1].toString()); @@ -218,13 +215,31 @@ public class ConexionRutaConfHibernateDAO extends GenericHibernateDAO listConexionCtrlVO, List listConexionCtrl, Integer origemConexaoCtrl, Integer destinoConexaoCtrl, Long conexionctrlId, Boolean indPricing) { diff --git a/src/com/rjconsultores/ventaboletos/entidad/Conexion.java b/src/com/rjconsultores/ventaboletos/entidad/Conexion.java index 135622be0..57fc8dd0a 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Conexion.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Conexion.java @@ -60,6 +60,9 @@ public class Conexion implements Serializable { private Integer rutaId; @Column(name = "CONEXIONRUTATRAMOCTRL_ID") private Long conexionRutaTramoId; + + @Transient + private Boolean indPricing; public Long getCorridaId() { return corridaId; @@ -202,4 +205,11 @@ public class Conexion implements Serializable { this.conexionRutaTramoId = conexionRutaTramoId; } + public Boolean getIndPricing() { + return indPricing == null ? false : indPricing; + } + + public void setIndPricing(Boolean indPricing) { + this.indPricing = indPricing; + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Pricing.java b/src/com/rjconsultores/ventaboletos/entidad/Pricing.java index 920001c4c..d7559a04a 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Pricing.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Pricing.java @@ -122,16 +122,19 @@ public class Pricing implements Serializable { @Column(name = "INDSAFER") private Boolean indSafer; + + @OneToMany(mappedBy = "pricing", cascade = CascadeType.ALL) + private List pricingConexaoList; public enum GerarFeriado { - // Declaração dos enum + // Declara��o dos enum GERARSEMPRE("GERAR SEMPRE", "S"), - GERARQUANDOFERIADO("GERAR SÓ QUANDO FOR FERIADO", "F"), + GERARQUANDOFERIADO("GERAR S� QUANDO FOR FERIADO", "F"), - GERARQUANDONAOFERIADO("GERAR QUANDO NÃO FOR FERIADO", "N"); + GERARQUANDONAOFERIADO("GERAR QUANDO N�O FOR FERIADO", "N"); - // Definição das constantes + // Defini��o das constantes public final String valor; public final String descricao; @@ -570,5 +573,24 @@ public class Pricing implements Serializable { public void setIndSafer(Boolean indSafer) { this.indSafer = indSafer; } - + + public List getPricingConexaoList() { + + if(pricingConexaoList == null) { + pricingConexaoList = new ArrayList<>(); + } + + List pConexaoList = new ArrayList(); + for (PricingConexao pCp : this.pricingConexaoList) { + if (pCp.getActivo() != EXCLUIDO.intValue()) { + pConexaoList.add(pCp); + } + } + + return pConexaoList; + } + + public void setPricingConexaoList(List pricingConexaoList) { + this.pricingConexaoList = pricingConexaoList; + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java b/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java new file mode 100644 index 000000000..e30051470 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java @@ -0,0 +1,106 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.util.Date; +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * + * @author Valdir.Cordeiro + */ +@Entity +@SequenceGenerator(name = "PRICING_CONEXAO_SEQ", sequenceName = "PRICING_CONEXAO_SEQ", allocationSize = 1) +@Table(name = "PRICING_CONEXAO") +public class PricingConexao implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "PRICING_CONEXAO_SEQ") + @Column(name = "PRICINGCONEXAO_ID") + private Long pricingConexaoId; + + @Basic(optional = false) + @Column(name = "ACTIVO") + private Integer activo; + + @Basic(optional = false) + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + + @Basic(optional = false) + @Column(name = "USUARIO_ID") + private int usuarioId; + + @JoinColumn(name = "PRICING_ID", referencedColumnName = "PRICING_ID") + @ManyToOne + private Pricing pricing; + + @JoinColumn(name = "CONEXIONCTRL_ID", referencedColumnName = "CONEXIONCTRL_ID") + @ManyToOne + private ConexionCtrl conexionCtrl; + + public PricingConexao() { + } + + public Long getPricingConexaoId() { + return pricingConexaoId; + } + + public void setPricingConexaoId(Long pricingConexaoId) { + this.pricingConexaoId = pricingConexaoId; + } + + public Integer getActivo() { + return activo; + } + + public void setActivo(Integer activo) { + this.activo = activo; + } + + public Date getFecmodif() { + return fecmodif; + } + + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } + + public int getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(int usuarioId) { + this.usuarioId = usuarioId; + } + + public Pricing getPricing() { + return pricing; + } + + public void setPricing(Pricing pricing) { + this.pricing = pricing; + } + + public ConexionCtrl getConexionCtrl() { + return conexionCtrl; + } + + public void setConexionCtrl(ConexionCtrl conexionCtrl) { + this.conexionCtrl = conexionCtrl; + } +} diff --git a/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java b/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java index a9523df67..5dd0d43e1 100644 --- a/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java +++ b/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java @@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.service; import java.util.List; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; +import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; public interface ConexionCtrlService extends GenericService { @@ -10,4 +11,8 @@ public interface ConexionCtrlService extends GenericService public void suscribirTodos(List conexionCtrlList); + public List buscarTodasConexionesCtrlPricing(); + + public List carregarConexoesCadastradas(Long conexionctrlId); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java index c2e1ec087..4a6eab577 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java @@ -20,6 +20,7 @@ import com.rjconsultores.ventaboletos.service.ConexionConfService; import com.rjconsultores.ventaboletos.service.ConexionCtrlService; import com.rjconsultores.ventaboletos.service.ConexionService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; @Service("conexionCtrlService") public class ConexionCtrlServiceImpl implements ConexionCtrlService { @@ -120,4 +121,14 @@ public class ConexionCtrlServiceImpl implements ConexionCtrlService { } conexionCtrlDAO.suscribirTodos(conexionCtrlList); } + + @Override + public List buscarTodasConexionesCtrlPricing() { + return conexionCtrlDAO.buscarTodasConexionesCtrlPricing(); + } + + @Override + public List carregarConexoesCadastradas(Long conexionctrlId) { + return conexionCtrlDAO.carregarConexoesCadastradas(conexionctrlId); + } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/PricingServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/PricingServiceImpl.java index ec751feb9..2b43f14e7 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/PricingServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/PricingServiceImpl.java @@ -22,6 +22,7 @@ import com.rjconsultores.ventaboletos.entidad.Pricing; import com.rjconsultores.ventaboletos.entidad.PricingAsiento; import com.rjconsultores.ventaboletos.entidad.PricingCategoria; import com.rjconsultores.ventaboletos.entidad.PricingClase; +import com.rjconsultores.ventaboletos.entidad.PricingConexao; import com.rjconsultores.ventaboletos.entidad.PricingCorrida; import com.rjconsultores.ventaboletos.entidad.PricingDia; import com.rjconsultores.ventaboletos.entidad.PricingFormapago; @@ -171,6 +172,12 @@ public class PricingServiceImpl implements PricingService { pricingFormapago.setFecmodif(Calendar.getInstance().getTime()); pricingFormapago.setActivo(ativarInativarExcluir); } + + for (PricingConexao pricingConexao : entidad.getPricingConexaoList()) { + pricingConexao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + pricingConexao.setFecmodif(Calendar.getInstance().getTime()); + pricingConexao.setActivo(ativarInativarExcluir); + } entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); @@ -254,6 +261,23 @@ public class PricingServiceImpl implements PricingService { clonePricing.setPricingVigenciaList(obtemPricingVigenciaList(pricing, clonePricing, ativar)); clonePricing.setPricingTipoServicioList(obtemPricingTipoServicioList(pricing, clonePricing, ativar)); clonePricing.setPricingFormapagoList(obtemPricingFormapagoList(pricing, clonePricing, ativar)); + clonePricing.setPricingConexaoList(obtemPricingConexaoList(pricing, clonePricing, ativar)); + } + + private List obtemPricingConexaoList(Pricing pricing, Pricing clonePricing, Integer ativar) { + List pricingConexaoList = new ArrayList(); + for (PricingConexao pricingConexao : pricing.getPricingConexaoList()) { + + PricingConexao clonePricingConexao = new PricingConexao(); + clonePricingConexao.setActivo(Pricing.ATIVO); + clonePricingConexao.setConexionCtrl(pricingConexao.getConexionCtrl()); + clonePricingConexao.setFecmodif(Calendar.getInstance().getTime()); + clonePricingConexao.setPricing(pricing); + clonePricingConexao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + pricingConexaoList.add(clonePricingConexao); + } + return pricingConexaoList; } private List obtemPricingFormapagoList(Pricing pricing, Pricing clonePricing, Integer ativar) { diff --git a/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java b/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java index 11209d390..0cd126cfe 100644 --- a/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java +++ b/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.vo.parada; import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.PricingConexao; public class ParadaVOConexionRuta { @@ -18,6 +19,8 @@ public class ParadaVOConexionRuta { private ConexionCtrlVO conexionCtrl; private ConexionRutaCtrlVO conexionRutaCtrl; + + private PricingConexao pricingConexao; public ParadaVOConexionRuta(int grupo, Parada paradaOrigem, Parada paradaDestino, Integer rutaId, String numRuta, Short secuencia, boolean valido, Parada paradaOrigemTrecho, Parada paradaDestinoTrecho, ConexionCtrlVO conexionCtrl, @@ -187,4 +190,11 @@ public class ParadaVOConexionRuta { return numRuta + " - " + sentido; } + public PricingConexao getPricingConexao() { + return pricingConexao; + } + + public void setPricingConexao(PricingConexao pricingConexao) { + this.pricingConexao = pricingConexao; + } } \ No newline at end of file