⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eanparse.java

📁 SAP这个系统的一个转换器
💻 JAVA
字号:
package com.idoc.logic;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Vector;
import javax.swing.JOptionPane;
import com.idoc.util.Operate;
import com.idoc.face.InterfaceParse;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * <p>Title: IDOC Interface</p>
 * <p>Description: IDOC 转换器</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: SiChuan XinHua</p>
 * @author zjc
 * @version 1.0
 */
/**
 *<p>商品EAN码解析类</p>
 */

public class EANParse
    implements InterfaceParse {
  Vector Tv = new Vector(); //容纳解析后拼装的欲插入中间数据库的sql语句
  public EANParse() {
  }

  /**
   *<p>实现接口调TempTableDispose类的dealData()方法</p>
   *<p>处理解析出的数据并传入处理后须删除的文件</p>
   */
  public boolean disposeData(File file) {
    boolean flag1 = false;
    parseData(file);
    TempTableDispose TTDEAN = new TempTableDispose();
    flag1 = TTDEAN.disposeData(Tv, file, "ean");
    return flag1;
  }

  /**
   *<p>实现接口parseData()解析idoc文件</p>
   * 数据库表T_SAPIN_SY_MASTER_EAN的字段MASTER_CODE(1表示主EAN码,0表示付加EAN码)
   */

  public boolean parseData(File file) {
    Operate Operate1 = new Operate(); //用于调用Operate.getsubString()方法取子串
    int Count = 0; //记录idoc文件的行号
    String stype = ""; //容纳每一行idoc数据的字符串
    String ARTIKELNR = ""; //商品编码
    String HAUPTEAN = ""; //主EAN码
    String EAN = ""; //付加EAN码
    String Tsql = "";
    BufferedReader br = null;
    InputStream bin = null;
    InputStreamReader ir = null;
    FileInputStream fis = null;
    String AENDKENNZ = ""; //修改标识
    String store = "";
    int modi = 0; //修改标识 0有效
    boolean flag = false;

    try {
      fis = new FileInputStream(file);
      byte[] buff = new byte[ (int) file.length()];
      int len = 0, pos = 0;
      while ( (len = fis.read(buff, pos, buff.length - pos)) > -1 &&
             pos < buff.length) {
        pos += len;
      }
      bin = new java.io.ByteArrayInputStream(buff);
      ir = new InputStreamReader(bin);
      br = new BufferedReader(ir);

      stype = new String();
      while ( (stype = br.readLine()) != null) {
        Count++;
        if (Count == 1) {
          stype = stype.substring(39, 69).trim();
          if (!stype.equals("WP_EAN01")) {
            if (br != null)
              br.close();
            if (ir != null)
              ir.close();
            if (bin != null)
              bin.close();
            if (fis != null)
              fis.close();
            flag = false;
            break;
          }
        }
        else {
          if (Operate1.getsubString(stype, 0, 30).equalsIgnoreCase("E2WPE01")) {
            store = Operate1.getsubString(stype, 69, 73);
            ARTIKELNR = Operate1.getsubString(stype, 128, 152); // 商品编码
            ARTIKELNR = ARTIKELNR.trim();
            AENDKENNZ = Operate1.getsubString(stype, 73, 77); // 修改标志
            AENDKENNZ = AENDKENNZ.trim();
            if (AENDKENNZ.equalsIgnoreCase("MODI")) {
              modi = 0;
            }
            else {
              modi = 1;
            }

            HAUPTEAN = Operate1.getsubString(stype, 103, 128); // EAN码
            HAUPTEAN = HAUPTEAN.trim();
            if ( (ARTIKELNR.equalsIgnoreCase("") ||
                  ARTIKELNR.equalsIgnoreCase("null"))) {
              continue;
            }
            if (modi == 1) {
              Tsql =
                  "insert into T_SAPIN_SY_MASTER_EAN(STORECODE,Merch_CODE,EAN_CODE,MASTER_CODE,canuse_flag) "
                  + "values('" + store + "','" + ARTIKELNR + "','" + HAUPTEAN +
                  "',0,1) ";
              Tv.addElement(Tsql);
            }
          }
          if (Operate1.getsubString(stype, 0, 30).equalsIgnoreCase("E2WPE02")) {
            EAN = Operate1.getsubString(stype, 63, 88);
            EAN = EAN.trim();
            if ( (ARTIKELNR.equalsIgnoreCase("")) || (EAN.equalsIgnoreCase(""))) {
              continue;
            }
            Tsql =
                "insert into T_SAPIN_SY_MASTER_EAN(STORECODE,Merch_CODE,EAN_CODE,MASTER_CODE,canuse_flag) "
                + "values('" + store + "','" + ARTIKELNR + "','" + EAN + "',0," +
                modi + ") ";

            Tv.addElement(Tsql);
          }
        }
      }
      flag = true;
    }
    catch (FileNotFoundException e) {
      System.out.println("EAN FileNotFoundException");
      e.printStackTrace();

    }
    catch (IOException e) {
      System.out.println("EAN IOException");
      e.printStackTrace();

    }
    catch (Exception e) {
      System.out.println("EAN Exception");
      e.printStackTrace();

    }
    finally {
      try {
        if (br != null)
          br.close();
        if (ir != null)
          ir.close();
        if (bin != null)
          bin.close();
        if (fis != null)
          fis.close();
        return flag;

      }
      catch (Exception ex) {
        System.out.println("EAN's finally!");
        ex.printStackTrace();
        return false;
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -