/** * 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; }
private void populaBeanProcesado( final CargaMasivaVO cargaVO, final CargaMasivaJson cargaJson, final boolean proceso) throws Exception { if (proceso) { cargaVO.setStatus("C"); cargaVO.setErrMsg(""); cargaVO.setBrDateFront(cargaJson.getBrPrcinpDate()); cargaVO.setPriceInd(cargaJson.getPriceInd()); cargaVO.setFileName(cargaJson.getFileName()); cargaVO.setTimeCEIQ(FechaUtils.dateToString(new Date())); cargaVO.setExpirDateFront(FechaUtils.dateToString(cargaVO.getExpirDate())); cargaVO.setPl(cargaJson.getPl()); } else { cargaVO.setStatus("R"); log.info( "************************************************************cargaJson.getError():|" + cargaJson.getError() + "|"); log.info( "************************************************************cargaJson.getProcesar():|" + cargaJson.getProcesar() + "|"); if (cargaJson.getError() != null && cargaJson.getError().trim().length() > 0) { cargaVO.setErrMsg(cargaJson.getError()); } else { log.info("cargaJson.getProcesar():|" + cargaJson.getProcesar() + "|"); if (cargaJson.getProcesar().trim().equals("F")) { cargaVO.setErrMsg( getMsgErrorCache().evaluaMensaje(ErrorKeys.ERR_ORDEN_RECHAZADA_USUARIO)); cargaVO.setRechazadaUsuario(true); } else { cargaVO.setErrMsg(cargaVO.getResult() + ":" + cargaVO.getErrMsg()); } } } }
/** * Este metodo esta encargado de agregar los valores necesarios para que el bean sea procesado por * el store PROCESA_EQUITIES. * * @param procesaVO * @param validaCapVO * @throws Exception */ private void populaBeanValidar(final CargaMasivaVO cargaVO, final ValidaCapitalesVO validaCapVO) throws Exception { if (cargaVO.getResult().intValue() != 0) { if (validaCapVO.getPicoind() != 0) { cargaVO.setPl("P"); } cargaVO.setStatus("R"); cargaVO.setErrMsg(cargaVO.getResult() + ":" + cargaVO.getErrMsg()); cargaVO.setPrice(new BigDecimal(0.0)); } else { cargaVO.setStatus("C"); cargaVO.setErrMsg(""); if (!validaCapVO.getBrPrcinpDate().equals(cargaVO.getDealDate())) { cargaVO.setErrMsg( "LA OPERACIÓN SERA DADA DE ALTA CON " + "FECHA DE OPERACIÓN DEL SIGUIENTE DIA HÁBIL."); } if (cargaVO.getRemQty().intValue() != 0 && validaCapVO.getPicoind() == 0) { cargaVO.setPl("L"); esPico = true; } else { esPico = false; } } cargaVO.setBranchId(validaCapVO.getBranch()); cargaVO.setAccount(validaCapVO.getAccount()); cargaVO.setOper(validaCapVO.getOper()); cargaVO.setPs(validaCapVO.getPs()); cargaVO.setCcy(validaCapVO.getCcy()); cargaVO.setSecid(validaCapVO.getSecid()); cargaVO.setOrderType(validaCapVO.getOrderType()); cargaVO.setOrderInst(validaCapVO.getOrderInst()); cargaVO.setBrPrcinpDate(validaCapVO.getBrPrcinpDate()); cargaVO.setBrDateFront(FechaUtils.dateToString(validaCapVO.getBrPrcinpDate())); log.info("FECHA A MOSTRARSE:|" + cargaVO.getBrDateFront() + "|"); cargaVO.setTriggerPrice(validaCapVO.getTriggerPrice()); cargaVO.setExpirTerm(validaCapVO.getExpirTerm()); cargaVO.setPorcentaje(validaCapVO.getPorcentaje()); cargaVO.setPriceInd(validaCapVO.getPriceIndCarga()); if (validaCapVO.getPriceIndCarga().equals("L")) { cargaVO.setPriceLimit(1); } else { cargaVO.setPriceLimit(0); } cargaVO.setTimeCEIQ(FechaUtils.dateToString(new Date())); cargaVO.setSel(validaCapVO.getSelCarga()); cargaVO.setDealDateFront(FechaUtils.dateToString(cargaVO.getDealDate())); cargaVO.setExpirDateFront(FechaUtils.dateToString(cargaVO.getExpirDate())); }
/** * 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 poblar el bean que sera procesado por el store SPP_PROCESA_EQUITIES. * * @param procesaVO Bean a poblar * @param cargaJson Bean con la informacion origen * @throws Exception Arroja una excepcion si ocurre un error */ private void populaBeanProcesar( final CargaMasivaVO cargaVO, final CargaMasivaJson cargaJson, final String formatoFecha) throws Exception { cargaVO.setBranchId(cargaJson.getBranchId()); cargaVO.setAccount(cargaJson.getAccount()); cargaVO.setCno(cargaJson.getCno()); cargaVO.setTrad(cargaJson.getTrad()); cargaVO.setOper(cargaJson.getOper()); cargaVO.setPs(cargaJson.getPs()); cargaVO.setCcy(cargaJson.getCcy()); cargaVO.setOrigQty(preadminService.toBigDecimal(cargaJson.getOrigqty())); cargaVO.setSecid(cargaJson.getSecid()); cargaVO.setCouponNo(cargaJson.getCouponNo()); cargaVO.setSeries(cargaJson.getSeries()); cargaVO.setSymbolid(cargaJson.getSymbolid()); cargaVO.setOrderType(cargaJson.getOrderType()); cargaVO.setBrPrcinpDate(preadminService.toDate(cargaJson.getBrPrcinpDate(), formatoFecha)); cargaVO.setDealDate(preadminService.toDate(cargaJson.getDealDate(), formatoFecha)); cargaVO.setHoraIni(cargaJson.getHoraIni()); cargaVO.setHoraFin(cargaJson.getHoraFin()); cargaVO.setPrice(preadminService.toBigDecimal(cargaJson.getPrice())); cargaVO.setExtPrice( preadminService.toBigDecimal( Double.toString(Formateador.dobleSeguro(cargaJson.getExtPrice())))); cargaVO.setCommAmt(preadminService.toBigDecimal(cargaJson.getCommAmt())); cargaVO.setVatAmt(preadminService.toBigDecimal(cargaJson.getVatAmt())); cargaVO.setCommRate(preadminService.toBigDecimal(cargaJson.getCommRate())); cargaVO.setVatRate(preadminService.toBigDecimal(cargaJson.getVatRate())); cargaVO.setShortPosInd(cargaJson.getShortPosInd()); cargaVO.setSettDays(cargaJson.getSettDays()); cargaVO.setPropInd(cargaJson.getPropInd()); cargaVO.setLotInd(cargaJson.getLotInd()); cargaVO.setTriggerPrice(preadminService.toBigDecimal(cargaJson.getTriggerPrice())); cargaVO.setExpirTerm(preadminService.toBigDecimal(cargaJson.getExpirTerm())); if (cargaJson.getPriceInd().equals("L")) { cargaVO.setPriceLimit(1); } else { cargaVO.setPriceLimit(0); } cargaVO.setExpirDate(preadminService.toDate(cargaJson.getExpirDate(), formatoFecha)); cargaVO.setOrderClass(cargaJson.getOrderClass()); cargaVO.setOrderTerm(preadminService.toBigDecimal(cargaJson.getOrderTerm())); cargaVO.setCitizFlag(cargaJson.getCitizFlag()); cargaVO.setBrokOper(cargaJson.getBrokOper()); cargaVO.setPort(cargaJson.getPort()); cargaVO.setCtpeId(cargaJson.getCtpeId()); cargaVO.setInitTime(cargaJson.getIniTime()); cargaVO.setEndTime(cargaJson.getEndTime()); cargaVO.setOrderInst(cargaJson.getOrderInst()); cargaVO.setBranchId(cargaJson.getBranchId()); cargaVO.setType(cargaJson.getType()); cargaVO.setPorcentaje(preadminService.toBigDecimal(cargaJson.getPorcentaje())); cargaVO.setPriceInd(cargaJson.getPriceInd()); cargaVO.setStatus(cargaJson.getStatus()); cargaVO.setFileName(cargaJson.getFileName()); }