67 lines
2.2 KiB
Plaintext
Executable File
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étodo que se realiza al hacer rollback la transacción
|
|
*/
|
|
@Override
|
|
public SaveRequest reverseProcess(SaveRequest pRequest) throws Exception {
|
|
return pRequest;
|
|
}
|
|
|
|
}
|