0017317: Erro na sincronização de trechos com alias

fixes bug#0017317
dev:Gleimar
qua:Marcelo

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@99055 d1611594-4594-4d17-8e1d-87c2c4800839
master
daniel.zauli 2019-11-26 23:34:31 +00:00
parent 9fb2a8277a
commit e40ce5c73f
6 changed files with 83 additions and 65 deletions

View File

@ -55,4 +55,6 @@ public interface AliasServicoDAO extends GenericDAO<AliasServico, Integer>{
*/ */
public AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida); public AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida);
List<AliasServico> buscarPorRuta(Integer rutaId);
} }

View File

@ -53,6 +53,21 @@ public class AliasServicoHibernateDAO extends GenericHibernateDAO<AliasServico,
return c.list(); return c.list();
} }
@Override
public List<AliasServico> buscarPorRuta(Integer rutaId) {
StringBuilder hql = new StringBuilder();
hql.append("SELECT DISTINCT alias ");
hql.append("FROM AliasServico alias ");
hql.append(" WHERE alias.activo = 1 ");
hql.append(" AND alias.ruta.rutaId = :rutaId" );
Query query = getSession().createQuery(hql.toString());
query.setInteger("rutaId", rutaId);
return query.list();
}
@Override @Override
public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo) { public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo) {

View File

@ -5,6 +5,9 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.apache.log4j.Logger;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.Query; import org.hibernate.Query;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
@ -22,12 +25,15 @@ import com.rjconsultores.ventaboletos.constantes.Constantes;
import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO; import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
import com.rjconsultores.ventaboletos.dao.util.DBUtil; import com.rjconsultores.ventaboletos.dao.util.DBUtil;
import com.rjconsultores.ventaboletos.entidad.AliasServico;
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento; import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.TarifaMinima; import com.rjconsultores.ventaboletos.entidad.TarifaMinima;
import com.rjconsultores.ventaboletos.service.AliasServicoService;
import com.rjconsultores.ventaboletos.service.RutaService;
import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO; import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO;
import com.rjconsultores.ventaboletos.vo.corrida.TramoSequenciaVO; import com.rjconsultores.ventaboletos.vo.corrida.TramoSequenciaVO;
import com.rjconsultores.ventaboletos.vo.parada.ParadaVO; import com.rjconsultores.ventaboletos.vo.parada.ParadaVO;
@ -40,10 +46,14 @@ import com.rjconsultores.ventaboletos.vo.via.ViaVO;
@Repository("operadorEmbarcadaServicoDAO") @Repository("operadorEmbarcadaServicoDAO")
public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<OperadorEmbarcadaServico, Long> implements OperadorEmbarcadaServicoDAO { public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<OperadorEmbarcadaServico, Long> implements OperadorEmbarcadaServicoDAO {
private static Logger log = Logger.getLogger(OperadorEmbarcadaServicoHibernateDAO.class);
@Autowired @Autowired
private CategoriaDescuentoDAO categoriaDescuentoDAO; private CategoriaDescuentoDAO categoriaDescuentoDAO;
// @Autowired
// private MarcaDAO marcaDAO; @Autowired
private AliasServicoService aliasServicoService;
@Autowired @Autowired
public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
@ -315,7 +325,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void preencherTramosSequencias(CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) { private void preencherTramosSequencias(final CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" SELECT"); sb.append(" SELECT");
@ -419,16 +429,9 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" and paradaDestinoId = TRM.DESTINO_ID"); sb.append(" and paradaDestinoId = TRM.DESTINO_ID");
sb.append(" and rutaId = TA.RUTA_ID"); sb.append(" and rutaId = TA.RUTA_ID");
sb.append(" and rownum = 1"); sb.append(" and rownum = 1");
sb.append(" ) as tarifaMinima,"); sb.append(" ) as tarifaMinima ");
sb.append(" aser.aliasorigen_id As aliasorigenId,");
sb.append(" aser.aliasdestino_id As aliasdestinoId,");
sb.append(" aori.descparada As descAliasorigen,");
sb.append(" dori.descparada As descAliasdestino");
sb.append(" FROM RUTA_COMBINACION RC"); sb.append(" FROM RUTA_COMBINACION RC");
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID"); sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID");
sb.append(" left join alias_servico aser on aser.origen_id = trm.origen_id and aser.destino_id = trm.destino_id and aser.ruta_id = rc.ruta_id and aser.corrida_id = :corridaId");
sb.append(" left join parada aori on aori.parada_id = aser.aliasorigen_id");
sb.append(" left join parada dori on dori.parada_id = aser.aliasdestino_id");
sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.DESTINO_ID = TRM.DESTINO_ID AND CRT.CORRIDA_ID = :corridaId AND CRT.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS')"); sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.DESTINO_ID = TRM.DESTINO_ID AND CRT.CORRIDA_ID = :corridaId AND CRT.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS')");
sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = TRM.ORIGEN_ID"); sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = TRM.ORIGEN_ID");
sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID"); sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID");
@ -483,11 +486,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" TA.IMPORTEOUTROS,"); sb.append(" TA.IMPORTEOUTROS,");
sb.append(" TA.IMPORTESEGURO,"); sb.append(" TA.IMPORTESEGURO,");
sb.append(" TA.PRECIO,"); sb.append(" TA.PRECIO,");
sb.append(" TA.RUTA_ID,"); sb.append(" TA.RUTA_ID");
sb.append(" aser.aliasorigen_id,");
sb.append(" aser.aliasdestino_id,");
sb.append(" aori.descparada,");
sb.append(" dori.descparada");
sb.append(" ORDER BY"); sb.append(" ORDER BY");
sb.append(" CRT.NUMSECUENCIA"); sb.append(" CRT.NUMSECUENCIA");
@ -517,10 +516,6 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
.addScalar("importeSeguro", BigDecimalType.INSTANCE) .addScalar("importeSeguro", BigDecimalType.INSTANCE)
.addScalar("precio", BigDecimalType.INSTANCE) .addScalar("precio", BigDecimalType.INSTANCE)
.addScalar("tarifaMinima", BigDecimalType.INSTANCE) .addScalar("tarifaMinima", BigDecimalType.INSTANCE)
.addScalar("aliasorigenId", IntegerType.INSTANCE)
.addScalar("aliasdestinoId", IntegerType.INSTANCE)
.addScalar("descAliasorigen", StringType.INSTANCE)
.addScalar("descAliasdestino", StringType.INSTANCE)
.setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class)); .setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class));
query.setParameter("empresaId", corrida.getEmpresaId()); query.setParameter("empresaId", corrida.getEmpresaId());
@ -538,8 +533,10 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
List<TramoVO> lsTramo = new ArrayList<TramoVO>(); List<TramoVO> lsTramo = new ArrayList<TramoVO>();
List<AliasServico> aliasLs = aliasServicoService.buscarPorRuta(corrida.getRutaId());
for (TramoSequenciaVO ts : tramosequencia) { for (TramoSequenciaVO ts : tramosequencia) {
ParadaVO origem = new ParadaVO( final ParadaVO origem = new ParadaVO(
ts.getOrigemId(), ts.getOrigemId(),
ts.getDescOrigem(), ts.getDescOrigem(),
ts.getCidadeOrigemId(), ts.getCidadeOrigemId(),
@ -548,7 +545,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
ts.getNomeEstadoOrigem(), ts.getNomeEstadoOrigem(),
ts.getCveEstadoOrigem()); ts.getCveEstadoOrigem());
ParadaVO destino = new ParadaVO( final ParadaVO destino = new ParadaVO(
ts.getDestinoId(), ts.getDestinoId(),
ts.getDescDestino(), ts.getDescDestino(),
ts.getCidadeDestinoId(), ts.getCidadeDestinoId(),
@ -588,11 +585,44 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
ts.getImporteSeguro(), ts.getImporteSeguro(),
ts.getImportePedagio(), ts.getImportePedagio(),
ts.getImporteOutros()); ts.getImporteOutros());
tramo.setAliasdestinoId(ts.getAliasdestinoId());
tramo.setAliasorigenId(ts.getAliasorigenId());
tramo.setDescAliasdestino(ts.getDescAliasdestino());
tramo.setDescAliasorigen(ts.getDescAliasorigen());
AliasServico aC = null;
try {
aC = (AliasServico) CollectionUtils.find(aliasLs, new Predicate() {
@Override
public boolean evaluate(Object arg0) {
AliasServico alias = (AliasServico)arg0;
return alias.getCorridaId() != null && alias.getCorridaId().equals(corrida.getCorridaId())
&& alias.getOrigen().getParadaId().equals(origem.getParadaId())
&& alias.getDestino().getParadaId().equals(destino.getParadaId());
}
});
if(aC == null) {
aC = (AliasServico) CollectionUtils.find(aliasLs, new Predicate() {
@Override
public boolean evaluate(Object arg0) {
AliasServico alias = (AliasServico)arg0;
return alias.getOrigen().getParadaId().equals(origem.getParadaId())
&& alias.getDestino().getParadaId().equals(destino.getParadaId())
&& alias.getCorridaId() == null;
}
});
}
}catch(Throwable th) {
log.error("erro ao carrgar o alias",th);
}
if (aC != null) {
tramo.setAliasdestinoId(aC.getAliasDestino().getParadaId());
tramo.setAliasorigenId(aC.getAliasOrigen().getParadaId());
tramo.setDescAliasdestino(aC.getAliasDestino().getDescparada());
tramo.setDescAliasorigen(aC.getAliasOrigen().getDescparada());
}
lsTramo.add(tramo); lsTramo.add(tramo);
} }

View File

@ -23,4 +23,6 @@ public interface AliasServicoService{
public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo); public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo);
public AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida); public AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida);
List<AliasServico> buscarPorRuta(Integer rutaId);
} }

View File

@ -82,6 +82,11 @@ public class AliasServicoServiceImpl implements AliasServicoService {
aliasServicoDAO.actualizacion(entidad); aliasServicoDAO.actualizacion(entidad);
} }
@Override
public List<AliasServico> buscarPorRuta(Integer rutaId) {
return aliasServicoDAO.buscarPorRuta(rutaId);
}
@Override @Override
public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo) { public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo) {
return aliasServicoDAO.buscarPorLinhaEmpresa(linhas, empresas, tiposClasses, orgaos, prefixo); return aliasServicoDAO.buscarPorLinhaEmpresa(linhas, empresas, tiposClasses, orgaos, prefixo);

View File

@ -28,10 +28,6 @@ public class TramoSequenciaVO {
private BigDecimal importeSeguro; private BigDecimal importeSeguro;
private BigDecimal precio; private BigDecimal precio;
private BigDecimal tarifaMinima; private BigDecimal tarifaMinima;
private Integer aliasorigenId;
private Integer aliasdestinoId;
private String descAliasorigen;
private String descAliasdestino;
public TramoSequenciaVO() { public TramoSequenciaVO() {
@ -237,36 +233,4 @@ public class TramoSequenciaVO {
this.tarifaMinima = tarifaMinima; this.tarifaMinima = tarifaMinima;
} }
public Integer getAliasorigenId() {
return aliasorigenId;
}
public void setAliasorigenId(Integer aliasorigenId) {
this.aliasorigenId = aliasorigenId;
}
public Integer getAliasdestinoId() {
return aliasdestinoId;
}
public void setAliasdestinoId(Integer aliasdestinoId) {
this.aliasdestinoId = aliasdestinoId;
}
public String getDescAliasorigen() {
return descAliasorigen;
}
public void setDescAliasorigen(String descAliasorigen) {
this.descAliasorigen = descAliasorigen;
}
public String getDescAliasdestino() {
return descAliasdestino;
}
public void setDescAliasdestino(String descAliasdestino) {
this.descAliasdestino = descAliasdestino;
}
} }