package com.telefonica.
rnlc;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sun.corba.se.spi.orb.Operation;
import com.telefonica.rnlc.dao.OperationsSat;
import com.telefonica.rnlc.models.DadosSat;
import com.telefonica.rnlc.models.DadosFinais;
/**
* Envia confirmações de abertura de reparo no SIGITM para o SADS que não tenham
sido enviadas automaticamente.
*/
public class AppRITMN {
private static String PULA_LINHA = System.getProperty("line.separator");
private static final Logger logger = LoggerFactory.getLogger(AppRITMN.class);
private BufferedWriter buffer;
private static List<DadosFinais> listaFinal = new ArrayList<DadosFinais>();
public static void main( String[] args ) throws IOException
{
logger.info("======================================================================
=====");
logger.info("INICIANDO ");
logger.info("======================================================================
=====");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
logger.info("Hora de inicio: ".concat(sdf.format(new Date())));
try
{
OperationsSat opSat = new OperationsSat();
String path= "C:\\Users\\40417404\\Downloads\\baseDados.txt";
String caminhoArquivoNovo = "C:\\Users\\40417404\\Downloads\\
baseDadosFinal.txt";
List<String> linhasArquivoCarga = lerArquivoControle(path);
/// LE O ARQUIVO TXT e coloca na variavel DADOSFINAIS
for (int i = 1; i < linhasArquivoCarga.size(); i++) {
String s = linhasArquivoCarga.get(i); // linha
String[] camposCarga = s.split(";"); //Cria um array novo a cada
iteração
DadosFinais d = new DadosFinais();
// COTAÇÃO;X DESIGNADOR;SERVICE_NUM;STATUS COTAÇÃO;PEDIDO;FILA_SAT
d.setCotacao(camposCarga[0]);
d.setXDesignador(camposCarga[1]);
d.setServiceNum(camposCarga[2]);
d.setStatusCotacao(camposCarga[3]);
if(camposCarga.length>4)
d.setPedido(camposCarga[4]);
// CONSULTAR COTACAO SAT
ArrayList<DadoSat> listadeTarefasCptacap =
opSat.consultaCotacao(d.getCotacao());
for(int j =0 ; j<listadeTarefasCptacap.size() ; j++)
{
DadoSat dadoSat = listadeTarefasCptacap.get(j);
d.setFilaSAT(dadoSat.getNomeDaTarefa());
//SE ACHA SETA NA LISTA DE RETORNO O CARA QUE ACHOU, INCLUSIVE
SE FOI MAIS DE UM
listaFinal.add(d);
}
ArrayList<DadoSat> listadeTarefasPedido = new ArrayList<>();
if(d.getPedido()!=null && !d.getPedido().equals("") && !
d.getPedido().equals(" ")) {
listadeTarefasPedido = opSat.consultaPedidos(d.getPedido());
for(int j =0 ; j<listadeTarefasCptacap.size() ; j++)
{
// SE ACHOU ETA NA LISTA DE RETORNO e FOR MAIS DE1.... cria
mais uma linha
DadoSat dadoSat = listadeTarefasCptacap.get(j);
d.setFilaSAT(dadoSat.getNomeDaTarefa());
listaFinal.add(d);
}
}
// se nao retorno nada nas listas de cotacao e pedido add sem nada
no txt
if(listadeTarefasPedido.size() == 0 &&listadeTarefasCptacap.size()
== 0)
{
listaFinal.add(d);
}
}
// //SALVA NOV ARQUIV TXT com ; delimitador
BufferedWriter buffer;
FileWriter gravador = new FileWriter(caminhoArquivoNovo, true);
buffer = new BufferedWriter(gravador);
buffer.write(PULA_LINHA);
buffer.write(linhasArquivoCarga.get(0));
for(int w = 0; w<listaFinal.size() ; w++)
{
DadosFinais df= listaFinal.get(w);
// COTAÇÃO;X_DESIGNADOR;SERVICE_NUM;STATUS COTAÇÃO;PEDIDO;FILA_SAT
String linhaEscrita = df.getCotacao() +";"+df.getXDesignador()
+";"+df.getServiceNum()+";"+df.getStatusCotacao()+
buffer.write(linhaEscrita);
buffer.write(PULA_LINHA);
}
buffer.flush();
// ULTIMA ETAPA: copiar o txt novo no excel e separar por ; em
colunas// MANUAL
}catch (Exception e) {
logger.error("ERRO NA ATUALIZACAO " , e);
}
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
logger.info("Hora de termino: ".concat(sdf.format(new Date())));
}
public ArrayList<String> getCriaControles(String data, String caminho) throws
ClassNotFoundException, SQLException
{
ArrayList<String> lstControle = new ArrayList<String>();
try
{
logger.info("getCriaControles caminho["+caminho+"]");
lstControle = (ArrayList<String>) lerArquivoControle(caminho);
for (Iterator iterator = lstControle.iterator(); iterator.hasNext();) {
String s = (String) iterator.next();
System.out.println(s);
logger.info(s);
}
FileWriter gravador = new FileWriter(caminho, true);
buffer = new BufferedWriter(gravador);
buffer.write(PULA_LINHA);
buffer.write(data);
lstControle.add(data);
buffer.flush();
logger.info("Adicionei data["+data+"] No Arquivo e na lista");
} catch (IOException e) {
e.printStackTrace();
logger.error("ERROR: getCriaControles:"+e.getMessage(),e);
}
logger.info("getCriaControles FIM["+lstControle.size()+"]");
return lstControle;
}
private static List<String> lerArquivoControle(String path) throws IOException
{
return Files.readAllLines(Paths.get(path));
}
}