163 lines
8.6 KiB
Plaintext
Executable File
163 lines
8.6 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;
|
|
}
|
|
}
|