73 lines
3.1 KiB
Plaintext
Executable File
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);
|
|
}
|
|
|
|
}
|