📄 eanparse.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 + -