Rev 21242 | Rev 21247 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.hotspot.dashbaord.server;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.TransactionService.Client;import in.shop2020.thrift.clients.TransactionClient;import in.shop2020.thrift.clients.WarehouseClient;import in.shop2020.warehouse.InventoryItem;import java.io.File;import java.io.FileInputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.DataFormatter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ProcessBulkBilling{private static Logger logger = LoggerFactory.getLogger(ProcessBulkBilling.class);private String fileName;private String logisticsTransactionId;private String packageDimensions;private List<InventoryItem> inventoryItems;private Map<Long, Long> itemQuantityMap= new HashMap<Long, Long>();private Map<Long, List<InventoryItem>> inventoryItemMap= new HashMap<Long, List<InventoryItem>>();private ArrayList<String> imei_list = new ArrayList<String>();ProcessBulkBilling(String fileName, String logisticsTransactionId, String packageDimensions) {logger.info("FileName "+fileName+" logisticsTransactionId "+logisticsTransactionId+" packageDimension "+packageDimensions);this.fileName = fileName;this.logisticsTransactionId = logisticsTransactionId;this.packageDimensions = packageDimensions;}public boolean processReport() {try{FileInputStream iFile = new FileInputStream(new File(fileName));HSSFWorkbook workbook = new HSSFWorkbook(iFile);HSSFSheet sheet = workbook.getSheetAt(0);DataFormatter formatter = new DataFormatter();for (int iterator=sheet.getFirstRowNum()+1;iterator<=sheet.getLastRowNum();iterator++){HSSFCell imei_cell = sheet.getRow(iterator).getCell(0);String imei = formatter.formatCellValue(imei_cell).trim();if (imei == null || imei.isEmpty()){break;}if (imei_list.contains(imei)){return false;}imei_list.add(imei);}return true;}catch(Exception e){e.printStackTrace();return false;}}public String checkBillingDetails(){List<Order> orders_list;try{Client tc = new TransactionClient().getClient();orders_list = tc.getGroupOrdersByLogisticsTxnId(logisticsTransactionId);}catch(Exception e){e.printStackTrace();return "Service Error!!!";}long total_quantity = 0;for (Order o : orders_list){if (itemQuantityMap.containsKey(o.getLineitems().get(0).getItem_id())){itemQuantityMap.put(o.getLineitems().get(0).getItem_id(), itemQuantityMap.get(o.getLineitems().get(0).getItem_id())+(long)o.getLineitems().get(0).getQuantity());}else{itemQuantityMap.put(o.getLineitems().get(0).getItem_id(), (long)o.getLineitems().get(0).getQuantity());}total_quantity = (long) (total_quantity + o.getLineitems().get(0).getQuantity());}if (total_quantity != imei_list.size()){return "Quantity and imei mismatch.Supplied imei's not equal to quantity to bill";}try{in.shop2020.warehouse.WarehouseService.Client wc = new WarehouseClient().getClient();inventoryItems = wc.getInventoryItems(imei_list);for (InventoryItem it : inventoryItems){if (inventoryItemMap.containsKey(it.getItemId())){inventoryItemMap.get(it.getItemId()).add(it);}else{List<InventoryItem> it_list = new ArrayList<InventoryItem>();it_list.add(it);inventoryItemMap.put(it.getItemId(), it_list);}}}catch(Exception e){return "Exception while getting inventory items from warehouse";}logger.info("itemQuantityMap "+itemQuantityMap);logger.info("inventoryItemMap "+inventoryItemMap);return "success";}}