Rev 13434 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.inventory.service;import in.shop2020.thrift.clients.WarehouseClient;import in.shop2020.utils.GmailUtils;import in.shop2020.warehouse.InventoryAvailability;import in.shop2020.warehouse.WarehouseService.Client;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.List;import org.apache.commons.lang.StringUtils;import org.apache.thrift.TException;import org.slf4j.LoggerFactory;public class StockSheetSender{public static org.slf4j.Logger logger = LoggerFactory.getLogger(StockSheetSender.class);public static void main(String[] args) {List<InventoryAvailability> serializedInventoryAvailability = new ArrayList<InventoryAvailability>();List<InventoryAvailability> nonSerializedInventoryAvailability = new ArrayList<InventoryAvailability>();List<InventoryAvailability> inventoryAvailability = new ArrayList<InventoryAvailability>();String emailFromAddress = "build-staging@shop2020.in";String password = "shop2020";GmailUtils mailer = new GmailUtils();//String sendTo[] = new String[]{"manish.sharma@shop2020.in"};String sendTo[] = new String[]{ "rajneesh.arora@saholic.com","amit.sirohi@shop2020.in","chaitnaya.vats@saholic.com","venky864@gmail.com","ritesh.chauhan@shop2020.in","khushal.bhatia@saholic.com","himanshu.pandey@shop2020.in", "shailesh.kumar@shop2020.in"};File file = null;try {Client warehouseClient = new WarehouseClient().getClient();serializedInventoryAvailability = warehouseClient.getCurrentSerializedInventoryByScans(3298L);nonSerializedInventoryAvailability = warehouseClient.getCurrentNonSerializedInventoryByScans(3298L);} catch(TException ex) {logger.error(ex.getMessage(), ex);}inventoryAvailability.addAll(serializedInventoryAvailability);inventoryAvailability.addAll(nonSerializedInventoryAvailability);int quantity= 0;for(InventoryAvailability inva : inventoryAvailability){quantity += inva.getQuantity();}try {file = createInventoryAvailabilityFile(inventoryAvailability);String htmlFileName = getHtmlFileGenrator(file, "Stock Sheet - Hyderabad, Total Quantity-" + quantity );List<File> files = new ArrayList<File>();files.add(file);if(htmlFileName!=null && !htmlFileName.isEmpty()){mailer.sendSSLMessage(sendTo, "Stock Sheet - Hyderabad", " ", emailFromAddress, password, files, htmlFileName);}else {mailer.sendSSLMessage(sendTo, "Stock Sheet - Hyderabad", " ", emailFromAddress, password, files);}}catch(Exception e) {logger.error(e.getMessage(), e);}}private static File createInventoryAvailabilityFile(List<InventoryAvailability> inventoryAvailability) throws IOException {File file = new File("/tmp/SaholicInventory-Hyderabad.xls");BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));bufferedWriter.write(StringUtils.join(new String[] {"Item Id","Brand","Model Name","Model Number","Color","Quantity" }, '\t'));Collections.sort(inventoryAvailability, new Comparator<InventoryAvailability>() {public int compare(InventoryAvailability arg0,InventoryAvailability arg1) {int brandComp = arg0.getBrand().compareTo(arg1.getBrand());if(brandComp == 0){return arg0.getModelNumber().compareTo(arg1.getModelNumber());}return brandComp;}});for(InventoryAvailability invAvailability : inventoryAvailability) {if((invAvailability.getModelNumber().equals("Q50")) || (invAvailability.getItemId() == 1457)) {continue;}bufferedWriter.newLine();bufferedWriter.write(StringUtils.join(new String[] {String.valueOf(invAvailability.getItemId()),invAvailability.getBrand(),invAvailability.getModelName(),invAvailability.getModelNumber(),invAvailability.getColor(),String.valueOf(invAvailability.getQuantity())}, '\t'));}bufferedWriter.close();return file;}public static String getHtmlFileGenrator(File file, String tableTitle){String htmlFilePath = "/tmp/"+tableTitle+"-file.htm";StringBuffer sb = new StringBuffer();sb.append("");try{BufferedReader br = new BufferedReader(new FileReader(file));String line = "";sb.append("<html><table border=\"1\" align=\"center\">"+ "<caption><b>" + tableTitle + "</b></caption>");int lineCount = 1;while((line = br.readLine())!= null){String[] values = line.split("\t");sb.append("<tr>");for(String value : values){if(lineCount ==1){sb.append("<td><b>"+ value.toUpperCase()+"</b></td>");}else{sb.append("<td>"+ value+"</td>");}}sb.append("</tr>");lineCount++;}sb.append("</table></html>");BufferedWriter out = new BufferedWriter(new FileWriter(htmlFilePath));out.write(sb.toString());out.flush();out.close();}catch(Exception e){e.printStackTrace();return "";}return htmlFilePath;}}