Subversion Repositories SmartDukaan

Rev

Rev 21242 | Rev 21247 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21234 kshitij.so 1
package in.shop2020.hotspot.dashbaord.server;
2
 
21237 kshitij.so 3
import in.shop2020.model.v1.order.Order;
4
import in.shop2020.model.v1.order.TransactionService.Client;
21234 kshitij.so 5
import in.shop2020.thrift.clients.TransactionClient;
21242 kshitij.so 6
import in.shop2020.thrift.clients.WarehouseClient;
7
import in.shop2020.warehouse.InventoryItem;
21234 kshitij.so 8
 
9
import java.io.File;
10
import java.io.FileInputStream;
11
import java.util.ArrayList;
21242 kshitij.so 12
import java.util.HashMap;
21234 kshitij.so 13
import java.util.List;
21242 kshitij.so 14
import java.util.Map;
21234 kshitij.so 15
 
21244 kshitij.so 16
import org.apache.poi.hssf.usermodel.HSSFCell;
21234 kshitij.so 17
import org.apache.poi.hssf.usermodel.HSSFSheet;
18
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
21244 kshitij.so 19
import org.apache.poi.ss.usermodel.DataFormatter;
21234 kshitij.so 20
import org.slf4j.Logger;
21
import org.slf4j.LoggerFactory;
22
 
21242 kshitij.so 23
 
21234 kshitij.so 24
public class ProcessBulkBilling{
25
	private static  Logger logger = LoggerFactory.getLogger(ProcessBulkBilling.class);
21242 kshitij.so 26
 
21237 kshitij.so 27
	private String fileName;
28
	private String logisticsTransactionId;
29
	private String packageDimensions;
21242 kshitij.so 30
	private List<InventoryItem> inventoryItems;
31
	private Map<Long, Long> itemQuantityMap= new HashMap<Long, Long>();
32
	private Map<Long, List<InventoryItem>> inventoryItemMap= new HashMap<Long, List<InventoryItem>>();
21237 kshitij.so 33
	private ArrayList<String> imei_list = new ArrayList<String>();
21242 kshitij.so 34
 
35
 
21237 kshitij.so 36
	ProcessBulkBilling(String fileName, String logisticsTransactionId, String packageDimensions) {
37
		logger.info("FileName "+fileName+" logisticsTransactionId "+logisticsTransactionId+" packageDimension "+packageDimensions);
38
		this.fileName = fileName;
39
		this.logisticsTransactionId = logisticsTransactionId;
40
		this.packageDimensions = packageDimensions;
41
	}
21234 kshitij.so 42
 
21237 kshitij.so 43
	public boolean processReport() {
21234 kshitij.so 44
		try{
45
 
46
			FileInputStream iFile = new FileInputStream(new File(fileName));
47
			HSSFWorkbook workbook = new HSSFWorkbook(iFile);
48
			HSSFSheet sheet = workbook.getSheetAt(0);
21244 kshitij.so 49
			DataFormatter formatter = new DataFormatter();
21234 kshitij.so 50
			for (int iterator=sheet.getFirstRowNum()+1;iterator<=sheet.getLastRowNum();iterator++){
21244 kshitij.so 51
				HSSFCell imei_cell = sheet.getRow(iterator).getCell(0);
52
				String imei = formatter.formatCellValue(imei_cell).trim();
21237 kshitij.so 53
				if (imei == null || imei.isEmpty()){
54
					break;
55
				}
21242 kshitij.so 56
				if (imei_list.contains(imei)){
57
					return false;
58
				}
21237 kshitij.so 59
				imei_list.add(imei);
21234 kshitij.so 60
			}
61
			return true;
62
		}
63
		catch(Exception e){
64
			e.printStackTrace();
65
			return false;
66
		}
67
	}
21242 kshitij.so 68
 
21237 kshitij.so 69
	public String checkBillingDetails(){
70
		List<Order> orders_list;
71
		try{
21242 kshitij.so 72
			Client tc = new TransactionClient().getClient();
73
			orders_list = tc.getGroupOrdersByLogisticsTxnId(logisticsTransactionId);
21237 kshitij.so 74
		}
75
		catch(Exception e){
76
			e.printStackTrace();
77
			return "Service Error!!!";
78
		}
79
		long total_quantity = 0;
80
		for (Order o : orders_list){
21242 kshitij.so 81
			if (itemQuantityMap.containsKey(o.getLineitems().get(0).getItem_id())){
82
				itemQuantityMap.put(o.getLineitems().get(0).getItem_id(), itemQuantityMap.get(o.getLineitems().get(0).getItem_id())+(long)o.getLineitems().get(0).getQuantity());
83
			}
84
			else{
85
				itemQuantityMap.put(o.getLineitems().get(0).getItem_id(), (long)o.getLineitems().get(0).getQuantity());
86
			}
21237 kshitij.so 87
			total_quantity = (long) (total_quantity + o.getLineitems().get(0).getQuantity());
88
		}
89
		if (total_quantity != imei_list.size()){
90
			return "Quantity and imei mismatch.Supplied imei's not equal to quantity to bill";
91
		}
21242 kshitij.so 92
		try{
93
			in.shop2020.warehouse.WarehouseService.Client wc = new WarehouseClient().getClient();
94
			inventoryItems = wc.getInventoryItems(imei_list);
95
			for (InventoryItem it : inventoryItems){
96
				if (inventoryItemMap.containsKey(it.getItemId())){
97
					inventoryItemMap.get(it.getItemId()).add(it);
98
				}
99
				else{
100
					List<InventoryItem> it_list = new ArrayList<InventoryItem>();
101
					it_list.add(it);
102
					inventoryItemMap.put(it.getItemId(), it_list);
103
				}
104
			}
105
		}
106
		catch(Exception e){
107
			return "Exception while getting inventory items from warehouse";
108
		}
109
		logger.info("itemQuantityMap "+itemQuantityMap);
110
		logger.info("inventoryItemMap "+inventoryItemMap);
111
		return "success";
21237 kshitij.so 112
	}
21234 kshitij.so 113
 
114
}