maia_modificado/.svn/pristine/be/be12b20646e2d4c8f47f2ce03d5...

67 lines
2.2 KiB
Plaintext
Executable File

package com.fp.armas.rules.save.webservices;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Query;
import com.fp.common.logger.APPLogger;
import com.fp.dto.rules.TransactionRule;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.inte.TarmTagArma;
import com.fp.persistence.parmas.inte.TarmTagArmaKey;
/**
* Vinculo un arma con un tag, respondo con un mensaje de validación para mostrar el estado de la petición
* @author dcruz
*
*/
public class VinculaTagArma extends TransactionRule {
private static final long serialVersionUID = 7380264973023057406L;
private static final String QUERY_TAGARMA = "SELECT o FROM TarmTagArma o WHERE o.pk.carma=:carma";
/**
* Respondo con 0 es correcto, 1 el arma ya esta registrada con otro tag, 2 el arma ya ha sido registrada, 3 existió un error
*/
@SuppressWarnings("unchecked")
@Override
public SaveRequest normalProcess(SaveRequest pRequest) throws Exception {
String respuesta;
try {
String carma = (String) pRequest.get("CODIGOARMA");
String tagArma = (String) pRequest.get("CODIGOTAG");
TarmTagArma tarmTagArma = PersistenceHelper.getEntityManager().find(TarmTagArma.class, new TarmTagArmaKey(carma, tagArma));
Query query = PersistenceHelper.getEntityManager().createQuery(QUERY_TAGARMA);
query.setParameter("carma", carma);
List<TarmTagArma> ltarmTagArmas = query.getResultList();
if(tarmTagArma != null){
respuesta = "2";
} else if(!ltarmTagArmas.isEmpty()){
respuesta = "1";
} else{
TarmTagArma ptagArma = new TarmTagArma(new TarmTagArmaKey(carma, tagArma));
ptagArma.setFecha(new Timestamp(System.currentTimeMillis()));
PersistenceHelper.getEntityManager().persist(ptagArma);
PersistenceHelper.getEntityManager().flush();
respuesta = "0";
}
} catch (Throwable e) {
APPLogger.getLogger().error(e.getMessage(), e);
respuesta = "3";
}
pRequest.getResponse().put("RESPONSESTATUS", respuesta);
return pRequest;
}
/**
* M&eacute;todo que se realiza al hacer rollback la transacci&oacute;n
*/
@Override
public SaveRequest reverseProcess(SaveRequest pRequest) throws Exception {
return pRequest;
}
}