/** * Metodo encargado de validar las ordenes contenidas en el archivo de excel proporcionado por la * carga masiva a traves del store SPP_VALIDA_EQUITIES y regresa la respuesta en DatosTabulares. * * @param ordenes Lista de ordenes a validar. * @return DatosTabulares resultado de la validacion. * @throws Exception Arroja una excepcion si ocurre un error. */ public DatosTabulares validaOrdenesExcel(final List ordenes, final String formatoFecha) throws Exception { Iterator iteraOrdenes = null; ValidaCapitalesVO validaCapVO = null; CargaMasivaVO cargaVO = null; List ordenesValidadas = new ArrayList(); DatosTabulares dt = null; ProcesaCapitalesVO procesaVO; if (ordenes != null && ordenes.size() > 0) { iteraOrdenes = ordenes.iterator(); while (iteraOrdenes.hasNext()) { validaCapVO = (ValidaCapitalesVO) iteraOrdenes.next(); // Valida antes de ejecutar SPP_VALIDA_EQUITIES this.validaValores(validaCapVO); if (validaCapVO.getMsgError() == null) { procesaVO = preadminDAO.validaCapitales(validaCapVO); cargaVO = new CargaMasivaVO(procesaVO); } else { cargaVO = new CargaMasivaVO(); cargaVO.setResult(new BigDecimal(-1)); cargaVO.setErrMsg(validaCapVO.getMsgError()); } // Agrega la informacion extra que se necesita mostrar this.populaBeanValidar(cargaVO, validaCapVO); if (cargaVO.getPrice() != null && cargaVO.getOrigQty() != null) { cargaVO.setExtPrice(cargaVO.getPrice().multiply(cargaVO.getOrigQty())); } ordenesValidadas.add(cargaVO); if (esPico) { CargaMasivaVO tmp = new CargaMasivaVO(cargaVO); log.info("Fecha branch antes de pico:|" + tmp.getBrDateFront() + "|"); this.agregaOperacionPico(validaCapVO, tmp); log.info("Fecha branch despues de pico:|" + tmp.getBrDateFront() + "|"); tmp.setOrigQty(tmp.getRemQty()); tmp.setPl("P"); if (tmp.getPrice() != null) { tmp.setExtPrice(tmp.getPrice().multiply(tmp.getOrigQty())); } log.info("Fecha a mostrarse antes:|" + tmp.getBrDateFront() + "|"); ordenesValidadas.add(tmp); } } } if (ordenesValidadas.size() > 0) { dt = new DatosTabularesDeLista( ordenesValidadas, parametrosValidacion() + "," + getParametrosExtras()); } return dt; }
/** * Metodo encargado de agregar la operacion pico que es enviada a la lista final de registros. * Realiza las mismas validaciones que una operacion normel. * * @param validaCapVO VO con los datos a validar * @param procesaVO VO con los datos a procesa * @throws Exception Arroja una excepcion si ocurre un error. */ public void agregaOperacionPico(ValidaCapitalesVO validaCapVO, CargaMasivaVO cargaVO) throws Exception { ProcesaCapitalesVO procesaVO = null; // Indicador de operacion Pico validaCapVO.setPicoind(1); this.validaValores(validaCapVO); if (validaCapVO.getMsgError() == null) { procesaVO = preadminDAO.validaCapitales(validaCapVO); cargaVO = new CargaMasivaVO(procesaVO); } else { cargaVO = new CargaMasivaVO(); cargaVO.setResult(new BigDecimal(-1)); cargaVO.setErrMsg(validaCapVO.getMsgError()); } // Agrega la informacion extra que se necesita mostrar this.populaBeanValidar(cargaVO, validaCapVO); }
public DatosTabulares procesaOrdenesExcel( final List ordenes, final String formatoFecha, final String fileName, final SantanderSecurityContext sc) throws Exception { Iterator iteraOrdenes = null; CargaMasivaVO cargaVO = null; String orden = null; List ordenesProcesadas = new ArrayList(); DatosTabulares dt = null; CargaMasivaJson cargaJson = null; BigDecimal seq = cargaMasivaDAO.obtenSecuenciaCarga(); if (ordenes != null && ordenes.size() > 0) { iteraOrdenes = ordenes.iterator(); while (iteraOrdenes.hasNext()) { cargaVO = new CargaMasivaVO(); cargaJson = (CargaMasivaJson) iteraOrdenes.next(); this.populaBeanProcesar(cargaVO, cargaJson, formatoFecha); try { log.info( "Bean a procesar:|" + cargaJson.getOrigqty() + "|:|" + cargaJson.getProcesar() + "|"); if (cargaJson.getProcesar().equals("T")) { orden = preadminDAO.procesaCapitales(cargaVO); cargaVO.setOrdenOpics(orden); this.populaBeanProcesado(cargaVO, cargaJson, true); cargaMasivaDAO.generaHistoricoCEIQ(seq, cargaVO, fileName); getBitacoraService() .registraCapitales( orden.trim(), cargaVO.getBranchId(), FCBitacoraService.TIPO_TX_CAPITALES, cargaVO.getEjecucion(), cargaVO.getFolio(), new HashMap(), FCBitacoraService.MODO_NUEVA_OPERACION, sc); ordenesProcesadas.add(cargaVO); } else { // Hacer lo mismo para las que no se genera. this.populaBeanProcesado(cargaVO, cargaJson, false); cargaMasivaDAO.generaHistoricoCEIQ(seq, cargaVO, fileName); if (cargaVO.isRechazadaUsuario()) { ordenesProcesadas.add(cargaVO); } } } catch (Exception e) { try { log.info("ERROR AL PROCESAR CARGA MASIVA:|" + e.toString() + "|"); String[] error = e.toString().split("-"); if (error.length > 1) { Integer.parseInt(error[1]); log.info("Existe una excepcion try al generar CEIQ:|" + error[1] + "|"); cargaVO.setResult(new BigDecimal("-" + error[1])); cargaVO.setErrMsg(getMsgErrorCache().evaluaMensaje("-" + error[1])); } else { Integer.parseInt(e.toString()); } } catch (NumberFormatException nfe) { log.info("Existe una excepcion catch al generar CEIQ:|" + e + "|"); cargaVO.setResult(new BigDecimal(-1)); cargaVO.setErrMsg(getMsgErrorCache().evaluaMensaje(ErrorKeys.ERR_BASE_DATOS)); } this.populaBeanProcesado(cargaVO, cargaJson, false); cargaMasivaDAO.generaHistoricoCEIQ(seq, cargaVO, fileName); ordenesProcesadas.add(cargaVO); // throw e; } } dt = new DatosTabularesDeLista(ordenesProcesadas, parametrosValidacion()); } return dt; }