Esempio n. 1
0
  /**
   * @param csv
   * @return List<FetorderimeiVo>
   * @throws Exception
   */
  private List<FetorderimeiVo> buildImeiCollection(List<String[]> csv) throws Exception {
    List<FetorderimeiVo> list = new ArrayList<FetorderimeiVo>();
    FetorderimeiVo imeivo = null;
    int imeiCount = 0;

    try {
      String area = "";
      String bcode = "";
      String storename = "";
      String orderdate = "";
      String eorderno = "";
      String itemno = "";
      String itemname = "";
      String imei = "";
      String sender = "";
      String strStatus = "";
      int status = 1;

      FieldObject fo = null;
      FetOrderImeiFormat orderFields = new FetOrderImeiFormat();

      // 以訂單編號查詢存在訂單檔案
      for (String[] ss : csv) {
        fo = orderFields.getField(FetOrderImeiFormat.Fields.AREA.getName());
        area = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.STORE_CODE.getName());
        bcode = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.STORE_NAME.getName());
        storename = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.ORDER_DATE.getName());
        orderdate = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.ORDER_E_NO.getName());
        eorderno = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.ITEM_NO.getName());
        itemno = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.ITEM_NAME.getName());
        itemname = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.IMEI.getName());
        imei = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.STATUS.getName());
        strStatus = ss[fo.getItemno() - 1];
        fo = orderFields.getField(FetOrderImeiFormat.Fields.SENDER.getName());
        sender = ss[fo.getItemno() - 1];

        Date d =
            new Date(
                DateConverter.parseDateTime(orderdate, DateConverter.FORMAT_WEST_DATE).getTime());

        switch (strStatus) {
          case "作業處理中":
            status = 2;
            break;
          case "未啟用":
            status = 0;
            break;
          case "已啟用":
            status = 1;
            break;
          default:
            status = 0;
            break;
        }

        imeivo = new FetorderimeiVo();
        imeivo.setArea(area);
        imeivo.setBcode(bcode);
        imeivo.setStorename(storename);
        imeivo.setOrderdate(d);
        imeivo.setEorderno(eorderno);
        imeivo.setItemno(itemno);
        imeivo.setItemname(itemname);
        imeivo.setImei(imei);
        imeivo.setStatus(status);
        imeivo.setSender(sender);
        list.add(imeivo);
      }

      // 匯入 IMEI進貨明細表
      for (FetorderimeiVo v : list) {
        imei = v.getImei();
        imeivo = isImeiExist(imei);
        if (NullTK.isNull(imeivo)) {
          orderimeiDao.insert(v);
        } else {
          orderimeiDao.update(v);
        }
        imeiCache.put(imei, v);
        imeiCount++;
      }

      logger.info("匯入IMEI筆數:" + imeiCount);
      importmemo.append("/匯入IMEI筆數:" + imeiCount + "\n");
    } catch (Exception e) {
      logger.error(e);
      throw new Exception("FetImeiImporter:匯入 IMEI進貨明細表 異常:" + e.getMessage());
    }
    return list;
  }