主子表

        #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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值