É um ETL que pega dados de uma tabela oracle realiza algumas consistências e grava ou atualiza os dados no SQL Server. Segue os métodos que fazem isso:
//Nesse método ele verifica qual a ação setada (UPDATE, INSET, DELETE) e envia via JPA.
private void processList(List<PecasSessaoPDE> pecaSessaoList) {
List<Object[]> pecasSessaoDivList = loadWorksDivList(pecaSessaoList);
PecasSessaoDE pecasSessaoCorporativoDE = null;
PecasSessaoPDE pecasSessaoPDE = null;
for (Iterator<PecasSessaoPDE> iterator = pecaSessaoList.iterator(); iterator.hasNext();) {
pecasSessaoPDE = iterator.next();
pecasSessaoCorporativoDE = new PecasSessaoDE();
this.addLineNumber();
try {
pecasSessaoCorporativoDE = parse(pecasSessaoCorporativoDE, pecasSessaoPDE, pecasSessaoDivList);
if (InterfaceActionEnum.INSERT.equals(pecasSessaoPDE.getAction())) {
LOGGER.info("######## INSERINDO pecas SUPERSESSION ......");
pecasSessaoCorporativoDE.setCreateProcessN(this.getInferfaceC());
this.pecasXSessaoCorporativoBF.create(pecasSessaoCorporativoDE);
} else if (InterfaceActionEnum.UPDATE.equals(pecasSessaoPDE.getAction())) {
LOGGER.info("######## ATUALIZANDO pecas SUPERSESSION ......");
pecasSessaoCorporativoDE.setUpdateProcessN(this.getInferfaceC());
pecasSessaoCorporativoDE = this.pecasXSessaoCorporativoBF.update(pecasSessaoCorporativoDE);
} else if (InterfaceActionEnum.DELETE.equals(pecasSessaoPDE.getAction())) {
LOGGER.info("######## DELETANDO pecas SUPERSESSION ......");
this.pecasXSessaoCorporativoBF.delete(pecasSessaoCorporativoDE.getPartSessaoUidK());
}
this.addSuccess();
// Marca no P registros ja processados no corporativo
// int result = this.pecasSessaoPBF.update(pecasXSessaoPDE);
// LOGGER.info(result +"######## Registro(s) Atualizado(s) com sucesso no P......");
} catch (FRestClientValidationException ex) {
String message = "";
if (ex.getValidationFailureResponseTO() != null && ex.getValidationFailureResponseTO().getFailureList() != null && !ex.getValidationFailureResponseTO().getFailureList().isEmpty()) {
String key = ex.getValidationFailureResponseTO().getFailureList().get(0).getMessageCode();
message = this.bundle.getString(key);
}
this.addError("Exception1 - Country: " + this.getCountry() +
" - Div: " + this.DivDE.getBkDivC() +
" - Produto : " + pecasSessaoPDE.getCodigoProducto().toString() +
" - substituto: " + pecasSessaoPDE.getCodigosubstituto() +
" - ERROR: " + message);
} catch (Exception e) {
addError("Exception1 - Country: " + this.getCountry() +
" - Div: " + this.DivDE.getBkDivC() +
" - Produto : " + pecasSessaoPDE.getCodigoProducto().toString() +
" - substituto: " + pecasSessaoPDE.getCodigosubstituto()
, e);
}
}
}
//Aqui em resumo o objeto é alimentado e seta a ação
protected PecasSessaoDE parse(PecasSessaoDE de, PecasSessaoPDE pecasSessaoPDE, List<Object[]> pecasSessaoDivList) throws Exception {
Object[] aux = getPartDivUidK(pecasSessaoPDE,pecasSessaoDivList);
PecasSessaoDE teste = null;
BigDecimal P_serial_c = TypeHelper.getBigDecimal(aux[0]);
Long codigo_substituto = TypeHelper.getLong(aux[1]);
// key tb_100_to
BigInteger pecaFromUidK = TypeHelper.getBigInteger(aux[2]);
// key tb_104_to
BigInteger pecaDivFromUidK = TypeHelper.getBigInteger(aux[3]);
// key tb_100_from
BigInteger pecaToUidK = TypeHelper.getBigInteger(aux[4]);
// key tb_104_from
BigInteger pecaDivToUidK = TypeHelper.getBigInteger(aux[5]);
// key tb_104
BigInteger superSessionUidK = TypeHelper.getBigInteger(aux[6]);
if (!Utils.isNull(aux) && aux.length > 0) {
// key 104
//de.setPartSessaoUidK(superSessionUidK);
// 7 win104_create_user_c
//de.setCreateUserC(TypeHelper.getString(aux[7]));
// 8 win104_create_s
//de.setCreateS(TypeHelper.getTimestamp(aux[8]));
// 9 win104_create_process_n
//de.setCreateProcessN(TypeHelper.getString(aux[9]));
// 10 win104_update_user
//de.setUpdateUserC(TypeHelper.getString(aux[10]));
// 11 win104_update_s
//de.setUpdateS(TypeHelper.getTimestamp(aux[11]));
// 12 win104_update_process_n
//de.setUpdateProcessN(TypeHelper.getString(aux[12]));
pecasSessaoPDE.setAction(InterfaceActionEnum.UPDATE);
} else {
pecasSessaoPDE.setAction(InterfaceActionEnum.INSERT);
}
return de;
}
Desde já obrigado.
Um abraço.