maia_modificado/.svn/pristine/ae/ae392ec0242f08a5074e263ec9c...

163 lines
8.8 KiB
Plaintext
Executable File

package com.fp.armas.rules.query.webservices.util;
import java.util.List;
import javax.persistence.Query;
import com.fp.common.logger.APPLogger;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.dto.ws.ArmaDto;
import com.fp.persistence.parmas.inte.TarmTagArma;
import com.fp.persistence.parmas.param.TarmTipoArmaExplosivo;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetailKey;
/**
* Clase de funcionalidades que trabajan con {@link ArmaDto}
* @author dcruz
*
*/
public class ArmaUtil {
private static ArmaUtil INSTANCIA = new ArmaUtil();
private static final String QUERY_ARMA_TAG = "SELECT o FROM TarmTagArma o WHERE o.pk.carma=:carma";
private static final String QUERY_ARMA_TAG_ARMA = "SELECT o FROM TarmTagArma o WHERE o.pk.ctag=:ctag";
private ArmaUtil(){}
public static ArmaUtil getInstancia() {
return INSTANCIA;
}
public ArmaDto obtenerArmaId(String carma) {
ArmaDto arma = null;
try {
TarmArmas tarmArmas = PersistenceHelper.getEntityManager().find(TarmArmas.class, carma);
if(tarmArmas != null){
arma = new ArmaDto();
arma.setIdArma(tarmArmas.getPk());
arma.setCantidad(tarmArmas.getCantidad());
arma.setSerie(tarmArmas.getLote());
if(tarmArmas.getMarca()!=null && tarmArmas.getMarcacodigo()!=null){
TgeneCatalogDetail marca=TgeneCatalogDetail.
find(PersistenceHelper.getEntityManager(),new TgeneCatalogDetailKey(tarmArmas.getMarca(), tarmArmas.getMarcacodigo()));
if(marca!=null){
arma.setMarca(marca.getDescription());
}
}
arma.setModelo(tarmArmas.getModelo());
TgeneCatalogDetail estado;
estado = TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tarmArmas.getEstado() != null ? tarmArmas.getEstado() : "", tarmArmas.getEstadocodigo() != null ? tarmArmas.getEstadocodigo() : ""));
arma.setEstado(estado != null ? estado.getDescription() : "");
arma.setTagAsociado(obtenerTag(arma.getIdArma()));
TarmTipoArmaExplosivo tipoArmaExplosivo = TarmTipoArmaExplosivo.find(PersistenceHelper.getEntityManager(), tarmArmas.getCtipoarmaexplosivo());
if(tipoArmaExplosivo != null){
TgeneCatalogDetail clase= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getClase() != null ? tipoArmaExplosivo.getClase() : "", tipoArmaExplosivo.getClasecodigo() != null ? tipoArmaExplosivo.getClasecodigo() : ""));
arma.setClase(clase != null ? clase.getDescription():null);
TgeneCatalogDetail tipoArma= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getTipoarmaexplosivo() != null ? tipoArmaExplosivo.getTipoarmaexplosivo() : "", tipoArmaExplosivo.getTipoarmaexplosivocodigo() != null ? tipoArmaExplosivo.getTipoarmaexplosivocodigo() : ""));
arma.setTipo(tipoArma != null ? tipoArma.getDescription():null);
TgeneCatalogDetail unidadMedida= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getUnidadmedidapeso() != null ? tipoArmaExplosivo.getUnidadmedidapeso():"", tipoArmaExplosivo.getUnidadmedidapesocodigo() != null ? tipoArmaExplosivo.getUnidadmedidapesocodigo() : ""));
arma.setUnidadMedidaPeso(unidadMedida != null ? unidadMedida.getDescription():null);
TgeneCatalogDetail calibre= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getCalibre() != null ? tipoArmaExplosivo.getCalibre() : "", tipoArmaExplosivo.getCalibrecodigo() != null ? tipoArmaExplosivo.getCalibrecodigo() : ""));
arma.setCalibre(calibre != null ? calibre.getDescription() : null);
TgeneCatalogDetail longitud= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getLongitud() != null ? tipoArmaExplosivo.getLongitud() : "", tipoArmaExplosivo.getLongitudcodigo() != null ? tipoArmaExplosivo.getLongitudcodigo() : ""));
arma.setLongitud(longitud != null ? longitud.getDescription() : null);
}
return arma;
}
} catch (Exception e) {
APPLogger.getLogger().error(e);
}
return null;
}
/**
* Obtiene el ArmaDto por el codigo del tag
* @param ctag codigo del tag
* @return ArmaDto
*/
public ArmaDto obtenerArmaIdPorTag(String ctag) {
ArmaDto arma = null;
try {
String carma = obtenerTagPorId(ctag);
if(carma!=null && !carma.isEmpty()){
TarmArmas tarmArmas = PersistenceHelper.getEntityManager().find(TarmArmas.class, carma);
if(tarmArmas != null){
arma = new ArmaDto();
arma.setIdArma(tarmArmas.getPk());
arma.setCantidad(tarmArmas.getCantidad());
arma.setSerie(tarmArmas.getLote());
if(tarmArmas.getMarca()!=null && tarmArmas.getMarcacodigo()!=null){
TgeneCatalogDetail marca=TgeneCatalogDetail.
find(PersistenceHelper.getEntityManager(),new TgeneCatalogDetailKey(tarmArmas.getMarca(), tarmArmas.getMarcacodigo()));
if(marca!=null){
arma.setMarca(marca.getDescription());
}
}
arma.setModelo(tarmArmas.getModelo());
TgeneCatalogDetail estado;
estado = TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tarmArmas.getEstado() != null ? tarmArmas.getEstado() : "", tarmArmas.getEstadocodigo() != null ? tarmArmas.getEstadocodigo() : ""));
arma.setEstado(estado != null ? estado.getDescription() : "");
arma.setTagAsociado(ctag);
TarmTipoArmaExplosivo tipoArmaExplosivo = TarmTipoArmaExplosivo.find(PersistenceHelper.getEntityManager(), tarmArmas.getCtipoarmaexplosivo());
if(tipoArmaExplosivo != null){
TgeneCatalogDetail clase= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getClase() != null ? tipoArmaExplosivo.getClase() : "", tipoArmaExplosivo.getClasecodigo() != null ? tipoArmaExplosivo.getClasecodigo() : ""));
arma.setClase(clase != null ? clase.getDescription():null);
TgeneCatalogDetail tipoArma= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getTipoarmaexplosivo() != null ? tipoArmaExplosivo.getTipoarmaexplosivo() : "", tipoArmaExplosivo.getTipoarmaexplosivocodigo() != null ? tipoArmaExplosivo.getTipoarmaexplosivocodigo() : ""));
arma.setTipo(tipoArma != null ? tipoArma.getDescription():null);
TgeneCatalogDetail unidadMedida= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getUnidadmedidapeso() != null ? tipoArmaExplosivo.getUnidadmedidapeso():"", tipoArmaExplosivo.getUnidadmedidapesocodigo() != null ? tipoArmaExplosivo.getUnidadmedidapesocodigo() : ""));
arma.setUnidadMedidaPeso(unidadMedida != null ? unidadMedida.getDescription():null);
TgeneCatalogDetail calibre= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getCalibre() != null ? tipoArmaExplosivo.getCalibre() : "", tipoArmaExplosivo.getCalibrecodigo() != null ? tipoArmaExplosivo.getCalibrecodigo() : ""));
arma.setCalibre(calibre != null ? calibre.getDescription() : null);
TgeneCatalogDetail longitud= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(tipoArmaExplosivo.getLongitud() != null ? tipoArmaExplosivo.getLongitud() : "", tipoArmaExplosivo.getLongitudcodigo() != null ? tipoArmaExplosivo.getLongitudcodigo() : ""));
arma.setLongitud(longitud != null ? longitud.getDescription() : null);
}
return arma;
}
}
} catch (Exception e) {
APPLogger.getLogger().error(e);
}
return null;
}
/**
* Retorna el tag del arma asociado
* @param carma
* @return
*/
@SuppressWarnings("unchecked")
public String obtenerTag(String carma) {
String tagArma = null;
Query query = PersistenceHelper.getEntityManager().createQuery(QUERY_ARMA_TAG);
query.setParameter("carma", carma);
List<TarmTagArma> lTarmTagArmas = query.getResultList();
if(lTarmTagArmas != null && !lTarmTagArmas.isEmpty()){
tagArma = lTarmTagArmas.iterator().next().getPk().getCtag();
}
return tagArma;
}
/**
* Retorna el carma asociado al tag
* @param ctag
* @return
*/
@SuppressWarnings("unchecked")
public String obtenerTagPorId(String ctag) {
String tagArma = null;
Query query = PersistenceHelper.getEntityManager().createQuery(QUERY_ARMA_TAG_ARMA);
query.setParameter("ctag", ctag);
List<TarmTagArma> lTarmTagArmas = query.getResultList();
if(lTarmTagArmas != null && !lTarmTagArmas.isEmpty()){
tagArma = lTarmTagArmas.iterator().next().getPk().getCarma();
}
return tagArma;
}
}