maia_modificado/.svn/pristine/4f/4f41e3b9a62b66133f483bb701f...

72 lines
2.6 KiB
Plaintext
Executable File

package com.fp.facade.ejb;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.EntityManager;
import com.fp.bpm.report.ReportProcessor;
import com.fp.common.fin.MessageGenerator;
import com.fp.common.logger.APPLogger;
import com.fp.dto.Request;
import com.fp.dto.Response;
import com.fp.dto.query.QueryRequest;
import com.fp.facade.ejb.helper.BeanHelper;
import com.fp.facadeclient.ejb.FacadeBeanJsfRemote;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.commondb.PersistenceManager;
@Stateless(name = "reportbean")
@TransactionManagement(value = TransactionManagementType.BEAN)
public class ReportBean extends BeanHelper implements FacadeBeanJsfRemote {
/**
* Metodo que se encarga de la ejecucion de una accion.
* @param request Request con los datos necesarios para ejecutar una accion, consulta o mantenimiento.
* @return Object
* @throws Exception
*/
@Override
public Object process(Request request) throws Throwable{
this.fillThreadFacade(request.getCompany());
Object resp = null;
// Para obtener un EntityManager dinamico
EntityManager em = PersistenceManager.getInstance().createEntityManagerLocal();
PersistenceHelper.setEntityManager(em);
Response response = new Response(Response.RESPONSE_OK, "OK");
try {
BeanHelper.cleanThreadLocal();
QueryRequest qr = new QueryRequest();
request.copy(qr);
request.copyMapValues(qr);
qr.setQueryTables(request.getQueryTables());
qr.setJsf(true);
qr.setResponse(response);
qr.putAll(request.getModifiedData()); //campos del request codigo de consuta.
// fija numero de mensaje
MessageGenerator mg = MessageGenerator.getInstance();
qr.setJournalId(mg.generateId(qr.getUser()));
PersistenceHelper.beginTransaction();
ReportProcessor rp = new ReportProcessor();
resp = rp.process(qr);
PersistenceHelper.commitTransaction();
return resp;
} catch (Throwable e) {
APPLogger.getLogger().warn(e, e);
//PersistenceHelper.rollbackTransaction();
try {
return BeanHelper.fillError(e);
} catch (Throwable e1) {
APPLogger.getLogger().warn(e1, e1);
throw e1;
}
} finally {
PersistenceHelper.closeSession();
}
}
}