maia/.svn/pristine/66/6652ab5e441850ab1f394b3d316...

73 lines
3.1 KiB
Plaintext
Executable File

package com.fp.bpm.report;
import java.util.List;
import com.fp.common.exception.CommonException;
import com.fp.dto.query.QueryRequest;
import com.fp.dto.rules.ReportRule;
import com.fp.dto.rules.TransactionRule;
import com.fp.persistence.commondb.db.DataHelper;
import com.fp.persistence.commondb.exception.CommondbException;
import com.fp.persistence.pgeneral.trans.report.TgeneTransactionReports;
public class ReportProcessor {
/**Objeto con beans utilizados en el proceso de consulta.*/
private QueryRequest queryRequest;
/**
* Metodo que se encarga de llenar tablas utilizadas en la generacion de reportes.
* @param pQueryRequest Datos utilizados en la generacion de reportes.
* @return boolean
* @throws CommondbException
* @throws Exception
*/
public boolean process(QueryRequest pQueryRequest) throws CommondbException, Exception {
Thread.currentThread().setName(pQueryRequest.getJournalId());
queryRequest = pQueryRequest;
//Ejecuta consultas especiales para una transaccion.
this.processByTransaction();
return true;
}
/**
* Metodo que ejecuta procesos especiales de consulta por transaccion.
* @param pQueryRequest Objeto con beans utilizados en el proceso de consulta.
* @throws Exception
*/
private void processByTransaction() throws Exception {
if (queryRequest.getTransactionModule() == null || queryRequest.getTransactionCode() == null) {
return;
}
List<TgeneTransactionReports> lquery = DataHelper.getInstance().getTgeneTransactionReports(
queryRequest.getTransactionModule(), queryRequest.getTransactionCode(), queryRequest.getTransactionVersion());
if (lquery == null) {
return;
}
for (TgeneTransactionReports obj : lquery) {
this.processByTransactionRule(obj);
}
}
/**
* Metodo encargado de ejecutar cada una de las reglas definidas en la transaccion.
* @param pSaveRequest Objeto con beans utilizados en el proceso de una transaccion.
* @param pProcess Objeto que contiene la regla a ejecutar.
* @throws Exception
*/
private void processByTransactionRule(TgeneTransactionReports pObj) throws Exception {
ReportRule rule = null;
try {
rule = (ReportRule) Class.forName(pObj.getProcesscode()).newInstance();
} catch (ClassNotFoundException e) {
throw new CommonException("COMMON-0014", "CLASE {0} A EJECUTAR NO EXISTE MODULE: {1} TRANS: {2} VERSION {3}", e, pObj.getProcesscode(),
queryRequest.getTransactionModule(), queryRequest.getTransactionCode(), queryRequest.getTransactionVersion());
} catch (ClassCastException e) {
throw new CommonException("COMMON-0015", "PROCESO {0} A EJECUTAR MODULE: {1} TRANS: {2} VERSION {3} NO IMPLEMENTA {4}", e, pObj.getProcesscode(),
queryRequest.getTransactionModule(), queryRequest.getTransactionCode(), queryRequest.getTransactionVersion(), TransactionRule.class.getName());
}
rule.process(queryRequest);
}
}