Exemplo n.º 1
0
  @ModuleName(value = "提货成本管理导入Excel保存", logType = LogType.fi)
  public String saveFiExcel(File excelFile, String fileName) throws Exception {
    User user = WebRalasafe.getCurrentUser(ServletActionContext.getRequest());
    Long bussDepartId = Long.parseLong(user.get("bussDepart") + "");
    List<FiDeliverycostExcel> fiList = new ArrayList<FiDeliverycostExcel>();
    Long batchNo = fiDeliverycostExcelService.getBatchNO(bussDepartId);
    List list = null;
    if (fileName.toLowerCase().endsWith(".xlsx")) {
      ReadExcel2007 readExcel2007 = new ReadExcel2007(5);
      FileInputStream fint = new FileInputStream(excelFile);
      try {
        list = readExcel2007.readExcel2007(fint);
      } catch (Exception e) {
        throw new ServiceException("读取数据错误,存在非法空值");
      } finally {
        if (fint != null) {
          fint.close();
          fint = null;
        }
      }
    } else if (fileName.toLowerCase().endsWith(".xls")) {
      ReadExcel readExcel = new ReadExcel(5);
      FileInputStream fint = new FileInputStream(excelFile);
      try {
        list = readExcel.readExcel(fint);
      } catch (Exception e) {
        throw new ServiceException("读取数据错误,存在非法空值");
      } finally {
        if (fint != null) {
          fint.close();
          fint = null;
        }
      }
    } else {
      throw new ServiceException("请导入Excel文件,后缀为.xlsx或者.xls");
    }
    for (int i = 0; i < list.size(); i++) {
      FiDeliverycostExcel fiDeliveryExcel = new FiDeliverycostExcel();
      fiDeliveryExcel.setStatus(0l);
      fiDeliveryExcel.setBatchNo(batchNo);
      List row = (List) list.get(i);
      if (i != 0) {
        Iterator jt = row.iterator();
        String company = (String) jt.next();

        fiDeliveryExcel.setExcelCompany(company);
        jt.hasNext();

        String excelNo = (String) jt.next();
        fiDeliveryExcel.setExcelNo(excelNo);
        jt.hasNext();
        String excelWeight = (String) jt.next();
        if (excelWeight == null || "".equals(excelWeight)) {
          continue;
        }
        fiDeliveryExcel.setExcelWeight(Double.parseDouble(excelWeight));
        jt.hasNext();

        String excelAmount = (String) jt.next();
        if (excelAmount == null || "".equals(excelAmount)) {
          continue;
        }
        fiDeliveryExcel.setExcelAmount((Double.parseDouble(excelAmount)));
        jt.hasNext();

        String banFee = (String) jt.next();
        if (banFee == null || "".equals(banFee)) {
          continue;
        }
        fiDeliveryExcel.setExcelBanFee(Double.parseDouble(banFee));
        fiList.add(fiDeliveryExcel);
      }
    }

    for (FiDeliverycostExcel fiDeliverycostExcel : fiList) {
      fiDeliverycostExcelDao.save(fiDeliverycostExcel);
    }
    return batchNo + "";
  }