Blame | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.model.v1.order.EbayOrder;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.TransactionService;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.TransactionClient;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.commons.io.FileUtils;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Workbook;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})@Results({@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})})public class EbayAwbUploaderController extends ActionSupport implements ServletRequestAware {private static Logger logger = LoggerFactory.getLogger(EbayAwbUploaderController.class);private static final int SALES_REC_NUMBER_INDEX = 0;private static final int AWB_INDEX = 1;private HttpServletRequest request;private HttpSession session;private String errorMsg = "";private File awbFile;private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");public String create() throws IOException {FileUtils.copyFile(awbFile, new File("/tmp/ebayAwbFile " + sdf.format(new Date()) + ".xls"));Workbook wb = new HSSFWorkbook(new FileInputStream(awbFile));int totalNumRows = 0;for (Row row : wb.getSheetAt(0)) {EbayOrder ebayOrder = null;String airwayBillNum = null;Order order = null;try {totalNumRows++;if(totalNumRows==1) {continue;}TransactionService.Client transactionClient = new TransactionClient().getClient();try {ebayOrder = transactionClient.getEbayOrderBySalesRecNumber(new Double(row.getCell(SALES_REC_NUMBER_INDEX).getNumericCellValue()).longValue());} catch (Exception e) {setErrorMsg(getErrorMsg() + "<br/>Error in getting Ebay Order for Row Id " + totalNumRows);continue;}try {airwayBillNum = row.getCell(AWB_INDEX).getStringCellValue();} catch (Exception e) {setErrorMsg(getErrorMsg() + "<br/>Error in reading airwaybill number for Row " + totalNumRows);continue;}try {order = transactionClient.getOrder(ebayOrder.getOrderId());} catch (Exception e) {setErrorMsg(getErrorMsg() + "<br/>Error in getting Saholic Order for Row Id " + totalNumRows);continue;}if(order.getAirwaybill_no()==null || order.getAirwaybill_no().equals("null") || order.getAirwaybill_no().isEmpty()) {order.setAirwaybill_no(airwayBillNum);order.setTracking_id(airwayBillNum);transactionClient.updateOrderForEbay(order);}} catch (Exception e) {logger.error(e + "\n" + e.getMessage() + e.getCause());setErrorMsg(getErrorMsg() + "<br/>Error in row number " + totalNumRows);addActionError("Error in row number " + totalNumRows);}}if(errorMsg.isEmpty()) {setErrorMsg("Sucessfully uploaded Awb numbers");}return "authsuccess";}public String index() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), "/ebay-dashboard"))return "authfail";return "authsuccess";}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}public File getAwbFile() {return awbFile;}public void setAwbFile(File awbFile) {this.awbFile = awbFile;}}