📄 inventoryidoc.java
字号:
package com.idoc.logic;
import com.idoc.face.InterfaceIDOC;
/**
* <p>Title: IDOC Interface</p>
* <p>Description: IDOC 转换器</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: SiChuan XinHua</p>
* @author Richary
* @version 1.0
*/
/**
* 盘点数据解析类
*/
import java.sql.*;
import java.sql.Connection;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.ResultSet;
import com.idoc.util.db.DBQueryBean;
import com.idoc.util.db.RowSet;
import com.idoc.util.db.Row;
import com.idoc.util.Operate;
import com.idoc.file.WriteData;
import com.idoc.util.db.BeanConn;
import com.idoc.util.GetProperty;
import java.lang.ArrayStoreException;
import com.idoc.util.LogManager;
public class InventoryIDOC
implements InterfaceIDOC {
Runtime runtime = null;
private Vector Tv = new Vector();
Operate Operate1 = new Operate();
private DBQueryBean query = null;
private ResultSet rowSet1 = null;
private BeanConn BC = null;
private Connection conn = null;
private Statement stmt1 = null;
private WriteData writeSAP = new WriteData();
private String maxtime = "";
private String time = "";
private String endtimebak = ""; //保存本次循环取到的上次结束时间戳
private int num = 0;
private int rowCount = 0;
private UpDataDispose UpDataDispase1 = new UpDataDispose();
private LogManager log = new LogManager();
private String store = "";
private GetProperty getPro = new GetProperty();
//创建数据库连接
public Connection sqlgetconn() {
try {
conn = new BeanConn().getConn();
}
catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public boolean buildIDOC() {
int i = 0;
rowCount = getPro.getRowInventory();
RowSet rowset1 = null;
String EDI_DC40 = "";
String E2WVINH001 = "";
String E2WVINI001 = "";
String E2WXX01 = "";
String E2WPB03002 = "";
String E2WPB06002 = "";
String idocdata = "";
String Check_voucher_Codep = "";
String Check_yearp = "";
String Check_SAP_Nop = "";
String Check_voucher_Code = "";
String Check_year = "";
String Check_time = "";
String Check_SAP_No = "";
String STORECODE = "";
String Storage_Site = "";
String Merch_CODE = "";
String Merch_type = "";
String Stock_Amount = "";
String Fact_Amount = "";
String COMP_UNIT = "";
String sap_port = getPro.getSapPort().toString();
if (rowSet1 == null) {
return false;
}
int ii = 0;
try {
while (rowSet1.next()) {
Check_voucher_Code = rowSet1.getString("Check_voucher_Code").trim(); //盘点凭证号,E2WVINH001
Check_year = rowSet1.getString("Check_year").trim(); //财政年度,E2WVINH001
Check_time = rowSet1.getString("Check_time").trim();
Check_time = Operate1.getsubString(Check_time, 0, 4) +
Operate1.getsubString(Check_time, 5, 7)
+ Operate1.getsubString(Check_time, 8, 10);
Check_SAP_No = rowSet1.getString("Check_SAP_No").trim(); //盘点项目号,E2WVINI001
STORECODE = rowSet1.getString("STORECODE").trim(); //门店
Storage_Site = rowSet1.getString("Storage_Site").trim(); //库位,E2WVINH001
Merch_CODE = rowSet1.getString("Merch_CODE").trim(); //商品编码,E2WVINI001
Merch_type = rowSet1.getString("Merch_type").trim(); //商品类型,E2WVINI001
//Stock_Amount = rowSet1.getString("Stock_Amount"); //账存数,E2WVINI001
//如果盘点(实存)数为零XNULL为"x"
Fact_Amount = rowSet1.getString("Fact_Amount").trim(); //实存数,E2WVINI001
if (Fact_Amount == null) {
Fact_Amount = "0";
}
COMP_UNIT = rowSet1.getString("COMP_UNIT").trim(); //计量单位,E2WVINI001
//System.out.println("STORECODE"+STORECODE);
//如果凭证号和财政年度不同则下一个结构类型开始
if (!Check_voucher_Codep.equalsIgnoreCase(Check_voucher_Code) ||
!Check_yearp.equalsIgnoreCase(Check_year)) {
//当处理行大于rowCount时写idoc,清空vector,i置0,以便生成新的idoc
if (i >= rowCount) {
if (!writeidoc("idoc")) {
Tv.removeAllElements();
return false;
}
Tv.removeAllElements();
i = 0;
}
if (i == 0) {
EDI_DC40 = Operate1.addEmpty("EDI_DC40", 10) +
Operate1.addEmpty("", 23) + "68"
+ "2" + " " + Operate1.addEmpty("WVINVE03", 30) +
Operate1.addEmpty("", 30)
+ Operate1.addEmpty("WVINVE", 30)
+ Operate1.addEmpty("", 13) + "WVINVE" +
Operate1.addEmpty("WPUX", 10) +
"KU" + " "
+ Operate1.addEmpty("000000" + STORECODE, 10) +
Operate1.addEmpty("", 91) +
Operate1.addEmpty(sap_port, 10)
+ "KU" + " " + Operate1.addEmpty("000000" + STORECODE, 10) +
Operate1.addEmpty("", 237);
Tv.addElement(EDI_DC40);
}
E2WVINH001 = Operate1.addEmpty("E2WVINH001", 63) +
Operate1.addEmpty(Storage_Site, 10) +
Operate1.addEmpty(Check_voucher_Code, 20)
+ Check_year + Operate1.addEmpty("", 64) +
Operate1.addEmpty(Check_time, 8)
+ Operate1.addEmpty("", 42) + Operate1.addEmpty(STORECODE, 10)
+ Operate1.addEmpty("", 218);
Tv.addElement(E2WVINH001);
if (Fact_Amount.equalsIgnoreCase("0")) {
E2WVINI001 = Operate1.addEmpty("E2WVINI001", 63) +
Operate1.addEmpty(Check_SAP_No, 9) + "006 "
+ Operate1.addEmpty(Merch_CODE, 25) + Operate1.addEmpty("", 15) +
Merch_type +
Operate1.addEmpty(Fact_Amount, 20) +
Operate1.addEmpty(COMP_UNIT, 3) + Operate1.addEmpty("", 20)
+ Operate1.addEmpty("", 20) + Operate1.addEmpty("", 19) +
"x" + Operate1.addEmpty("", 413);
}
else {
E2WVINI001 = Operate1.addEmpty("E2WVINI001", 63) +
Operate1.addEmpty(Check_SAP_No, 9) + "006 "
+ Operate1.addEmpty(Merch_CODE, 25) + Operate1.addEmpty("", 15) +
Merch_type +
Operate1.addEmpty(Fact_Amount, 20) +
Operate1.addEmpty(COMP_UNIT, 3) + Operate1.addEmpty("", 20)
+ Operate1.addEmpty("", 20) + Operate1.addEmpty("", 19) +
" " + Operate1.addEmpty("", 413);
}
Tv.addElement(E2WVINI001);
Check_voucher_Codep = Check_voucher_Code;
Check_yearp = Check_year;
Check_SAP_Nop = Check_SAP_No;
}
else {
if ( (Check_voucher_Codep.equalsIgnoreCase(Check_voucher_Code) &&
Check_yearp.equalsIgnoreCase(Check_year)) &&
(!Check_SAP_Nop.equalsIgnoreCase(Check_SAP_No))) {
if (Fact_Amount.equalsIgnoreCase("0")) {
E2WVINI001 = Operate1.addEmpty("E2WVINI001", 63) +
Operate1.addEmpty(Check_SAP_No, 9) + "006 "
+ Operate1.addEmpty(Merch_CODE, 25) +
Operate1.addEmpty("", 15) + Merch_type +
Operate1.addEmpty(Fact_Amount, 20) +
Operate1.addEmpty(COMP_UNIT, 3) + Operate1.addEmpty("", 20)
+ Operate1.addEmpty("", 20) +
Operate1.addEmpty("", 19) +
"x" + Operate1.addEmpty("", 413);
}
else {
E2WVINI001 = Operate1.addEmpty("E2WVINI001", 63) +
Operate1.addEmpty(Check_SAP_No, 9) + "006 "
+ Operate1.addEmpty(Merch_CODE, 25) +
Operate1.addEmpty("", 15) + Merch_type +
Operate1.addEmpty(Fact_Amount, 20) +
Operate1.addEmpty(COMP_UNIT, 3) + Operate1.addEmpty("", 20)
+ Operate1.addEmpty("", 20) +
Operate1.addEmpty("", 19) +
" " + Operate1.addEmpty("", 413);
}
Tv.addElement(E2WVINI001);
Check_SAP_Nop = Check_SAP_No;
}
}
i++;
}
if (!writeidoc("trigger")) {
Tv.removeAllElements();
return false;
}
Tv.removeAllElements();
}
catch (Exception e) {
System.out.println("Inventory's buildIDOC!");
e.printStackTrace();
return false;
}
return true;
}
//处理正常情况
public void disposeIDOC() {
try {
conn = sqlgetconn();
if (conn == null) {
// javax.swing.JOptionPane.showMessageDialog(null, "创建连接失败:", "conn等于null",
// 0, null);
return;
}
boolean suflag = false;
boolean f = false;
String[][] str = UpDataDispase1.getSyInfo("upinventory");
for (int j = 0; j < str.length; j++) {
try {
store = str[j][0];
time = str[j][1];
endtimebak = time;
maxtime = null;
if (time == null || time.equalsIgnoreCase("null") ||
time.equalsIgnoreCase("")) {
time = String.valueOf( (int) (Math.random() * 1000));
}
}
catch (Exception e) {
System.out.println("time 结束时间戳" + e.toString());
e.printStackTrace();
}
maxtime = UpDataDispase1.getMaxTime(store, "sapout_sy_checklist_down"); // 中间表的最大时间戳
if (maxtime == null || maxtime.equalsIgnoreCase("null") ||
maxtime.equalsIgnoreCase("")) {
continue;
}
if (maxtime.equalsIgnoreCase(endtimebak)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -