package com.fp.armas.rules.query.general; import java.util.List; import com.fp.bpm.query.QueryJsf; import com.fp.dto.query.QueryRequest; import com.fp.dto.rules.QueryRule; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.commondb.exception.CommondbException; import com.fp.persistence.parmas.soli.TarmArmas; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetailKey; /** * Clase que obtiene los datos completos del arma * @author dcruz * */ public class ArmasQuery extends QueryRule { private static final long serialVersionUID = 1L; /** * Completa datos del arma */ @SuppressWarnings("unchecked") @Override public QueryRequest process(QueryRequest pRequest) throws Exception { QueryJsf query = new QueryJsf(); query.execute(pRequest); List armasList = (List) pRequest.getResponse().get("ARMAS"); this.managedResponse(armasList); return pRequest; } /** * Agrega metadata adicional de las armas para mostrar en las consultas * @param armasList * @throws Exception * @throws CommondbException */ private void managedResponse(List armasList) throws CommondbException, Exception{ for (TarmArmas armas : armasList) { //agrego los datos de TgeneCatalogDetail clase= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(armas.getModifiedData().get("cclase") != null ? armas.getModifiedData().get("cclase").toString() : "", armas.getModifiedData().get("cclasecodigo") != null ? armas.getModifiedData().get("cclasecodigo").toString() : "")); armas.modifiedData.put("clase", clase != null ? clase.getDescription():null); TgeneCatalogDetail tipoArma= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(armas.getModifiedData().get("ctipoarmaexplosivo") != null ? armas.getModifiedData().get("ctipoarmaexplosivo").toString() : "", armas.getModifiedData().get("ctipoarmaexplosivocodigo") != null ? armas.getModifiedData().get("ctipoarmaexplosivocodigo").toString() : "")); armas.modifiedData.put("tipoarmaexplosivo", tipoArma != null ? tipoArma.getDescription():null); TgeneCatalogDetail unidadMedida= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(armas.getModifiedData().get("cunidadmedidapeso") != null ? armas.getModifiedData().get("cunidadmedidapeso").toString():"", armas.getModifiedData().get("cunidadmedidapesocodigo") != null ? armas.getModifiedData().get("cunidadmedidapesocodigo").toString() : "")); armas.modifiedData.put("unidadmedidapeso", unidadMedida != null ? unidadMedida.getDescription():null); TgeneCatalogDetail calibre= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(armas.getModifiedData().get("ccalibre") != null ? armas.getModifiedData().get("ccalibre").toString() : "", armas.getModifiedData().get("ccalibrecodigo") != null ? armas.getModifiedData().get("ccalibrecodigo").toString() : "")); armas.modifiedData.put("calibre", calibre != null ? calibre.getDescription() : null); TgeneCatalogDetail longitud= TgeneCatalogDetail.find(PersistenceHelper.getEntityManager(), new TgeneCatalogDetailKey(armas.getModifiedData().get("clongitud") != null ? armas.getModifiedData().get("clongitud").toString() : "", armas.getModifiedData().get("clongitudcodigo") != null ? armas.getModifiedData().get("clongitudcodigo").toString() : "")); armas.modifiedData.put("longitud", longitud != null ? longitud.getDescription() : null); } } }