Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Emporium.Controle; import static Controle.ContrCep.pesquisaCep; import static Controle.ContrClienteDeptos.consultaDeptoById; import static Controle.contrMovimentacao.getConsultaBySRO; import Entidade.ClientesDeptos; import Entidade.Destinatario; import Entidade.Endereco; import Entidade.Movimentacao; import Entidade.Vpne; import Util.Conexao; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.fileupload.FileItem; /** * * @author Fernando */ public class ContrVpne { public static String importaPedidoVpne(ArrayList<FileItem> listaFiles, int idCliente, int idDepartamento, String nomeBD) { String sql = "REPLACE INTO vpne (idCliente, idDepartamento,nomeDepartamento ,sro, descricao, valor, remetente, cnpj_remetente, rlogradouro, rnumero, rbairro, rcidade," + " ruf, destinatario, cpf_cnpj_dest, dlogradouro, dnumero, dbairro, dcidade, dcep ,duf, data) VALUES "; try { ClientesDeptos dep = consultaDeptoById(idCliente, idDepartamento, nomeBD); String nomeDepto = ""; if (dep != null) { nomeDepto = dep.getNomeDepartamento(); } for (FileItem item : listaFiles) { sql += lerVpne(item, idCliente, idDepartamento, nomeDepto, nomeBD); } sql = sql.substring(0, sql.lastIndexOf(",")); boolean flag = inserirVpne(sql, nomeBD); // boolean flag = true; if (flag) { return "Pedidos Importados Com Sucesso!"; } else { return "Falha ao importar Pedidos!"; } } catch (IOException e) { return "ERRO: No foi possivel ler o arquivo:\nIoException " + e; } catch (Exception e) { return "ERRO: Falha na importacao dos pedidos:\nException: " + e; } } public static boolean inserirVpne(String sql, String nomeBD) { Connection conn = Conexao.conectar(nomeBD); try { PreparedStatement valores = conn.prepareStatement(sql); valores.executeUpdate(); valores.close(); return true; } catch (SQLException e) { Logger.getLogger(ContrPreVendaImporta.class.getName()).log(Level.WARNING, e.getMessage(), e); return false; } finally { Conexao.desconectar(conn); } } public static String lerVpne(FileItem item, int idCli, int idDepto, String nomeDepto, String nomeBD) throws UnsupportedEncodingException, IOException { DecimalFormat df = new DecimalFormat("0.00"); String ret = ""; String r_nome = ""; String r_cpf_cnpj = ""; String r_cep = ""; String r_endereco = ""; String r_numero = ""; String r_bairro = ""; String r_cidade = "";// se exiisteir o CEP no DNE String r_uf = ""; String valor = ""; String d_nome = ""; String d_cpf_cnpj = ""; String d_cep = ""; String d_endereco = ""; String d_numero = ""; String d_bairro = ""; String d_cidade = ""; // se existir na tabela movimentao String d_uf = ""; String descricao = ""; String sro = ""; String data = ""; BufferedReader le = new BufferedReader(new InputStreamReader(item.getInputStream(), "ISO-8859-1")); // LE UMA LINHA DO ARQUIVO PARA PULAR O CABEALHO int lineNum = 1; while (le.ready()) { //LE UMA LINHA DO ARQUIVO String aux = le.readLine(); //ADICIONA CONTADOR DE LINHA if (lineNum == 1) { //remetente r_nome = aux.substring(38, 88).trim(); r_cpf_cnpj = aux.substring(98, 112).trim(); r_cep = aux.substring(112, 120).trim(); r_endereco = aux.substring(130, 190).trim(); r_numero = aux.substring(190, 198).trim(); r_bairro = aux.substring(236, 276).trim(); try { r_numero = Integer.parseInt(r_numero) + ""; } catch (Exception ex) { } } if (lineNum >= 2 && aux.startsWith("DT")) { if (item.getName().contains("ValesPagos")) { //destinatario d_nome = aux.substring(26, 76).trim(); d_cpf_cnpj = aux.substring(86, 106).trim();//ate106 d_cep = aux.substring(106, 114).trim(); d_endereco = aux.substring(124, 184).trim(); d_numero = aux.substring(184, 230).trim(); d_bairro = aux.substring(230, 270).trim(); // String d_cidade;// se exiisteir o CEP no DNE // String d_uf;// se exiisteir o CEP no DNE sro = aux.substring(306, 319).trim(); descricao = aux.substring(319, 369).trim(); valor = aux.substring(298, 306).trim(); data = aux.substring(369).trim(); } else { //destinatario d_nome = aux.substring(26, 76).trim(); d_cpf_cnpj = aux.substring(86, 100).trim();//ate106 d_cep = aux.substring(100, 108).trim(); d_endereco = aux.substring(118, 178).trim(); d_numero = aux.substring(178, 224).trim(); d_bairro = aux.substring(224, 264).trim(); // String d_cidade;// se exiisteir o CEP no DNE // String d_uf;// se exiisteir o CEP no DNE sro = aux.substring(300, 313).trim(); descricao = aux.substring(313, 363).trim(); valor = aux.substring(292, 300).trim(); data = aux.substring(363).trim(); } try { d_numero = Integer.parseInt(d_numero) + ""; } catch (Exception ex) { } try { valor = df.format((double) Integer.parseInt(valor) / 100) + ""; } catch (Exception ex) { } data = data.substring(4, 8) + "-" + data.substring(2, 4) + "-" + data.substring(0, 2); Movimentacao mv = getConsultaBySRO(sro, nomeBD); if (mv != null) { d_uf = mv.getId();// USEI O CAMPO dufF PARA COLOCAR O ID DA MOVIMENTACAO CASO EXISTA } Endereco end_cep = pesquisaCep(d_cep); d_cidade = end_cep.getCidade() + " / " + end_cep.getUf(); ret += "(" + idCli + "," + idDepto + ",'" + nomeDepto + "','" + sro + "','" + descricao + "','" + valor + "','" + r_nome + "','" + r_cpf_cnpj + "','" + r_endereco + "','" + r_numero + "','" + r_bairro + "','" + r_cidade + "','" + r_uf + "'," + "'" + d_nome + "','" + d_cpf_cnpj + "','" + d_endereco + "','" + d_numero + "','" + d_bairro + "','" + d_cidade + "','" + d_cep + "','" + d_uf + "','" + data + "'),"; } lineNum++; } le.close(); return ret; } public static ArrayList<Vpne> listaVpne(String where, String nomeBD, int idCli) { String sql = "SELECT * FROM vpne WHERE idCliente = " + idCli + " "; sql = sql + where + " ;"; Connection conn = Conexao.conectar(nomeBD); ArrayList<Vpne> listaVpne = new ArrayList<Vpne>(); try { PreparedStatement valores = conn.prepareStatement(sql); valores.executeQuery(); ResultSet result = (ResultSet) valores.executeQuery(); while (result.next()) { int idCliente = result.getInt("idCliente"); int idDepartamento = result.getInt("idDepartamento"); String nomeDepto = result.getString("nomeDepartamento"); String sro = result.getString("sro"); String descricao = result.getString("descricao"); String valor = result.getString("valor"); String remetente = result.getString("remetente"); String cnpj_remetente = result.getString("cnpj_remetente"); String rlogradouro = result.getString("rlogradouro"); String rnumero = result.getString("rnumero"); String rbairro = result.getString("rbairro"); String rcidade = result.getString("rcidade"); String ruf = result.getString("ruf"); String destinatario = result.getString("destinatario"); String cpf_cnpj_dest = result.getString("cpf_cnpj_dest"); String dlogradouro = result.getString("dlogradouro"); String dnumero = result.getString("dnumero"); String dbairro = result.getString("dbairro"); String dcidade = result.getString("dcidade"); String dcep = result.getString("dcep"); String duf = result.getString("duf"); String data = result.getString("data"); Destinatario remVpne = new Destinatario(remetente, cnpj_remetente, rlogradouro, rnumero, rbairro, rcidade, ruf); Destinatario destVpne = new Destinatario(destinatario, cpf_cnpj_dest, dlogradouro, dnumero, dbairro, dcidade, dcep, duf); Vpne vp = new Vpne(sro, descricao, valor, idCliente, idDepartamento, nomeDepto, data, remVpne, destVpne); listaVpne.add(vp); } valores.close(); return listaVpne; } catch (SQLException e) { Logger.getLogger(ContrVpne.class.getName()).log(Level.WARNING, e.getMessage(), e); return listaVpne; } finally { Conexao.desconectar(conn); } } }