private Integer get(Map<PyckBO, Integer> mapPycksPorDefinir2, PyckBO param) { for (PyckBO p : mapPycksPorDefinir.keySet()) { System.out.println("value = " + mapPycksPorDefinir.get(p) + "; key " + p.toString()); if (param.equals(p)) { System.out.println("implementacion personal TRUE"); return mapPycksPorDefinir.get(p); } else { System.out.println("implementacion personal FALSE"); } } return null; }
public void guardarResultadosPycks(List<PyckBO> pycks) throws XLSException { this.getPyckPorDefinir(true); FileInputStream fileInputStream; try { fileInputStream = new FileInputStream(RUTA_ARCHIVO + "\\Rendimiento.xls"); } catch (FileNotFoundException e) { e.printStackTrace(); throw new XLSException(); } HSSFWorkbook workbook; try { workbook = new HSSFWorkbook(fileInputStream); } catch (IOException e) { e.printStackTrace(); throw new XLSException(); } HSSFSheet worksheet = workbook.getSheet(PESTANA); HSSFRow row; Integer lineExcel; for (PyckBO p : pycks) { System.out.println("Se buscara el pyck = " + p.toString()); // -------------------------->>>>>>>>>>>>>>>>>>>>>>>> // --- TODO :: Revisar la causa por la cual el get no funciono. Se tuvo que hacer // implementacion propia para salir del paso // lineExcel = mapPycksPorDefinir.get(p); lineExcel = get(mapPycksPorDefinir, p); if (lineExcel != null) { row = worksheet.getRow(lineExcel); if (p.getEstado() == null) { // No hacer nada } else if (p.getEstado().equals(EstadoPyck.FINALIZADO)) { row.getCell(convert('f')).setCellValue("FIN"); if (p.getAcierto()) { row.getCell(convert('a')).setCellValue(0.0); row.getCell(convert('b')).setCellValue((p.getOdds() - 1) * p.getStake()); } else { row.getCell(convert('a')).setCellValue(-1.0 * p.getStake()); row.getCell(convert('b')).setCellValue(0.0); } actualizarRendimiento(p.getAcierto(), p.getStake(), p.getOdds()); } else if (p.getEstado().equals(EstadoPyck.SUSPENDIDO)) { row.getCell(convert('f')).setCellValue("SUS"); } else { // POR_DEFINIR // No hacer nada } } else { System.out.println("No fue posible encontrar bo en el MAPs"); } } HSSFRow rowTotales = worksheet.getRow(1); HSSFCell celdag2 = rowTotales.getCell(convert('g')); HSSFCell celdaa2 = rowTotales.getCell(convert('a')); HSSFCell celdab2 = rowTotales.getCell(convert('b')); HSSFCell celdac2 = rowTotales.getCell(convert('c')); Integer cantidadPycks; cantidadPycks = ((Double) celdag2.getNumericCellValue()).intValue(); double ganancias = 0.0; double perdidas = 0.0; HSSFRow rowPycks; for (int i = 4; i < 4 + cantidadPycks; i++) { rowPycks = worksheet.getRow(i); try { perdidas = perdidas + rowPycks.getCell(convert('a')).getNumericCellValue(); ganancias = ganancias + rowPycks.getCell(convert('b')).getNumericCellValue(); } catch (java.lang.IllegalStateException ex) { perdidas = perdidas + 0.0; ganancias = ganancias + 0.0; } } celdag2.setCellValue(cantidadPycks); celdaa2.setCellValue(perdidas); celdab2.setCellValue(ganancias); celdac2.setCellValue(ganancias + perdidas); FileOutputStream out; try { out = new FileOutputStream(new File(PATH_FILE_RENDIMIENTO)); workbook.write(out); out.close(); System.out.println("Excel written successfully.."); } catch (FileNotFoundException e) { e.printStackTrace(); throw new XLSException(); } catch (IOException e) { e.printStackTrace(); throw new XLSException(); } }
/** * Devuelve los Pycks en el Excel que estan por definirse. * * @throws IOException */ public List<PyckBO> getPyckPorDefinir(Boolean calcularMaps) throws XLSException { if (pycksPorDefinir != null && pycksPorDefinir.size() > 0 && !calcularMaps) { return pycksPorDefinir; } FileInputStream fileInputStream; try { fileInputStream = new FileInputStream(RUTA_ARCHIVO + "\\Rendimiento.xls"); } catch (FileNotFoundException e) { return pycksPorDefinir; } HSSFWorkbook workbook; try { workbook = new HSSFWorkbook(fileInputStream); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); throw new XLSException(); } HSSFSheet worksheet = workbook.getSheet(PESTANA); HSSFRow row = worksheet.getRow(1); HSSFCell celdag2 = row.getCell(convert('g')); System.out.println("IMPL celdaF2 = " + celdag2.getNumericCellValue()); Integer cantidadPycks; cantidadPycks = ((Double) celdag2.getNumericCellValue()).intValue(); System.out.println("IMPL cantidadPycks = " + cantidadPycks); HSSFCell celdaC2 = row.getCell(convert('c')); // Buscar en F2, la cantidad total de Pycks rendimiento = celdaC2.getNumericCellValue(); String estadoPyck; String resultBuscado; PyckBO bo; ResultadoPartidoBO resulP; CurrentPOddsPortal parOP; HSSFRow rowPicks; int stake; String gameOP; String country; String liga; String fecha; double odds; pycksPorDefinir = new ArrayList<PyckBO>(); mapPycksPorDefinir = new HashMap<PyckBO, Integer>(); System.out.println("IMPL justo antes del for " + cantidadPycks); // Leer el Excel que contiene los juegos pendientes // Proceder a leer cada registro for (int i = 0; i < cantidadPycks; i++) { System.out.println("Entro al for i " + i); rowPicks = worksheet.getRow(startRow + i - 1); estadoPyck = rowPicks.getCell(convert('f')).getStringCellValue(); System.out.println( "iteracion = " + i + " es " + estadoPyck + " startrow+i " + (startRow + i)); // Si el registro está por Definir if (estadoPyck.equals("PDF")) { resultBuscado = rowPicks.getCell(convert('e')).getStringCellValue(); stake = ((Double) rowPicks.getCell(convert('c')).getNumericCellValue()).intValue(); gameOP = rowPicks.getCell(convert('i')).getStringCellValue(); country = rowPicks.getCell(convert('h')).getStringCellValue(); liga = rowPicks.getCell(convert('k')).getStringCellValue(); fecha = rowPicks.getCell(convert('g')).getStringCellValue(); odds = rowPicks.getCell(convert('d')).getNumericCellValue(); System.out.println( "iteracion = " + i + " es " + estadoPyck + " startrow+i " + (startRow + i) + " GAMEOP = " + gameOP); // Crear un objeto PyckBO equivalente bo = new PyckBO(); parOP = new CurrentPOddsPortal(); parOP.setEquipos(gameOP); parOP.setCountry(country); parOP.setLeague(liga); parOP.setFecha(fecha); resulP = ResultadoPartidoBO.getObjFromAbrev(resultBuscado); bo.setAcierto(null); bo.setPyck(resulP); bo.setStake(stake); bo.setPartido(parOP); bo.setOdds(odds); // Agregarlo a la lista pycksPorDefinir.add(bo); Integer aux = startRow + i - 1; mapPycksPorDefinir.put(bo, aux); System.out.println("Se inserto en el map en aux = " + aux); System.out.println("Se inserto en el map con bo = " + bo.toString()); } } try { fileInputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Devolver la lista return pycksPorDefinir; }