maia_modificado/.svn/pristine/1b/1b7ee4ec7dcb4b2d7c6a3a91f71...

72 lines
3.1 KiB
Plaintext
Executable File

package com.fp.armas.task;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetailKey;
import com.fp.simple.action.TaskAction;
/**
* Clase que se encarga de fijar el valor de deposito para la solicitud
* @author Christian Pazmino
* @version 2.1
*/
public class AplicarSancion extends TaskAction {
/*
* (non-Javadoc)
* @see com.fp.simple.action.TaskAction#assignOwner(com.fp.dto.Request)
*/
@SuppressWarnings("unchecked")
@Override
public void assignOwner(Object pParam) throws Exception {
System.out.println("Rutina que determina si es un CENTRO DE CONTROL y hay al menos un arma en estado RECLAMADO");
HashMap<String, Object> m = (HashMap<String, Object>) pParam;
Map<String, Object> mrequest = (Map<String, Object>) m.get("request");
if (mrequest.get("numerotransaccion") == null) {
return;
}
// DETERMINA SI SE DEBE O NO APLICAR LA SANCION
Boolean aplicarSancionBLN = Boolean.FALSE;
EntityManager em = PersistenceHelper.getEntityManager();
TarmDecomisoArmaTransaccion decomisoArmaTransaccionObj = TarmDecomisoArmaTransaccion.find(PersistenceHelper.getEntityManager(), Long.parseLong(mrequest.get("numerotransaccion").toString()));
if(decomisoArmaTransaccionObj!=null){
TarmCentroControl centroControlObj = TarmCentroControl.find(em, decomisoArmaTransaccionObj.getCcentrocontrol());
if(centroControlObj!=null){
TgeneCatalogDetailKey pk = new TgeneCatalogDetailKey(centroControlObj.getNombreinstitucion(), centroControlObj.getNombreinstitucioncodigo());
TgeneCatalogDetail unidadCD = TgeneCatalogDetail.find(em, pk);
// SI ES UN DEPARTAMENTO DE CONTROL DE ARMAS, Y ES UN CENTRO DE CONTROL DE ARMAS
if(centroControlObj.getInstitucion().equals("1")&& unidadCD.getDescription().contains("CENTRO CONTROL DE ARMAS")){
Long numeroTransacion=Long.parseLong(mrequest.get("numerotransaccion").toString());
//lista de las armas decomisadas por el codigo de recepcion
List<TarmDecomisoArma> lArmasRecibidas= em.createQuery("select o from TarmDecomisoArma o where o.cdecarmtranrecepcion=:cdecarmtranrecepcion")
.setParameter("cdecarmtranrecepcion", numeroTransacion).getResultList();
for(TarmDecomisoArma decomisoArma:lArmasRecibidas){
if("RECL".equals(decomisoArma.getEstado())){
aplicarSancionBLN = Boolean.TRUE;
break;
}
}
}
}
}
if(aplicarSancionBLN){
m.put("BPMStatus","A");
}
else{
m.put("BPMStatus","D");
}
}
}