#region 将抓取到的数据写入业务表
public void WriteToMatMove(string factory)
{
DataTable OiproofDT = GetIoOiproofInfo(factory);
OiproofDT.TableName = "AJ_IO_OIPROOF";
/*抓取表的格式*/
OracleHelper ora = new OracleHelper(new MatMoveHelper().ADOGenerator());
string sql1 = @"SELECT * FROM IO_OIPROOF WHERE 1=2";
string sql2 = @"SELECT * FROM IO_TAKIOBILL WHERE 1=2";
string sql3 = @"SELECT * FROM IO_TAKORDER WHERE 1=2";
List<String> lstSQL = new List<String> { sql1, sql2, sql3 };
/*表名*/
List<String> lstName = new List<String> { "IO_OIPROOF", "IO_TAKIOBILL", "IO_TAKORDER" };
DataSet ds = ora.Get_DataSet(lstSQL, lstName);
foreach (DataRow dr in OiproofDT.Rows)
{
//凭证表
DataRow orfDR = ds.Tables["IO_OIPROOF"].NewRow();
string cata1 = "AJ2" + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString();
int begin = Register(new MatMoveHelper().ADOGenerator(), cata1, "凭证号", "SEQUENCE", "NULL", 1);
//int begin = Register(connectionString, cata1, "凭证号", "SEQUENCE", "NULL", 1);
orfDR["PROID"] = cata1 + begin.ToString("00000");//凭证号 N
DateTime date = DateTime.ParseExact(dr["PRODATE"].ToString(), "yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);
//明细表
DataTable TakiobillDT = GetIoTakiobillInfo(dr["AJ_IO_OIPROOF_ID"].ToString());
foreach (DataRow billRow in TakiobillDT.Rows)
{
DataRow billDR = ds.Tables["IO_TAKIOBILL"].NewRow();
string billCata1 = "2" + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString("00");
int billBegin = Register(new MatMoveHelper().ADOGenerator(), billCata1, "出库", "SEQUENCE", "NULL", 1);
//int billBegin = Register(connectionString, billCata1, "出库", "SEQUENCE", "NULL", 1);
billDR["TIOSNO"] = billCata1 + billBegin.ToString("0000000");
billDR["PROID"] = orfDR["PROID"];
billDR["GDSID"] = billRow["GDSID"];//件号
billDR["TIODATE"] = date;//日期(精确到秒)
billDR["TIOBATCHNO"] = billRow["REPBATCH"];//批号(要求供应商+YYYYMMDD+3位流水)
billDR["TIOTASKQTY"] = billRow["TIOTASKQTY"];//任务数
billDR["TIOSTATE"] = "2";//状态(0新建,1执行, 2完工)
billDR["TIOTYPE"] = "2";//类型(1入库,2出库)
billDR["TIOBPCSTYPE"] = dr["PROTRAFFICO"];//事务
billDR["TKBZ"] = "0";//0
billDR["ISMILITARY"] = billRow["ISMILITARY"];
ds.Tables["IO_TAKIOBILL"].Rows.Add(billDR);
//order表
DataRow orderDR = ds.Tables["IO_TAKORDER"].NewRow();
orderDR["TIOSNO"] = billCata1 + billBegin.ToString("0000000");
orderDR["TORNO"] = 1;
orderDR["TORSITE"] = dr["PROSTUID"].ToString() + "01";
orderDR["TORBACTHNO"] = billRow["REPBATCH"];
orderDR["TORFDATE"] = date;
orderDR["TORPLANQTY"] = billRow["TIOTASKQTY"];
orderDR["TORFINIQTY"] = billRow["TIOTASKQTY"];
orderDR["TORBPCSTYPE"] = dr["PROTRAFFICO"];
//orderDR["TORZYSNO"] = dr["PROID"];
string takOrder_Cata1 = "T" + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString("00");
orderDR["TORZYSNO"] = takOrder_Cata1 + Register(new MatMoveHelper().ADOGenerator(), takOrder_Cata1, "转移跟踪", "SEQUENCE", "NULL", 1).ToString().PadLeft(6, '0');
orderDR["TORJSZT"] = "0";
ds.Tables["IO_TAKORDER"].Rows.Add(orderDR);
}
orfDR["PROOPERATION"] = ">";//> 场所转移发出 Y
orfDR["PROCLIENTS"] = dr["PROCLIENTS"];//接收方场所 Y
orfDR["PROSTUID"] = dr["PROSTUID"];
orfDR["PROMBKFKW"] = dr["TOWAREHOUSE"];
orfDR["PROTRAFFICO"] = dr["PROTRAFFICO"];//发出方发出事务 Y
orfDR["PRODATE"] = date;//转移日期(精确到秒) Y
orfDR["PROSTATE"] = "2";//0新建 1执行 2完工 Y
orfDR["PROTYPE"] = "2";//1入库 2出库 发出则写2 Y
orfDR["PROJYT"] = dr["PROCJF"];//发出方场所 Y
orfDR["PROJSZT"] = "0";// 接收状态,默认0(0新建,1接收,2驳回)
orfDR["PROCJF"] = dr["PROCJF"] + "-" + dr["COSTCENTER_SEND"];// 发出方(场所 + '-'+ '成本中心')
orfDR["PROJSF"] = dr["PROCLIENTS"] + "-" + dr["COSTCENTER_REC"];//接收方(场所 + '-'+ '成本中心')
orfDR["PROFCFID"] = dr["PROID"];//发出方凭证 Y
ds.Tables["IO_OIPROOF"].Rows.Add(orfDR);
}
OracleHelper helper = new OracleHelper(new MatMoveHelper().ADOGenerator());
if (helper.UpdateDataSet(ds))
{
UpdateIoOiproofInfo(OiproofDT);
}
}
#endregion
public void WriteToMatMove(string factory)
{
DataTable OiproofDT = GetIoOiproofInfo(factory);
OiproofDT.TableName = "AJ_IO_OIPROOF";
/*抓取表的格式*/
OracleHelper ora = new OracleHelper(new MatMoveHelper().ADOGenerator());
string sql1 = @"SELECT * FROM IO_OIPROOF WHERE 1=2";
string sql2 = @"SELECT * FROM IO_TAKIOBILL WHERE 1=2";
string sql3 = @"SELECT * FROM IO_TAKORDER WHERE 1=2";
List<String> lstSQL = new List<String> { sql1, sql2, sql3 };
/*表名*/
List<String> lstName = new List<String> { "IO_OIPROOF", "IO_TAKIOBILL", "IO_TAKORDER" };
DataSet ds = ora.Get_DataSet(lstSQL, lstName);
foreach (DataRow dr in OiproofDT.Rows)
{
//凭证表
DataRow orfDR = ds.Tables["IO_OIPROOF"].NewRow();
string cata1 = "AJ2" + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString();
int begin = Register(new MatMoveHelper().ADOGenerator(), cata1, "凭证号", "SEQUENCE", "NULL", 1);
//int begin = Register(connectionString, cata1, "凭证号", "SEQUENCE", "NULL", 1);
orfDR["PROID"] = cata1 + begin.ToString("00000");//凭证号 N
DateTime date = DateTime.ParseExact(dr["PRODATE"].ToString(), "yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);
//明细表
DataTable TakiobillDT = GetIoTakiobillInfo(dr["AJ_IO_OIPROOF_ID"].ToString());
foreach (DataRow billRow in TakiobillDT.Rows)
{
DataRow billDR = ds.Tables["IO_TAKIOBILL"].NewRow();
string billCata1 = "2" + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString("00");
int billBegin = Register(new MatMoveHelper().ADOGenerator(), billCata1, "出库", "SEQUENCE", "NULL", 1);
//int billBegin = Register(connectionString, billCata1, "出库", "SEQUENCE", "NULL", 1);
billDR["TIOSNO"] = billCata1 + billBegin.ToString("0000000");
billDR["PROID"] = orfDR["PROID"];
billDR["GDSID"] = billRow["GDSID"];//件号
billDR["TIODATE"] = date;//日期(精确到秒)
billDR["TIOBATCHNO"] = billRow["REPBATCH"];//批号(要求供应商+YYYYMMDD+3位流水)
billDR["TIOTASKQTY"] = billRow["TIOTASKQTY"];//任务数
billDR["TIOSTATE"] = "2";//状态(0新建,1执行, 2完工)
billDR["TIOTYPE"] = "2";//类型(1入库,2出库)
billDR["TIOBPCSTYPE"] = dr["PROTRAFFICO"];//事务
billDR["TKBZ"] = "0";//0
billDR["ISMILITARY"] = billRow["ISMILITARY"];
ds.Tables["IO_TAKIOBILL"].Rows.Add(billDR);
//order表
DataRow orderDR = ds.Tables["IO_TAKORDER"].NewRow();
orderDR["TIOSNO"] = billCata1 + billBegin.ToString("0000000");
orderDR["TORNO"] = 1;
orderDR["TORSITE"] = dr["PROSTUID"].ToString() + "01";
orderDR["TORBACTHNO"] = billRow["REPBATCH"];
orderDR["TORFDATE"] = date;
orderDR["TORPLANQTY"] = billRow["TIOTASKQTY"];
orderDR["TORFINIQTY"] = billRow["TIOTASKQTY"];
orderDR["TORBPCSTYPE"] = dr["PROTRAFFICO"];
//orderDR["TORZYSNO"] = dr["PROID"];
string takOrder_Cata1 = "T" + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString("00");
orderDR["TORZYSNO"] = takOrder_Cata1 + Register(new MatMoveHelper().ADOGenerator(), takOrder_Cata1, "转移跟踪", "SEQUENCE", "NULL", 1).ToString().PadLeft(6, '0');
orderDR["TORJSZT"] = "0";
ds.Tables["IO_TAKORDER"].Rows.Add(orderDR);
}
orfDR["PROOPERATION"] = ">";//> 场所转移发出 Y
orfDR["PROCLIENTS"] = dr["PROCLIENTS"];//接收方场所 Y
orfDR["PROSTUID"] = dr["PROSTUID"];
orfDR["PROMBKFKW"] = dr["TOWAREHOUSE"];
orfDR["PROTRAFFICO"] = dr["PROTRAFFICO"];//发出方发出事务 Y
orfDR["PRODATE"] = date;//转移日期(精确到秒) Y
orfDR["PROSTATE"] = "2";//0新建 1执行 2完工 Y
orfDR["PROTYPE"] = "2";//1入库 2出库 发出则写2 Y
orfDR["PROJYT"] = dr["PROCJF"];//发出方场所 Y
orfDR["PROJSZT"] = "0";// 接收状态,默认0(0新建,1接收,2驳回)
orfDR["PROCJF"] = dr["PROCJF"] + "-" + dr["COSTCENTER_SEND"];// 发出方(场所 + '-'+ '成本中心')
orfDR["PROJSF"] = dr["PROCLIENTS"] + "-" + dr["COSTCENTER_REC"];//接收方(场所 + '-'+ '成本中心')
orfDR["PROFCFID"] = dr["PROID"];//发出方凭证 Y
ds.Tables["IO_OIPROOF"].Rows.Add(orfDR);
}
OracleHelper helper = new OracleHelper(new MatMoveHelper().ADOGenerator());
if (helper.UpdateDataSet(ds))
{
UpdateIoOiproofInfo(OiproofDT);
}
}
#endregion