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-87c2c4800839master
parent
9fb2a8277a
commit
e40ce5c73f
|
@ -55,4 +55,6 @@ public interface AliasServicoDAO extends GenericDAO<AliasServico, Integer>{
|
|||
*/
|
||||
public AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida);
|
||||
|
||||
List<AliasServico> buscarPorRuta(Integer rutaId);
|
||||
|
||||
}
|
||||
|
|
|
@ -53,6 +53,21 @@ public class AliasServicoHibernateDAO extends GenericHibernateDAO<AliasServico,
|
|||
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
|
||||
public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo) {
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
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.Query;
|
||||
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.OperadorEmbarcadaServicoDAO;
|
||||
import com.rjconsultores.ventaboletos.dao.util.DBUtil;
|
||||
import com.rjconsultores.ventaboletos.entidad.AliasServico;
|
||||
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
|
||||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
|
||||
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
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.TramoSequenciaVO;
|
||||
import com.rjconsultores.ventaboletos.vo.parada.ParadaVO;
|
||||
|
@ -40,10 +46,14 @@ import com.rjconsultores.ventaboletos.vo.via.ViaVO;
|
|||
@Repository("operadorEmbarcadaServicoDAO")
|
||||
public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<OperadorEmbarcadaServico, Long> implements OperadorEmbarcadaServicoDAO {
|
||||
|
||||
private static Logger log = Logger.getLogger(OperadorEmbarcadaServicoHibernateDAO.class);
|
||||
|
||||
@Autowired
|
||||
private CategoriaDescuentoDAO categoriaDescuentoDAO;
|
||||
// @Autowired
|
||||
// private MarcaDAO marcaDAO;
|
||||
|
||||
@Autowired
|
||||
private AliasServicoService aliasServicoService;
|
||||
|
||||
|
||||
@Autowired
|
||||
public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||||
|
@ -315,7 +325,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|||
}
|
||||
|
||||
@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();
|
||||
|
||||
sb.append(" SELECT");
|
||||
|
@ -419,16 +429,9 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|||
sb.append(" and paradaDestinoId = TRM.DESTINO_ID");
|
||||
sb.append(" and rutaId = TA.RUTA_ID");
|
||||
sb.append(" and rownum = 1");
|
||||
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(" ) as tarifaMinima ");
|
||||
sb.append(" FROM RUTA_COMBINACION RC");
|
||||
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 PARADA ORI ON ORI.PARADA_ID = TRM.ORIGEN_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.IMPORTESEGURO,");
|
||||
sb.append(" TA.PRECIO,");
|
||||
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(" TA.RUTA_ID");
|
||||
sb.append(" ORDER BY");
|
||||
sb.append(" CRT.NUMSECUENCIA");
|
||||
|
||||
|
@ -517,10 +516,6 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|||
.addScalar("importeSeguro", BigDecimalType.INSTANCE)
|
||||
.addScalar("precio", 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));
|
||||
|
||||
query.setParameter("empresaId", corrida.getEmpresaId());
|
||||
|
@ -538,8 +533,10 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|||
|
||||
List<TramoVO> lsTramo = new ArrayList<TramoVO>();
|
||||
|
||||
List<AliasServico> aliasLs = aliasServicoService.buscarPorRuta(corrida.getRutaId());
|
||||
|
||||
for (TramoSequenciaVO ts : tramosequencia) {
|
||||
ParadaVO origem = new ParadaVO(
|
||||
final ParadaVO origem = new ParadaVO(
|
||||
ts.getOrigemId(),
|
||||
ts.getDescOrigem(),
|
||||
ts.getCidadeOrigemId(),
|
||||
|
@ -548,7 +545,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|||
ts.getNomeEstadoOrigem(),
|
||||
ts.getCveEstadoOrigem());
|
||||
|
||||
ParadaVO destino = new ParadaVO(
|
||||
final ParadaVO destino = new ParadaVO(
|
||||
ts.getDestinoId(),
|
||||
ts.getDescDestino(),
|
||||
ts.getCidadeDestinoId(),
|
||||
|
@ -588,11 +585,44 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|||
ts.getImporteSeguro(),
|
||||
ts.getImportePedagio(),
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida);
|
||||
|
||||
List<AliasServico> buscarPorRuta(Integer rutaId);
|
||||
}
|
||||
|
|
|
@ -82,6 +82,11 @@ public class AliasServicoServiceImpl implements AliasServicoService {
|
|||
aliasServicoDAO.actualizacion(entidad);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AliasServico> buscarPorRuta(Integer rutaId) {
|
||||
return aliasServicoDAO.buscarPorRuta(rutaId);
|
||||
}
|
||||
|
||||
@Override
|
||||
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);
|
||||
|
|
|
@ -28,10 +28,6 @@ public class TramoSequenciaVO {
|
|||
private BigDecimal importeSeguro;
|
||||
private BigDecimal precio;
|
||||
private BigDecimal tarifaMinima;
|
||||
private Integer aliasorigenId;
|
||||
private Integer aliasdestinoId;
|
||||
private String descAliasorigen;
|
||||
private String descAliasdestino;
|
||||
|
||||
public TramoSequenciaVO() {
|
||||
|
||||
|
@ -237,36 +233,4 @@ public class TramoSequenciaVO {
|
|||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue