package za.co.transactionjunction.process; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Iterator; import java.util.List; import com.csvreader.CsvReader; import za.co.transactionjunction.manager.TicketPersistanceManager; import za.co.transactionjunction.pojo.Ticket; import za.co.transactionjunction.pojo.TicketUpdate; import au.com.bytecode.opencsv.CSVReader; public class ProcessCsvFile { public static boolean processCsvFile(File localdir) throws FileNotFoundException, ParseException { try { //CSVReader reader = new CSVReader(new FileReader(localdir), ','); CsvReader reader = new CsvReader(new FileReader(localdir), ','); reader.readHeaders(); SimpleDateFormat formatter = new SimpleDateFormat("M/d/yyyy hh:mm:ss a"); //final String[] header formatter=BeanReader.getHeader(true); List records = reader.ReadAll(); //records = reader.readAll(); Iterator iterator = records.iterator(); //iterator.next(); TicketPersistanceManager pm = new TicketPersistanceManager(); while (iterator.hasNext()) { String[] record = iterator.next(); Ticket ticket = null; int ticketNo = Integer.parseInt(record[1].trim()); ticket = pm.getTicketByTicket_no(ticketNo); if (ticket == null) { ticket = new Ticket(); ticket.setDatelogged(formatter.parse(record[0])); ticket.setTicketno(ticketNo); ticket.setSite_name(record[4]); ticket.setRegion(record[5]); ticket.setTicket_reference(record[6]); System.out.println("Ticket\n" + ticket); pm.saveTicket(ticket); } TicketUpdate ticketUpdate = new TicketUpdate(); try { ticket.setDatelogged(formatter.parse(record[0])); } catch (Exception e) { e.printStackTrace(); } Ticket loadedTicket = pm.getTicketByTicket_no(ticket.getTicketno()); ticketUpdate.setTicket(loadedTicket); ticketUpdate.setExternalReference(record[2]); ticketUpdate.setLastUpdated(formatter.parse(record[3])); ticketUpdate.setPriority(record[7]); ticketUpdate.setHighLevelCategory(record[8]); ticketUpdate.setCategoryType(record[9]); ticketUpdate.setSubCategory(record[10]); ticketUpdate.setServiceProvider(record[11]); ticketUpdate.setStatus(record[12]); ticketUpdate.setDocReceived(record[13]); ticketUpdate.setAgentUsername(record[14]); ticketUpdate.setPeriodOpen(record[15]); ticketUpdate.setPeriodLastAction(record[16]); ticketUpdate.setPreferredComm(record[17]); ticketUpdate.setDescription(record[18]); ticketUpdate.setResolutionFeedback(record[19]); ticketUpdate.setServiceProviderFeedback(record[20]); ticketUpdate.setSiteName2(record[21]); System.out.println("Ticket Update\n" + ticketUpdate); pm.saveTicketUpdate(ticketUpdate); } reader.close(); pm.close(); return true ; } catch (IOException e) { e.printStackTrace(); return false ; } } }