public ActualizaFuerzasVentaDAO(FileDataTO fileDataTO, int idRegion) { try { this.fileDataTO = fileDataTO; this.idRegion = idRegion; this.schema_database = ServiceLocator.getInstance().getVariable(ServiceLocator.schema_database); } catch (Exception e) { this.error.error((Object) "ActualizaFuerzasVentaDAO", (Throwable) e); } }
public boolean actualizaFuerzasVenta(String nombreArchivo, int idRegion) throws Exception { Connection connection = null; int movimientosBD = 0; InputStreamReader inputStreamReader = null; InputStreamReader fileReader = null; BufferedReader reader = null; PrintWriter reporteInsert = null; PrintWriter reporteError = null; File insert = null; File error = null; FileOutputStream insertOutput = null; FileOutputStream errorOutput = null; try { ConsultaCuentasCorreoDAO consultaCuentasCorreoDAO = new ConsultaCuentasCorreoDAO(); Map<String, String> parametrosCorreo = consultaCuentasCorreoDAO.obtieneCuentasCorreoCargaCatalogos(this.idRegion); inputStreamReader = new InputStreamReader(this.fileDataTO.getData()); reader = new BufferedReader(inputStreamReader); if (reader == null) { Utils.enviaCorreo( parametrosCorreo, (String) "Error al procesar las fuerzas de venta.", (String) "No se pudo procesar el archivo, verifique que haya sido previamente cargado.", (List) null); return false; } try { String logInserts = "fzaActualizadosR" + idRegion + ".txt"; String logErrores = "fzaActualizadosErroresR" + idRegion + ".txt"; insert = new File(logInserts); error = new File(logErrores); insertOutput = new FileOutputStream(insert); errorOutput = new FileOutputStream(error); reporteInsert = new PrintWriter(insertOutput); reporteError = new PrintWriter(errorOutput); String linea = ""; connection = ServiceLocator.getInstance().getConnection(ServiceLocator.jdbcCirculoAzul); connection.setAutoCommit(false); while (linea != null) { linea = reader.readLine(); if (linea == null || linea.trim().equals("")) continue; FuerzaVentaTO fuerzaVentaTO = null; try { fuerzaVentaTO = new FuerzaVentaTO(linea.split(",")); } catch (Exception e) { reporteError.println( String.valueOf(++movimientosBD) + ": Error al obtener linea del archivo [" + linea + "]" + e.getMessage()); } if (fuerzaVentaTO == null) continue; try { FuerzaVentaTO fuerzaVentaActualizada = this.actualizar(fuerzaVentaTO, connection); if (fuerzaVentaActualizada.getIdError() == 0) { connection.commit(); reporteInsert.println( String.valueOf(++movimientosBD) + ": Se actualizo[" + fuerzaVentaActualizada.toString() + "]"); continue; } reporteError.println( String.valueOf(++movimientosBD) + ": No se actualizo[" + fuerzaVentaActualizada.toString() + "]idError:" + fuerzaVentaActualizada.getIdError() + ",Mensaje:" + fuerzaVentaActualizada.getMensaje()); continue; } catch (Exception e) { reporteError.println( String.valueOf(++movimientosBD) + ": No se actualizo[" + fuerzaVentaTO.toString() + "]idError:" + fuerzaVentaTO.getIdError() + ",Mensaje:" + fuerzaVentaTO.getMensaje()); } } if (movimientosBD > 0) { connection.commit(); } reporteInsert.flush(); reporteError.flush(); ArrayList<String> archivosLog = new ArrayList<String>(); archivosLog.add(logInserts); archivosLog.add(logErrores); Utils.enviaCorreo( parametrosCorreo, (String) "Actualizacion de fuerzas de venta.", (String) "Las fuerzas de venta fueron procesadas.", archivosLog); } catch (Exception e) { e.printStackTrace(); } } finally { if (connection != null) { try { if (movimientosBD > 0) { connection.commit(); } connection.setAutoCommit(true); connection.close(); connection = null; } catch (Exception var22_17) { } } if (reader != null) { try { reader.close(); } catch (IOException var22_18) { } } if (inputStreamReader != null) { try { inputStreamReader.close(); } catch (IOException var22_19) { } } if (fileReader != null) { try { fileReader.close(); } catch (IOException var22_20) { } } if (reporteInsert != null) { reporteInsert.close(); } if (reporteError != null) { reporteError.close(); } if (insertOutput != null) { insertOutput.close(); } if (errorOutput != null) { errorOutput.close(); } if (insert != null) { insert.delete(); } if (error != null) { error.delete(); } } return true; }