示例#1
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Mod_TPB_SLABWH model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into TPB_SLABWH(");
            strSql.Append("C_SLABWH_CODE,C_SLABWH_NAME,D_END_DATE,C_REMARK,C_EMP_ID)");
            strSql.Append(" values (");
            strSql.Append(":C_SLABWH_CODE,:C_SLABWH_NAME,:D_END_DATE,:C_REMARK,:C_EMP_ID)");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_SLABWH_CODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_SLABWH_NAME", OracleDbType.Varchar2, 100),
                new OracleParameter(":D_END_DATE",    OracleDbType.Date),
                new OracleParameter(":C_REMARK",      OracleDbType.Varchar2, 200),
                new OracleParameter(":C_EMP_ID",      OracleDbType.Varchar2, 100)
            };
            parameters[0].Value = model.C_SLABWH_CODE;
            parameters[1].Value = model.C_SLABWH_NAME;
            parameters[2].Value = model.D_END_DATE;
            parameters[3].Value = model.C_REMARK;
            parameters[4].Value = model.C_EMP_ID;


            int rows = DbHelperOra.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#2
0
        private void FrmPB_GPKCK_EDIT_Load(object sender, EventArgs e)
        {
            strMenuName = RV.UI.UserInfo.menuName;
            Mod_TPB_SLABWH mod = Bll_TPB_SLABWH.GetModel(c_id);

            txt_CKBH.Text   = mod.C_SLABWH_CODE;
            txt_CKMS.Text   = mod.C_SLABWH_NAME;
            txt_Remark.Text = mod.C_REMARK;
        }
示例#3
0
        /// <summary>
        /// 删除选中的数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Stop_Click(object sender, EventArgs e)
        {
            try
            {
                if (DialogResult.No == MessageBox.Show("是否确认删除选中的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                {
                    return;
                }

                int   selectedNum = this.gv_slab_wh.SelectedRowsCount;
                int   commitNum   = 0;                                 //删除记录数量
                int   cannotNum   = 0;                                 //不能删除记录数量
                int   failtNum    = 0;                                 //删除失败数量
                int[] rownumber   = this.gv_slab_wh.GetSelectedRows(); //获取选中行号数组;
                for (int i = 0; i < rownumber.Length; i++)
                {
                    int    selectedHandle = rownumber[i];
                    string strID          = this.gv_slab_wh.GetRowCellValue(selectedHandle, "C_ID").ToString();

                    //判断该仓库的区域是否已经全部删除
                    bool hasNoStopArea = bll_TPB_SLABWH_AREA.ExistsNOSotpBySlabWH(strID);
                    if (hasNoStopArea)
                    {
                        cannotNum = cannotNum + 1;
                    }
                    else
                    {
                        Mod_TPB_SLABWH model = bll_TPB_SLABWH.GetModel(strID);
                        model.N_STATUS   = 0;
                        model.C_EMP_ID   = RV.UI.UserInfo.userID;
                        model.D_MOD_DT   = RV.UI.ServerTime.timeNow();
                        model.D_END_DATE = RV.UI.ServerTime.timeNow();
                        bool update = bll_TPB_SLABWH.Update(model);
                        if (update)
                        {
                            commitNum = commitNum + 1;
                        }
                        else
                        {
                            failtNum = failtNum + 1;
                        }
                    }
                }
                MessageBox.Show("选择" + selectedNum.ToString() + "条记录,删除" + commitNum.ToString() + "条记录!");

                Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "删除仓库信息"); //添加操作日志

                BindXCCK();                                                         //重新加载仓库信息
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
示例#4
0
        private void btn_Bz_Click(object sender, EventArgs e)
        {
            DataTable     dt     = OpenExcelFile(this.txtUrl.Text, "sheet1");
            StringBuilder strLog = new StringBuilder();

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (!string.IsNullOrEmpty(dt.Rows[i][0].ToString().Trim()))
                    {
                        if (i > 0)
                        {
                            if (dt.Rows[i]["仓库编码"].ToString().Trim() == dt.Rows[i - 1]["仓库编码"].ToString().Trim())
                            {
                                continue;
                            }
                        }


                        try
                        {
                            Mod_TPB_SLABWH model = new Mod_TPB_SLABWH();

                            model.C_SLABWH_CODE = dt.Rows[i]["仓库编码"].ToString();
                            model.C_SLABWH_NAME = dt.Rows[i]["仓库描述"].ToString();

                            model.C_EMP_ID = "222";

                            bool res = Bll_TPB_SLABWH.Add(model, false);

                            if (!res)
                            {
                                strLog.Append("添加失败");
                            }
                        }
                        catch
                        {
                            strLog.Append("添加失败");
                        }
                    }
                }
            }


            strLog.Append("导入完成!");

            rtxt_Log.Text = strLog.ToString();

            Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "导入库位");//添加操作日志
        }
示例#5
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Mod_TPB_SLABWH model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update TPB_SLABWH set ");
            strSql.Append("C_SLABWH_CODE=:C_SLABWH_CODE,");
            strSql.Append("C_SLABWH_NAME=:C_SLABWH_NAME,");
            strSql.Append("D_START_DATE=:D_START_DATE,");
            strSql.Append("D_END_DATE=:D_END_DATE,");
            strSql.Append("N_STATUS=:N_STATUS,");
            strSql.Append("C_REMARK=:C_REMARK,");
            strSql.Append("C_EMP_ID=:C_EMP_ID,");
            strSql.Append("D_MOD_DT=:D_MOD_DT");
            strSql.Append(" where C_ID=:C_ID ");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_SLABWH_CODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_SLABWH_NAME", OracleDbType.Varchar2, 100),
                new OracleParameter(":D_START_DATE",  OracleDbType.Date),
                new OracleParameter(":D_END_DATE",    OracleDbType.Date),
                new OracleParameter(":N_STATUS",      OracleDbType.Decimal,    1),
                new OracleParameter(":C_REMARK",      OracleDbType.Varchar2, 200),
                new OracleParameter(":C_EMP_ID",      OracleDbType.Varchar2, 100),
                new OracleParameter(":D_MOD_DT",      OracleDbType.Date),
                new OracleParameter(":C_ID",          OracleDbType.Varchar2, 100)
            };
            parameters[0].Value = model.C_SLABWH_CODE;
            parameters[1].Value = model.C_SLABWH_NAME;
            parameters[2].Value = model.D_START_DATE;
            parameters[3].Value = model.D_END_DATE;
            parameters[4].Value = model.N_STATUS;
            parameters[5].Value = model.C_REMARK;
            parameters[6].Value = model.C_EMP_ID;
            parameters[7].Value = model.D_MOD_DT;
            parameters[8].Value = model.C_ID;

            int rows = DbHelperOra.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#6
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Mod_TPB_SLABWH DataRowToModel(DataRow row)
        {
            Mod_TPB_SLABWH model = new Mod_TPB_SLABWH();

            if (row != null)
            {
                if (row["C_ID"] != null)
                {
                    model.C_ID = row["C_ID"].ToString();
                }
                if (row["C_SLABWH_CODE"] != null)
                {
                    model.C_SLABWH_CODE = row["C_SLABWH_CODE"].ToString();
                }
                if (row["C_SLABWH_NAME"] != null)
                {
                    model.C_SLABWH_NAME = row["C_SLABWH_NAME"].ToString();
                }
                if (row["D_START_DATE"] != null && row["D_START_DATE"].ToString() != "")
                {
                    model.D_START_DATE = DateTime.Parse(row["D_START_DATE"].ToString());
                }
                if (row["D_END_DATE"] != null && row["D_END_DATE"].ToString() != "")
                {
                    model.D_END_DATE = DateTime.Parse(row["D_END_DATE"].ToString());
                }
                if (row["N_STATUS"] != null && row["N_STATUS"].ToString() != "")
                {
                    model.N_STATUS = decimal.Parse(row["N_STATUS"].ToString());
                }
                if (row["C_REMARK"] != null)
                {
                    model.C_REMARK = row["C_REMARK"].ToString();
                }
                if (row["C_EMP_ID"] != null)
                {
                    model.C_EMP_ID = row["C_EMP_ID"].ToString();
                }
                if (row["D_MOD_DT"] != null && row["D_MOD_DT"].ToString() != "")
                {
                    model.D_MOD_DT = DateTime.Parse(row["D_MOD_DT"].ToString());
                }
            }
            return(model);
        }
示例#7
0
        /// <summary>
        /// 获取仓库列表焦点行信息
        /// </summary>
        public void BindFocusedRowCK()
        {
            int selectedHandle = this.gv_slab_wh.FocusedRowHandle;//获取焦点行索引

            if (selectedHandle < 0)
            {
                return;
            }
            this.lbl_WHID.Text = this.gv_slab_wh.GetRowCellValue(selectedHandle, "C_ID").ToString();//获取焦点行主键
            //根据主键得到仓库对象,并在界面赋值
            Mod_TPB_SLABWH model = bll_TPB_SLABWH.GetModel(this.lbl_WHID.Text);

            this.txt_slabWh_Code.Text = model.C_SLABWH_CODE;
            this.txt_SlabWh_Name.Text = model.C_SLABWH_NAME;
            this.txt_Remark.Text      = model.C_REMARK;

            //加载仓库区域信息
            BindXCQU(this.lbl_WHID.Text, 1);
        }
示例#8
0
 private void btn_Save_Click(object sender, EventArgs e)
 {
     try
     {
         Mod_TPB_SLABWH mod = Bll_TPB_SLABWH.GetModel(c_id);
         mod.C_SLABWH_CODE = txt_CKBH.Text;
         mod.C_SLABWH_NAME = txt_CKMS.Text;
         mod.C_REMARK      = txt_Remark.Text;
         mod.C_EMP_ID      = RV.UI.UserInfo.UserID;
         mod.D_MOD_DT      = RV.UI.ServerTime.timeNow();
         Bll_TPB_SLABWH.Update(mod);
         MessageBox.Show("保存成功!");
         Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "修改钢坯库仓库");//添加操作日志
         this.DialogResult = DialogResult.Cancel;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
示例#9
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Mod_TPB_SLABWH GetModel_Interface_Trans(string C_SLABWH_CODE)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select C_ID,C_SLABWH_CODE,C_SLABWH_NAME,D_START_DATE,D_END_DATE,N_STATUS,C_REMARK,C_EMP_ID,D_MOD_DT from TPB_SLABWH ");
            strSql.Append(" where C_SLABWH_CODE=:C_SLABWH_CODE ");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_SLABWH_CODE", OracleDbType.Varchar2, 100)
            };
            parameters[0].Value = C_SLABWH_CODE;

            Mod_TPB_SLABWH model = new Mod_TPB_SLABWH();
            DataSet        ds    = DbHelperOra.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// 发送完工报告给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <param name="c_stove">炉号</param>
        /// <returns></returns>
        public bool SendXml_SLAB_A4(string xmlFileName, string c_stove, string strUserID)
        {
            try
            {
                string urlname = "GPWG" + c_stove + ".XML";//XML名称

                string url = xmlFileName + "\\NCXML";
                if (!Directory.Exists(url))
                {
                    Directory.CreateDirectory(url);
                }
                DataTable         dt             = dal_slab_mes.GetList("", "", c_stove, "", "全部").Tables[0];
                Mod_TSC_SLAB_MAIN mod_slab_main  = dal_slab_main.GetModel_Stove_Trans(c_stove);                                          //钢坯实绩
                Mod_TB_MATRL_MAIN mod_mater_main = dal_mater_main.GetModel(mod_slab_main.C_MAT_CODE);                                    //物料主表
                Mod_TS_USER       mod_ts_user    = dal_user.GetModel(strUserID);                                                         //用户主表
                Mod_TPB_SLABWH    mod_SLABWH     = dal_slabwh.GetModel_Interface(mod_slab_main.C_SLABWH_CODE);                           //库存表
                Mod_TB_STD_CONFIG mod_std_config = dal_std_config.GetModel_Interface(mod_slab_main.C_STD_CODE, mod_slab_main.C_STL_GRD); // 自由项
                if (dt == null)
                {
                    return(false);
                }
                if (mod_slab_main == null)
                {
                    return(false);
                }
                if (mod_mater_main == null)
                {
                    return(false);
                }
                if (mod_ts_user == null)
                {
                    return(false);
                }
                if (mod_SLABWH == null)
                {
                    return(false);
                }
                if (mod_std_config == null)
                {
                    return(false);
                }

                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("billtype", "AM");
                root.SetAttribute("filename", "");
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("operation", "req");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "Y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement bill = xmlDoc.CreateElement("bill");
                #region//节点属性
                bill.SetAttribute("id", mod_slab_main.C_STOVE);
                #endregion
                root.AppendChild(bill);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "bill_head", null);

                #region                                                                                                   //表头_order_head
                CreateNode(xmlDoc, head, "zdrid", "08908");                                                               //制单人  (mod_ts_user.C_ACCOUNT)
                CreateNode(xmlDoc, head, "rq", Convert.ToDateTime(dt.Rows[0]["生产时间"].ToString()).ToString("yyyy-MM-dd")); //日期
                CreateNode(xmlDoc, head, "sj", Convert.ToDateTime(dt.Rows[0]["生产时间"].ToString()).ToString("HH:mm:ss"));   //时间
                CreateNode(xmlDoc, head, "gzzxbmid", dt.Rows[0]["连铸代码"].ToString());                                      //工作中心编码ID
                CreateNode(xmlDoc, head, "scbmid", "");                                                                   //生产部门ID

                #endregion

                bill.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("bill_body");
                bill.AppendChild(body);

                XmlNode item = xmlDoc.CreateNode(XmlNodeType.Element, "item", null);
                #region                                                                                                       //表体_item

                CreateNode(xmlDoc, item, "pch", mod_slab_main.C_STOVE);                                                       //批次号
                CreateNode(xmlDoc, item, "scddh", "");                                                                        //生产订单号
                CreateNode(xmlDoc, item, "wlbmid", mod_mater_main.C_PK_INVMANDOC);                                            //物料编码ID(C_PK_INVMANDOC)
                CreateNode(xmlDoc, item, "jldwid", mod_mater_main.C_PK_MEASDOC);                                              //计量单位ID
                CreateNode(xmlDoc, item, "gzzxid", dt.Rows[0]["连铸主键"].ToString());                                            //工作中心ID
                CreateNode(xmlDoc, item, "ccxh", mod_slab_main.C_STOVE);                                                      //产出序号-炉号
                CreateNode(xmlDoc, item, "gxh", "");                                                                          //工序号
                CreateNode(xmlDoc, item, "pk_produce", "");                                                                   //物料PK
                CreateNode(xmlDoc, item, "ksrq", Convert.ToDateTime(dt.Rows[0]["计划开始时间"].ToString()).ToString("yyyy-MM-dd")); //开始日期
                CreateNode(xmlDoc, item, "kssj", Convert.ToDateTime(dt.Rows[0]["计划开始时间"].ToString()).ToString("HH:mm:ss"));   //开始时间
                CreateNode(xmlDoc, item, "jsrq", Convert.ToDateTime(dt.Rows[0]["计划结束时间"].ToString()).ToString("yyyy-MM-dd")); //结束日期
                CreateNode(xmlDoc, item, "jssj", Convert.ToDateTime(dt.Rows[0]["计划结束时间"].ToString()).ToString("HH:mm:ss"));   //结束时间
                CreateNode(xmlDoc, item, "hgsl", dt.Rows[0]["重量"].ToString());                                                //合格数量
                CreateNode(xmlDoc, item, "fhgsl", dt.Rows[0]["支数"].ToString());                                               //辅合格数量
                CreateNode(xmlDoc, item, "sflfcp", "N");                                                                      //是否联副产品
                CreateNode(xmlDoc, item, "sffsgp", "N");                                                                      //是否发生改判
                CreateNode(xmlDoc, item, "zdy1", "");                                                                         //自定义项1
                CreateNode(xmlDoc, item, "zdy2", "");                                                                         //自定义项2
                CreateNode(xmlDoc, item, "zdy3", "");                                                                         //自定义项3
                CreateNode(xmlDoc, item, "zdy4", "");                                                                         //自定义项4
                CreateNode(xmlDoc, item, "zdy5", "");                                                                         //自定义项5
                CreateNode(xmlDoc, item, "freeitemvalue1", mod_std_config.C_ZYX1);
                CreateNode(xmlDoc, item, "freeitemvalue2", mod_std_config.C_ZYX2);
                CreateNode(xmlDoc, item, "freeitemvalue3", "");
                CreateNode(xmlDoc, item, "freeitemvalue4", "");
                CreateNode(xmlDoc, item, "freeitemvalue5", dt.Rows[0]["C_PLAN_ID"].ToString()); //PCI计划订单主键
                CreateNode(xmlDoc, item, "pk_corp", "");                                        //公司编码
                CreateNode(xmlDoc, item, "gcbm", "");                                           //工厂

                #endregion

                body.AppendChild(item);


                xmlDoc.Save(url + "\\" + urlname);
                List <string> parem = dalSendNC.SendXML(url + "\\" + urlname);

                if (parem[0] == "1")
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
示例#11
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public bool Add(Mod_TPB_SLABWH model, bool IsID)
 {
     return(dal.Add(model, IsID));
 }
示例#12
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public bool Add(Mod_TPB_SLABWH model)
 {
     return(dal.Add(model));
 }
示例#13
0
        /// <summary>
        /// 添加编辑钢坯库库信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Add_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txt_slabWh_Code.Text.Trim().Length == 0)
                {
                    MessageBox.Show("请输入仓库编码!");
                    this.txt_slabWh_Code.Focus();
                    return;
                }
                if (this.txt_SlabWh_Name.Text.Trim().Length == 0)
                {
                    MessageBox.Show("请输入仓库描述!");
                    this.txt_SlabWh_Name.Focus();
                    return;
                }

                DataTable dt_NC_CK = bll_TPB_SLABWH.Get_NC_CK_INFO(txt_slabWh_Code.Text.Trim()).Tables[0];
                if (dt_NC_CK.Rows.Count == 0)
                {
                    MessageBox.Show("NC没有该仓库,请现在NC添加需要的仓库信息!");
                    return;
                }

                if (this.lbl_WHID.Text == "")
                {
                    if (DialogResult.No == MessageBox.Show("是否确认添加仓库信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                    {
                        return;
                    }

                    Mod_TPB_SLABWH model = new Mod_TPB_SLABWH();
                    model.C_ID          = dt_NC_CK.Rows[0]["PK_STORDOC"].ToString();
                    model.C_SLABWH_CODE = this.txt_slabWh_Code.Text.Trim();
                    model.C_SLABWH_NAME = this.txt_SlabWh_Name.Text.Trim();
                    model.C_REMARK      = this.txt_Remark.Text.Trim();
                    model.C_EMP_ID      = RV.UI.UserInfo.userID;
                    #region 检测是否重复添加
                    System.Collections.Hashtable ht = new System.Collections.Hashtable();
                    ht.Add("C_SLABWH_CODE", model.C_SLABWH_CODE);
                    ht.Add("N_STATUS", 1);
                    if (Common.CheckRepeat.CheckTable("TPB_SLABWH", ht) > 0)
                    {
                        MessageBox.Show("已存在该仓库编码!");
                    }
                    else
                    {
                        bool res = bll_TPB_SLABWH.Add(model, true);
                        if (res)
                        {
                            Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "添加仓库信息"); //添加操作日志
                            MessageBox.Show("添加成功!");
                            BindXCCK();                                                         //重新加载仓库信息
                            btn_Reset_Click(null, null);                                        //清空控件
                        }
                    }
                    #endregion
                }
                else
                {
                    if (DialogResult.No == MessageBox.Show("是否确认编辑仓库信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                    {
                        return;
                    }
                    Mod_TPB_SLABWH model = bll_TPB_SLABWH.GetModel(this.lbl_WHID.Text);

                    if (model.C_SLABWH_CODE != txt_slabWh_Code.Text.Trim())
                    {
                        MessageBox.Show("不能修改仓库编号!");
                        return;
                    }

                    //model.C_SLABWH_CODE = this.txt_slabWh_Code.Text.Trim();
                    model.C_SLABWH_NAME = this.txt_SlabWh_Name.Text.Trim();
                    model.C_REMARK      = this.txt_Remark.Text.Trim();
                    model.C_EMP_ID      = RV.UI.UserInfo.userID;
                    model.D_MOD_DT      = RV.UI.ServerTime.timeNow();

                    bool res = bll_TPB_SLABWH.Update(model);
                    if (res)
                    {
                        Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "修改仓库信息");//添加操作日志

                        MessageBox.Show("编辑成功!");
                        BindXCCK();                  //重新加载仓库信息
                        btn_Reset_Click(null, null); //清空控件
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
示例#14
0
        /// <summary>
        /// 发送转库实绩信息给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <returns></returns>
        public string SendXml_GP(string xmlFileName, string no)
        {
            try
            {
                string name = "QT4I" + no + ".xml";
                xmlFileName += "\\" + name;
                DataTable itemdt = dal_TRC_ROLL_QTCKD_ITEM.GetQTCKXQByDH(no).Tables[0]; //要传输的出库单数据
                if (itemdt.Rows.Count == 0)
                {
                    return("PCI转库单表未查询到其他出库单单:" + no + "信息!");
                }

                Mod_TRC_ROLL_QTCKD mod_TRC_ROLL_QTCKD = dal_TRC_ROLL_QTCKD.GetModelByQTCKD(no);
                string             mbckid             = "";
                if (mod_TRC_ROLL_QTCKD.C_MBWH_ID.Substring(0, 1) == "6" || mod_TRC_ROLL_QTCKD.C_MBWH_ID.Substring(0, 1) == "7")
                {
                    Mod_TPB_LINEWH mbck = dal_TPB_LINEWH.GetModelByCode(mod_TRC_ROLL_QTCKD.C_MBWH_ID);//源仓库
                    mbckid = mbck.C_ID;
                }
                else
                {
                    Mod_TPB_SLABWH mbck = dal_TPB_SLABWH.GetModel_Interface(mod_TRC_ROLL_QTCKD.C_MBWH_ID);//源仓库
                    mbckid = mbck.C_ID;
                }


                Mod_TPB_LINEWH yck         = dal_TPB_LINEWH.GetModelByCode(itemdt.Rows[0]["C_LINEWH_CODE"].ToString()); //源仓库
                string         djrq        = Convert.ToDateTime(mod_TRC_ROLL_QTCKD.D_CREATE_DT).ToString("yyyy-MM-dd");
                Mod_TS_USER    mod_TS_USER = dal_TS_USER.GetModel(mod_TRC_ROLL_QTCKD.C_CREATE_ID);                      //mod_TRC_ROLL_QTCKD.C_CREATE_ID
                string         bmid        = dal_TS_DEPT.GetDept(mod_TS_USER.C_ACCOUNT);
                if (bmid == "")
                {
                    return("操作人部门未维护!");
                }
                Mod_TS_DEPT mod_TS_DEPT = dal_TS_DEPT.GetModel(bmid);//获取部门
                XmlDocument xmlDoc      = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("billtype", "4K");
                root.SetAttribute("filename", "QTCK" + mod_TRC_ROLL_QTCKD.C_QTCKD_NO + ".xml");
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("operation", "req");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement bill = xmlDoc.CreateElement("bill");
                #region//节点属性
                bill.SetAttribute("id", "QT" + mod_TRC_ROLL_QTCKD.C_ID);
                #endregion
                root.AppendChild(bill);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "bill_head", null);
                #region //表头_order_head
                CreateNode(xmlDoc, head, "ctjname", "");
                CreateNode(xmlDoc, head, "bz", "");
                CreateNode(xmlDoc, head, "cbilltypecode", "4K");        //库存单据类型编码
                CreateNode(xmlDoc, head, "cinbsrid", "");
                CreateNode(xmlDoc, head, "cinbsrname", "");
                CreateNode(xmlDoc, head, "cindeptid", mod_TS_DEPT.C_ID);                      //入库部门ID
                CreateNode(xmlDoc, head, "cindeptname", mod_TS_DEPT.C_NAME);
                CreateNode(xmlDoc, head, "cinwarehouseid", mbckid);                           //入库仓库ID
                CreateNode(xmlDoc, head, "cinwarehousename", mod_TRC_ROLL_QTCKD.C_MBWH_NAME); //仓库名称
                CreateNode(xmlDoc, head, "isLocatorMgtIn", "0");
                CreateNode(xmlDoc, head, "isWasteWhIn", "0");
                CreateNode(xmlDoc, head, "whreservedptyin", "");
                CreateNode(xmlDoc, head, "islocatormgtin", "0");
                CreateNode(xmlDoc, head, "iswastewhin", "0");
                CreateNode(xmlDoc, head, "whreservedptyin", "");
                CreateNode(xmlDoc, head, "coutbsor", "");
                CreateNode(xmlDoc, head, "coutbsorname", "");
                CreateNode(xmlDoc, head, "coutdeptid", mod_TS_DEPT.C_ID);         //出库部门ID
                CreateNode(xmlDoc, head, "coutdeptname", mod_TS_DEPT.C_NAME);     //出库部门名称
                CreateNode(xmlDoc, head, "coutwarehouseid", yck.C_ID);            //出库仓库ID
                CreateNode(xmlDoc, head, "coutwarehousename", yck.C_LINEWH_NAME); //仓库名称
                CreateNode(xmlDoc, head, "isLocatorMgtOut", "0");
                CreateNode(xmlDoc, head, "isWasteWhOut", "0");
                CreateNode(xmlDoc, head, "whReservedPtyOut", "");
                CreateNode(xmlDoc, head, "islocatormgtout", "0");
                CreateNode(xmlDoc, head, "iswastewhout", "0");
                CreateNode(xmlDoc, head, "whreservedptyout", "");
                CreateNode(xmlDoc, head, "cshlddiliverdate", djrq);                   //单据日期
                CreateNode(xmlDoc, head, "ctj", "");
                CreateNode(xmlDoc, head, "dbilldate", djrq);                          //单据日期
                CreateNode(xmlDoc, head, "nfixdisassemblymny", "");                   //组装拆卸费用
                CreateNode(xmlDoc, head, "pdfs", "");
                CreateNode(xmlDoc, head, "pk_corp", "1001");                          //公司ID
                CreateNode(xmlDoc, head, "vbillcode", mod_TRC_ROLL_QTCKD.C_QTCKD_NO); //单据号
                CreateNode(xmlDoc, head, "vnote", "");                                //备注
                CreateNode(xmlDoc, head, "vshldarrivedate", djrq);                    //应到货日期
                CreateNode(xmlDoc, head, "vuserdef1", "");
                CreateNode(xmlDoc, head, "vuserdef2", "");
                CreateNode(xmlDoc, head, "vuserdef3", "");
                CreateNode(xmlDoc, head, "vuserdef4", "");
                CreateNode(xmlDoc, head, "vuserdef5", "");
                CreateNode(xmlDoc, head, "vuserdef6", "");
                CreateNode(xmlDoc, head, "vuserdef7", "");
                CreateNode(xmlDoc, head, "vuserdef8", "");
                CreateNode(xmlDoc, head, "vuserdef9", "");
                CreateNode(xmlDoc, head, "vuserdef10", "");
                CreateNode(xmlDoc, head, "vuserdef11", "");
                CreateNode(xmlDoc, head, "vuserdef12", "");
                CreateNode(xmlDoc, head, "vuserdef13", "");
                CreateNode(xmlDoc, head, "vuserdef14", "");
                CreateNode(xmlDoc, head, "vuserdef15", "");
                CreateNode(xmlDoc, head, "vuserdef16", "");
                CreateNode(xmlDoc, head, "vuserdef17", "");
                CreateNode(xmlDoc, head, "vuserdef18", "");
                CreateNode(xmlDoc, head, "vuserdef19", "");
                CreateNode(xmlDoc, head, "vuserdef20", "");
                CreateNode(xmlDoc, head, "vuserdef11h", "");
                CreateNode(xmlDoc, head, "vuserdef12h", "");
                CreateNode(xmlDoc, head, "vuserdef13h", "");
                CreateNode(xmlDoc, head, "vuserdef14h", "");
                CreateNode(xmlDoc, head, "vuserdef15h", "");
                CreateNode(xmlDoc, head, "vuserdef16h", "");
                CreateNode(xmlDoc, head, "vuserdef17h", "");
                CreateNode(xmlDoc, head, "vuserdef18h", "");
                CreateNode(xmlDoc, head, "vuserdef19h", "");
                CreateNode(xmlDoc, head, "vuserdef20h", "");
                CreateNode(xmlDoc, head, "pk_defdoc1", "");
                CreateNode(xmlDoc, head, "pk_defdoc2", "");
                CreateNode(xmlDoc, head, "pk_defdoc3", "");
                CreateNode(xmlDoc, head, "pk_defdoc4", "");
                CreateNode(xmlDoc, head, "pk_defdoc5", "");
                CreateNode(xmlDoc, head, "pk_defdoc6", "");
                CreateNode(xmlDoc, head, "pk_defdoc7", "");
                CreateNode(xmlDoc, head, "pk_defdoc8", "");
                CreateNode(xmlDoc, head, "pk_defdoc9", "");
                CreateNode(xmlDoc, head, "pk_defdoc10", "");
                CreateNode(xmlDoc, head, "pk_defdoc1h", "");
                CreateNode(xmlDoc, head, "pk_defdoc2h", "");
                CreateNode(xmlDoc, head, "pk_defdoc3h", "");
                CreateNode(xmlDoc, head, "pk_defdoc4h", "");
                CreateNode(xmlDoc, head, "pk_defdoc5h", "");
                CreateNode(xmlDoc, head, "pk_defdoc6h", "");
                CreateNode(xmlDoc, head, "pk_defdoc7h", "");
                CreateNode(xmlDoc, head, "pk_defdoc8h", "");
                CreateNode(xmlDoc, head, "pk_defdoc9h", "");
                CreateNode(xmlDoc, head, "pk_defdoc10h", "");
                CreateNode(xmlDoc, head, "pk_defdoc11", "");
                CreateNode(xmlDoc, head, "pk_defdoc12", "");
                CreateNode(xmlDoc, head, "pk_defdoc13", "");
                CreateNode(xmlDoc, head, "pk_defdoc14", "");
                CreateNode(xmlDoc, head, "pk_defdoc15", "");
                CreateNode(xmlDoc, head, "pk_defdoc16", "");
                CreateNode(xmlDoc, head, "pk_defdoc17", "");
                CreateNode(xmlDoc, head, "pk_defdoc18", "");
                CreateNode(xmlDoc, head, "pk_defdoc19", "");
                CreateNode(xmlDoc, head, "pk_defdoc20", "");
                CreateNode(xmlDoc, head, "pk_defdoc11h", "");
                CreateNode(xmlDoc, head, "pk_defdoc12h", "");
                CreateNode(xmlDoc, head, "pk_defdoc13h", "");
                CreateNode(xmlDoc, head, "pk_defdoc14h", "");
                CreateNode(xmlDoc, head, "pk_defdoc15h", "");
                CreateNode(xmlDoc, head, "pk_defdoc16h", "");
                CreateNode(xmlDoc, head, "pk_defdoc17h", "");
                CreateNode(xmlDoc, head, "pk_defdoc18h", "");
                CreateNode(xmlDoc, head, "pk_defdoc19h", "");
                CreateNode(xmlDoc, head, "pk_defdoc20h", "");
                CreateNode(xmlDoc, head, "vuserdef1h", "");
                CreateNode(xmlDoc, head, "vuserdef2h", "");
                CreateNode(xmlDoc, head, "vuserdef3h", "");
                CreateNode(xmlDoc, head, "vuserdef4h", "");
                CreateNode(xmlDoc, head, "vuserdef5h", "");
                CreateNode(xmlDoc, head, "vuserdef6h", "");
                CreateNode(xmlDoc, head, "vuserdef7h", "");
                CreateNode(xmlDoc, head, "vuserdef8h", "");
                CreateNode(xmlDoc, head, "vuserdef9h", "");
                CreateNode(xmlDoc, head, "vuserdef10h", "");
                CreateNode(xmlDoc, head, "cauditorid", "");
                CreateNode(xmlDoc, head, "cauditorname", "");
                CreateNode(xmlDoc, head, "coperatorid", mod_TS_USER.C_ID);      //制单人
                CreateNode(xmlDoc, head, "coperatorname", mod_TS_USER.C_NAME);  //制单人名称
                CreateNode(xmlDoc, head, "vadjuster", "");
                CreateNode(xmlDoc, head, "vadjustername", "");
                CreateNode(xmlDoc, head, "coperatoridnow", "");
                CreateNode(xmlDoc, head, "ctjname", "");
                CreateNode(xmlDoc, head, "pk_calbody_in", "1001NC10000000000669");
                CreateNode(xmlDoc, head, "pk_calbody_out", "1001NC10000000000669");
                CreateNode(xmlDoc, head, "vcalbody_inname", "邢钢库存组织");
                CreateNode(xmlDoc, head, "vcalbody_outname", "邢钢库存组织");
                CreateNode(xmlDoc, head, "ts", DateTime.Now.ToString());
                CreateNode(xmlDoc, head, "timestamp", "");      //?
                CreateNode(xmlDoc, head, "headts", DateTime.Now.ToString());
                CreateNode(xmlDoc, head, "isforeignstor_in", "N");
                CreateNode(xmlDoc, head, "isgathersettle_in", "N");
                CreateNode(xmlDoc, head, "isforeignstor_out", "N");
                CreateNode(xmlDoc, head, "isgathersettle_out", "N");
                CreateNode(xmlDoc, head, "icheckmode", "");
                CreateNode(xmlDoc, head, "fassistantflag", "N");        //是否计算期间业务量
                CreateNode(xmlDoc, head, "fbillflag", "");
                CreateNode(xmlDoc, head, "vostatus", "");
                CreateNode(xmlDoc, head, "iprintcount", "");
                CreateNode(xmlDoc, head, "clastmodiid", mod_TS_USER.C_ID);                  //最后修改人
                CreateNode(xmlDoc, head, "clastmodiname", mod_TS_USER.C_NAME);              //最后修改人名称
                CreateNode(xmlDoc, head, "tlastmoditime", mod_TS_USER.D_MOD_DT.ToString()); //最后修改时间
                CreateNode(xmlDoc, head, "cnxtbilltypecode", "4I");
                CreateNode(xmlDoc, head, "cspecialhid", "");

                #endregion
                bill.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("bill_body");
                bill.AppendChild(body);
                foreach (DataRow qtck in itemdt.Rows)
                {
                    Mod_TRC_ROLL_QTCKD_ITEM mod_TRC_ROLL_QTCKD_ITEM = dal_TRC_ROLL_QTCKD_ITEM.GetModeltran(qtck["C_ID"].ToString());
                    Mod_TB_MATRL_MAIN       mod_TB_MATRL_MAIN       = dal_TB_MATRL_MAIN.GetModel(qtck["C_MAT_CODE"].ToString());
                    Mod_TQB_CHECKSTATE      mod_TQB_CHECKSTATE      = dal_TQB_CHECKSTATE.GetModelByName(qtck["C_JUDGE_LEV_ZH"].ToString(), "1001");
                    XmlNode item = xmlDoc.CreateNode(XmlNodeType.Element, "item", null);
                    #region                                                                  //表体_item
                    CreateNode(xmlDoc, item, "csourcetypename", "");
                    CreateNode(xmlDoc, item, "cinvbasid", mod_TB_MATRL_MAIN.C_PK_INVBASDOC); //来源单据号
                    CreateNode(xmlDoc, item, "pk_invbasdoc", mod_TB_MATRL_MAIN.C_PK_INVBASDOC);
                    CreateNode(xmlDoc, item, "fixedflag", "N");
                    CreateNode(xmlDoc, item, "bgssl", "");
                    CreateNode(xmlDoc, item, "castunitid", mod_TB_MATRL_MAIN.C_FJLDW);  //辅计量单位ID
                    CreateNode(xmlDoc, item, "castunitname", mod_TB_MATRL_MAIN.C_FJLDWMC);
                    CreateNode(xmlDoc, item, "cinventorycode", mod_TB_MATRL_MAIN.C_MAT_CODE);
                    CreateNode(xmlDoc, item, "cinventoryid", mod_TB_MATRL_MAIN.C_PK_INVMANDOC); //存货ID
                    CreateNode(xmlDoc, item, "cinvmanid", mod_TB_MATRL_MAIN.C_PK_INVBASDOC);
                    CreateNode(xmlDoc, item, "isLotMgt", "1");
                    CreateNode(xmlDoc, item, "isSerialMgt", "0");
                    CreateNode(xmlDoc, item, "isValidateMgt", "0");
                    CreateNode(xmlDoc, item, "isAstUOMmgt", "1");
                    CreateNode(xmlDoc, item, "isFreeItemMgt", "1");
                    CreateNode(xmlDoc, item, "isSet", "0");
                    CreateNode(xmlDoc, item, "standStoreUOM", "");
                    CreateNode(xmlDoc, item, "defaultAstUOM", mod_TB_MATRL_MAIN.C_FJLDW);
                    CreateNode(xmlDoc, item, "isSellProxy", "0");
                    CreateNode(xmlDoc, item, "qualityDay", "");
                    CreateNode(xmlDoc, item, "invReservedPty", "");
                    CreateNode(xmlDoc, item, "isSolidConvRate", "0");
                    CreateNode(xmlDoc, item, "islotmgt", "1");
                    CreateNode(xmlDoc, item, "isserialmgt", "0");
                    CreateNode(xmlDoc, item, "isvalidatemgt", "0");
                    CreateNode(xmlDoc, item, "isastuommgt", "1");
                    CreateNode(xmlDoc, item, "isfreeitemmgt", "1");
                    CreateNode(xmlDoc, item, "isset", "0");
                    CreateNode(xmlDoc, item, "standstoreuom", "");
                    CreateNode(xmlDoc, item, "defaultastuom", mod_TB_MATRL_MAIN.C_FJLDW);
                    CreateNode(xmlDoc, item, "issellproxy", "0");
                    CreateNode(xmlDoc, item, "qualityday", "");
                    CreateNode(xmlDoc, item, "invreservedpty", "");
                    CreateNode(xmlDoc, item, "issolidconvrate", "0");
                    CreateNode(xmlDoc, item, "csourcebillbid", "");
                    CreateNode(xmlDoc, item, "csourcebillhid", "");
                    CreateNode(xmlDoc, item, "csourcetype", "");
                    CreateNode(xmlDoc, item, "cspaceid", "");
                    CreateNode(xmlDoc, item, "cspacecode", "");
                    CreateNode(xmlDoc, item, "cspacename", "");
                    CreateNode(xmlDoc, item, "cspecialhid", "");    //???
                    CreateNode(xmlDoc, item, "cwarehouseid", "");
                    CreateNode(xmlDoc, item, "cwarehousename", "");
                    CreateNode(xmlDoc, item, "isLocatorMgt", "");
                    CreateNode(xmlDoc, item, "isWasteWh", "");
                    CreateNode(xmlDoc, item, "whreservedpty", "");
                    CreateNode(xmlDoc, item, "islocatormgt", "");
                    CreateNode(xmlDoc, item, "iswastewh", "");
                    CreateNode(xmlDoc, item, "whreservedpty", "");
                    CreateNode(xmlDoc, item, "cyfsl", "");
                    CreateNode(xmlDoc, item, "cysl", "");
                    CreateNode(xmlDoc, item, "desl", "");
                    CreateNode(xmlDoc, item, "dshldtransnum", mod_TRC_ROLL_QTCKD_ITEM.N_SJWGT.ToString());    //应转数量
                    CreateNode(xmlDoc, item, "dvalidate", "");
                    CreateNode(xmlDoc, item, "fbillrowflag", "");
                    CreateNode(xmlDoc, item, "hlzl", "");
                    CreateNode(xmlDoc, item, "hsl", Math.Round(Convert.ToDouble(mod_TRC_ROLL_QTCKD_ITEM.N_SJWGT / mod_TRC_ROLL_QTCKD_ITEM.N_SJNUM), 6).ToString()); //换算率
                    CreateNode(xmlDoc, item, "invname", mod_TB_MATRL_MAIN.C_MAT_NAME);                                                                              //物料名称
                    CreateNode(xmlDoc, item, "invspec", mod_TRC_ROLL_QTCKD_ITEM.C_SPEC);                                                                            //规格
                    CreateNode(xmlDoc, item, "invtype", mod_TRC_ROLL_QTCKD_ITEM.C_STL_GRD);                                                                         //钢种
                    CreateNode(xmlDoc, item, "je", "");                                                                                                             //?
                    CreateNode(xmlDoc, item, "jhdj", "");                                                                                                           //?
                    CreateNode(xmlDoc, item, "jhje", "");                                                                                                           //?
                    CreateNode(xmlDoc, item, "jhpdzq", "");
                    CreateNode(xmlDoc, item, "measdocname", mod_TB_MATRL_MAIN.C_ZJLDWMC);                                                                           //计量单位名称
                    CreateNode(xmlDoc, item, "naccountastnum", "");
                    CreateNode(xmlDoc, item, "naccountnum", "");
                    CreateNode(xmlDoc, item, "nadjustastnum", "");
                    CreateNode(xmlDoc, item, "nadjustnum", "");
                    CreateNode(xmlDoc, item, "ncheckastnum", "");
                    CreateNode(xmlDoc, item, "nchecknum", "");
                    CreateNode(xmlDoc, item, "nprice", "");
                    CreateNode(xmlDoc, item, "nmny", "");
                    CreateNode(xmlDoc, item, "nplannedmny", "");                                              //计划金额
                    CreateNode(xmlDoc, item, "nplannedprice", "");                                            //计划单价
                    CreateNode(xmlDoc, item, "nshldtransastnum", mod_TRC_ROLL_QTCKD_ITEM.N_SJNUM.ToString()); //应转辅数量
                    CreateNode(xmlDoc, item, "pk_measdoc", mod_TB_MATRL_MAIN.C_PK_MEASDOC);                   //主计量单位
                    CreateNode(xmlDoc, item, "scrq", mod_TRC_ROLL_QTCKD_ITEM.D_PRODUCE_DATE.ToString());      //?
                    CreateNode(xmlDoc, item, "sjpdzq", "");
                    CreateNode(xmlDoc, item, "vbatchcode", mod_TRC_ROLL_QTCKD_ITEM.C_BATCH_NO);               //?
                    CreateNode(xmlDoc, item, "vfree0", "");                                                   //?
                    CreateNode(xmlDoc, item, "vfree1", mod_TRC_ROLL_QTCKD_ITEM.C_ZYX1);                       //?
                    CreateNode(xmlDoc, item, "vfree2", mod_TRC_ROLL_QTCKD_ITEM.C_ZYX2);                       //?
                    CreateNode(xmlDoc, item, "vfree3", mod_TRC_ROLL_QTCKD_ITEM.C_BZYQ);                       //?
                    CreateNode(xmlDoc, item, "vfree4", "");
                    CreateNode(xmlDoc, item, "vfree5", "");
                    CreateNode(xmlDoc, item, "vfree6", "");
                    CreateNode(xmlDoc, item, "vfree7", "");
                    CreateNode(xmlDoc, item, "vfree8", "");
                    CreateNode(xmlDoc, item, "vfree9", "");
                    CreateNode(xmlDoc, item, "vfree10", "");
                    CreateNode(xmlDoc, item, "vfreename1", ""); //?
                    CreateNode(xmlDoc, item, "vfreename2", ""); //?
                    CreateNode(xmlDoc, item, "vfreename3", ""); //?
                    CreateNode(xmlDoc, item, "vfreename4", "");
                    CreateNode(xmlDoc, item, "vfreename5", "");
                    CreateNode(xmlDoc, item, "vfreename6", "");
                    CreateNode(xmlDoc, item, "vfreename7", "");
                    CreateNode(xmlDoc, item, "vfreename8", "");
                    CreateNode(xmlDoc, item, "vfreename9", "");
                    CreateNode(xmlDoc, item, "vfreename10", "");
                    CreateNode(xmlDoc, item, "vsourcebillcode", "");
                    CreateNode(xmlDoc, item, "vuserdef1", "");
                    CreateNode(xmlDoc, item, "vuserdef2", "");
                    CreateNode(xmlDoc, item, "vuserdef3", "");
                    CreateNode(xmlDoc, item, "vuserdef4", "");
                    CreateNode(xmlDoc, item, "vuserdef5", "");
                    CreateNode(xmlDoc, item, "vuserdef6", "");
                    CreateNode(xmlDoc, item, "vuserdef7", "");
                    CreateNode(xmlDoc, item, "vuserdef8", "");
                    CreateNode(xmlDoc, item, "vuserdef9", "");
                    CreateNode(xmlDoc, item, "vuserdef10", mod_TRC_ROLL_QTCKD_ITEM.C_ID);   //自定义项
                    CreateNode(xmlDoc, item, "vuserdef11", "");
                    CreateNode(xmlDoc, item, "vuserdef12", "");
                    CreateNode(xmlDoc, item, "vuserdef13", "");
                    CreateNode(xmlDoc, item, "vuserdef14", "");
                    CreateNode(xmlDoc, item, "vuserdef15", "");
                    CreateNode(xmlDoc, item, "vuserdef16", "");
                    CreateNode(xmlDoc, item, "vuserdef17", "");
                    CreateNode(xmlDoc, item, "vuserdef18", "");
                    CreateNode(xmlDoc, item, "vuserdef19", "");
                    CreateNode(xmlDoc, item, "vuserdef20", "");
                    CreateNode(xmlDoc, item, "pk_defdoc1", "");
                    CreateNode(xmlDoc, item, "pk_defdoc2", "");
                    CreateNode(xmlDoc, item, "pk_defdoc3", "");
                    CreateNode(xmlDoc, item, "pk_defdoc4", "");
                    CreateNode(xmlDoc, item, "pk_defdoc5", "");
                    CreateNode(xmlDoc, item, "pk_defdoc6", "");
                    CreateNode(xmlDoc, item, "pk_defdoc7", "");
                    CreateNode(xmlDoc, item, "pk_defdoc8", "");
                    CreateNode(xmlDoc, item, "pk_defdoc9", "");
                    CreateNode(xmlDoc, item, "pk_defdoc10", "");
                    CreateNode(xmlDoc, item, "pk_defdoc11", "");
                    CreateNode(xmlDoc, item, "pk_defdoc12", "");
                    CreateNode(xmlDoc, item, "pk_defdoc13", "");
                    CreateNode(xmlDoc, item, "pk_defdoc14", "");
                    CreateNode(xmlDoc, item, "pk_defdoc15", "");
                    CreateNode(xmlDoc, item, "pk_defdoc16", "");
                    CreateNode(xmlDoc, item, "pk_defdoc17", "");
                    CreateNode(xmlDoc, item, "pk_defdoc18", "");
                    CreateNode(xmlDoc, item, "pk_defdoc19", "");
                    CreateNode(xmlDoc, item, "pk_defdoc20", "");
                    CreateNode(xmlDoc, item, "yy", "");
                    CreateNode(xmlDoc, item, "ztsl", "");
                    CreateNode(xmlDoc, item, "bkxcl", "");
                    CreateNode(xmlDoc, item, "chzl", "");
                    CreateNode(xmlDoc, item, "neconomicnum", "");
                    CreateNode(xmlDoc, item, "nmaxstocknum", "");
                    CreateNode(xmlDoc, item, "nminstocknum", mod_TRC_ROLL_QTCKD_ITEM.N_SJNUM.ToString());   //?
                    CreateNode(xmlDoc, item, "norderpointnum", mod_TRC_ROLL_QTCKD_ITEM.N_SJWGT.ToString()); //?
                    CreateNode(xmlDoc, item, "xczl", "");
                    CreateNode(xmlDoc, item, "nsafestocknum", "");
                    CreateNode(xmlDoc, item, "fbillflag", "");
                    CreateNode(xmlDoc, item, "vfreeid1", "");   //?
                    CreateNode(xmlDoc, item, "vfreeid2", "");   //?
                    CreateNode(xmlDoc, item, "vfreeid3", "");   //?
                    CreateNode(xmlDoc, item, "vfreeid4", "");
                    CreateNode(xmlDoc, item, "vfreeid5", "");
                    CreateNode(xmlDoc, item, "vfreeid6", "");
                    CreateNode(xmlDoc, item, "vfreeid7", "");
                    CreateNode(xmlDoc, item, "vfreeid8", "");
                    CreateNode(xmlDoc, item, "vfreeid9", "");
                    CreateNode(xmlDoc, item, "vfreeid10", "");
                    CreateNode(xmlDoc, item, "discountflag", "N");
                    CreateNode(xmlDoc, item, "laborflag", "N");
                    CreateNode(xmlDoc, item, "childsnum", "");
                    CreateNode(xmlDoc, item, "invsetparttype", "");
                    CreateNode(xmlDoc, item, "partpercent", "");
                    CreateNode(xmlDoc, item, "vnote", "");
                    CreateNode(xmlDoc, item, "vbodynote", "");
                    CreateNode(xmlDoc, item, "ccorrespondtypename", "");
                    CreateNode(xmlDoc, item, "cfirstbillbid", "");
                    CreateNode(xmlDoc, item, "cfirstbillhid", "");
                    CreateNode(xmlDoc, item, "cfirsttypename", "");
                    CreateNode(xmlDoc, item, "cfirsttype", "");
                    CreateNode(xmlDoc, item, "csourcetypename", "");
                    CreateNode(xmlDoc, item, "pk_calbody", "");
                    CreateNode(xmlDoc, item, "vcalbodyname", "");
                    CreateNode(xmlDoc, item, "ts", DateTime.Now.ToString());     //?
                    CreateNode(xmlDoc, item, "timestamp", "");                   //?
                    CreateNode(xmlDoc, item, "bodyts", DateTime.Now.ToString()); //?
                    CreateNode(xmlDoc, item, "crowno", "1");                     //行号???
                    CreateNode(xmlDoc, item, "nperiodastnum", "");               //期间业务辅数量
                    CreateNode(xmlDoc, item, "nperiodnum", "");                  //期间业务数量
                    CreateNode(xmlDoc, item, "isforeignstor", "N");
                    CreateNode(xmlDoc, item, "isgathersettle", "N");
                    CreateNode(xmlDoc, item, "csortrowno", "");
                    CreateNode(xmlDoc, item, "cvendorid", "");
                    CreateNode(xmlDoc, item, "cvendorname", "");
                    CreateNode(xmlDoc, item, "pk_cubasdoc", "");
                    CreateNode(xmlDoc, item, "pk_corp", "1001");    //公司ID
                    CreateNode(xmlDoc, item, "tbatchtime", "");
                    CreateNode(xmlDoc, item, "dproducedate", "");
                    CreateNode(xmlDoc, item, "dvalidate", "");
                    CreateNode(xmlDoc, item, "vvendbatchcode", "");
                    CreateNode(xmlDoc, item, "qualitymanflag", "");
                    CreateNode(xmlDoc, item, "qualitydaynum", "");
                    CreateNode(xmlDoc, item, "cqualitylevelid", mod_TQB_CHECKSTATE.C_ID); //?
                    CreateNode(xmlDoc, item, "vnote", "");
                    CreateNode(xmlDoc, item, "tchecktime", "");                           //?
                    CreateNode(xmlDoc, item, "vdef1", "");
                    CreateNode(xmlDoc, item, "vdef2", "");
                    CreateNode(xmlDoc, item, "vdef3", "");
                    CreateNode(xmlDoc, item, "vdef4", "");
                    CreateNode(xmlDoc, item, "vdef5", "");
                    CreateNode(xmlDoc, item, "vdef6", "");
                    CreateNode(xmlDoc, item, "vdef7", "");
                    CreateNode(xmlDoc, item, "vdef8", "");
                    CreateNode(xmlDoc, item, "vdef9", "");
                    CreateNode(xmlDoc, item, "vdef10", "");
                    CreateNode(xmlDoc, item, "vdef11", "");
                    CreateNode(xmlDoc, item, "vdef12", "");
                    CreateNode(xmlDoc, item, "vdef13", "");
                    CreateNode(xmlDoc, item, "vdef14", "");
                    CreateNode(xmlDoc, item, "vdef15", "");
                    CreateNode(xmlDoc, item, "vdef16", "");
                    CreateNode(xmlDoc, item, "vdef17", "");
                    CreateNode(xmlDoc, item, "vdef18", "");
                    CreateNode(xmlDoc, item, "vdef19", "");
                    CreateNode(xmlDoc, item, "vdef20", "");
                    CreateNode(xmlDoc, item, "naccountgrsnum", "");
                    CreateNode(xmlDoc, item, "ncheckgrsnum", "");
                    CreateNode(xmlDoc, item, "nadjustgrsnum", "");
                    CreateNode(xmlDoc, item, "nshldtransgrsnum", "");
                    CreateNode(xmlDoc, item, "cspecialbid", "");                                           //?
                    CreateNode(xmlDoc, item, "vbatchcode_temp", "");                                       //?
                    CreateNode(xmlDoc, item, "cqualitylevelname", mod_TRC_ROLL_QTCKD_ITEM.C_JUDGE_LEV_ZH); //?
                    CreateNode(xmlDoc, item, "vdef1", "");                                                 //?
                    CreateNode(xmlDoc, item, "vdef2", "");                                                 //?
                    CreateNode(xmlDoc, item, "vdef3", "");                                                 //?
                    #endregion
                    body.AppendChild(item);
                }
                xmlDoc.Save(xmlFileName);

                List <string> parem = dalSendNC.SendXML(xmlFileName);
                if (parem[0] == "1")
                {
                    return("1");
                }
                else
                {
                    return(parem[1]);
                }
            }
            catch (Exception ex)
            {
                return(ex.ToString());
            }
        }
示例#15
0
        /// <summary>
        /// 发送改判信息给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <returns></returns>
        public string SendXml_DM(string xmlFileName, string fydh)
        {
            try
            {
                string name = "FYSJ" + fydh + ".xml";
                xmlFileName += "\\NCXML\\" + name;
                Mod_TMD_DISPATCH modDispatch = dal_TMD_DISPATCH.GetModel(fydh);
                XmlDocument      xmlDoc      = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);
                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("billtype", "7F");
                root.SetAttribute("filename", name);
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("operation", "req");
                root.SetAttribute("proc", "update");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "Y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement bill = xmlDoc.CreateElement("bill");
                bill.SetAttribute("id", modDispatch.C_GUID);//发运单表头主键
                root.AppendChild(bill);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "bill_head", null);

                #region                                                                                                   //表头_order_head
                CreateNode(xmlDoc, head, "apprdate", Convert.ToDateTime(modDispatch.D_APPROVE_DT).ToString("yyy-MM-dd")); //审批日期
                CreateNode(xmlDoc, head, "bconfirm", "N");
                CreateNode(xmlDoc, head, "billdate", Convert.ToDateTime(modDispatch.D_CREATE_DT).ToString("yyy-MM-dd"));  //制单日期
                CreateNode(xmlDoc, head, "billnewaddtime", Convert.ToDateTime(modDispatch.D_CREATE_DT).ToString("yyy-MM-dd HH:mm:ss"));
                CreateNode(xmlDoc, head, "bisopen", "");
                CreateNode(xmlDoc, head, "bmissionbill", "N");
                CreateNode(xmlDoc, head, "bmustreturnbillcode", "");
                CreateNode(xmlDoc, head, "btestbyinvoice", "");
                CreateNode(xmlDoc, head, "clastmodifierid", modDispatch.C_EMP_ID);//最后修改人
                CreateNode(xmlDoc, head, "clastmodiname", "");
                CreateNode(xmlDoc, head, "curbilltype", "");
                CreateNode(xmlDoc, head, "dallpacknum", "0");
                CreateNode(xmlDoc, head, "dallvolumn", "0");
                CreateNode(xmlDoc, head, "dallweight", "0");
                CreateNode(xmlDoc, head, "dfactweight", "");
                CreateNode(xmlDoc, head, "dr", "0");
                CreateNode(xmlDoc, head, "dtotal", "");
                CreateNode(xmlDoc, head, "employee", "");
                CreateNode(xmlDoc, head, "h_confirmarrivedate", "");
                CreateNode(xmlDoc, head, "iprintcount", "");
                CreateNode(xmlDoc, head, "isendtype", "3");//运费类别
                CreateNode(xmlDoc, head, "linkman1", "");
                CreateNode(xmlDoc, head, "oprdepartname", "");
                CreateNode(xmlDoc, head, "phone1", "");
                CreateNode(xmlDoc, head, "pk_defdoc0", modDispatch.C_IS_WIRESALE_ID); //是否线材销售主键
                CreateNode(xmlDoc, head, "pk_defdoc1", "");
                CreateNode(xmlDoc, head, "pk_defdoc10", "");
                CreateNode(xmlDoc, head, "pk_defdoc11", "");
                CreateNode(xmlDoc, head, "pk_defdoc12", "");
                CreateNode(xmlDoc, head, "pk_defdoc13", "");
                CreateNode(xmlDoc, head, "pk_defdoc14", "");
                CreateNode(xmlDoc, head, "pk_defdoc15", "");
                CreateNode(xmlDoc, head, "pk_defdoc16", "");
                CreateNode(xmlDoc, head, "pk_defdoc17", "");
                CreateNode(xmlDoc, head, "pk_defdoc18", "");
                CreateNode(xmlDoc, head, "pk_defdoc19", "");
                CreateNode(xmlDoc, head, "pk_defdoc2", "");
                CreateNode(xmlDoc, head, "pk_defdoc3", "");
                CreateNode(xmlDoc, head, "pk_defdoc4", "");
                CreateNode(xmlDoc, head, "pk_defdoc5", "");
                CreateNode(xmlDoc, head, "pk_defdoc6", "");
                CreateNode(xmlDoc, head, "pk_defdoc7", "");
                CreateNode(xmlDoc, head, "pk_defdoc8", "");
                CreateNode(xmlDoc, head, "pk_defdoc9", "");
                CreateNode(xmlDoc, head, "pk_delivbill_h", "");                       //发运单表头主键
                CreateNode(xmlDoc, head, "pkapprperson", "");
                CreateNode(xmlDoc, head, "pkbillperson", modDispatch.C_CREATE_ID);    //制单人
                CreateNode(xmlDoc, head, "pkcorpforgenoid", "1001");
                CreateNode(xmlDoc, head, "pkdelivmode", modDispatch.C_SHIPVIA);       //发运方式主键
                CreateNode(xmlDoc, head, "pkdelivorg", "1001NC10000000006EHS");       //发运组织主键固定
                CreateNode(xmlDoc, head, "pkdelivroute", "1001NC10000000006EHV");     //发运路线主键 固定
                CreateNode(xmlDoc, head, "pkdriver", "");
                CreateNode(xmlDoc, head, "pkoperator", modDispatch.C_BUSINESS_ID);    //业务员主键
                CreateNode(xmlDoc, head, "pkoprdepart", modDispatch.C_BUSINESS_DEPT); //业务部门主键
                CreateNode(xmlDoc, head, "pksendperson", "");
                CreateNode(xmlDoc, head, "pktrancust", modDispatch.C_COMCAR);         //承运商
                CreateNode(xmlDoc, head, "pktranorg", "");
                CreateNode(xmlDoc, head, "pkvehicle", "");
                CreateNode(xmlDoc, head, "pkvehicletype", "");
                CreateNode(xmlDoc, head, "returndate", "");
                CreateNode(xmlDoc, head, "returntime", "");
                CreateNode(xmlDoc, head, "senddate", Convert.ToDateTime(modDispatch.D_DISP_DT).ToString("yyy-MM-dd"));//发运日期
                CreateNode(xmlDoc, head, "startdate", "");
                CreateNode(xmlDoc, head, "starttime", "");
                CreateNode(xmlDoc, head, "taudittime", "");
                CreateNode(xmlDoc, head, "tlastmodifytime", Convert.ToDateTime(modDispatch.D_MOD_DT).ToString("yyy-MM-dd HH:mm:ss")); //最后修改时间
                CreateNode(xmlDoc, head, "tmaketime", Convert.ToDateTime(modDispatch.D_CREATE_DT).ToString("yyy-MM-dd HH:mm:ss"));    // 制单时间
                CreateNode(xmlDoc, head, "ts", Convert.ToDateTime(modDispatch.D_CREATE_DT).ToString("yyy-MM-dd HH:mm:ss"));
                CreateNode(xmlDoc, head, "userid", modDispatch.C_CREATE_ID);                                                          //制单人
                CreateNode(xmlDoc, head, "vapprpersonname", "");
                CreateNode(xmlDoc, head, "vbillpersonname", "");
                CreateNode(xmlDoc, head, "vdelivbillcode", modDispatch.C_ID);//发运单单据号
                CreateNode(xmlDoc, head, "vdoname", "");
                CreateNode(xmlDoc, head, "vdrivername", "");
                CreateNode(xmlDoc, head, "vehiclelicense", "");
                CreateNode(xmlDoc, head, "vnote", "");
                CreateNode(xmlDoc, head, "voldDelivbillcode", "");
                CreateNode(xmlDoc, head, "vroutedescr", "");
                CreateNode(xmlDoc, head, "vroutename", "");
                CreateNode(xmlDoc, head, "vsendtypename", "");
                CreateNode(xmlDoc, head, "vtranname", "");
                CreateNode(xmlDoc, head, "vtranorgname", "");
                CreateNode(xmlDoc, head, "vuserdef0", modDispatch.C_IS_WIRESALE);// 是否线材销售 是/ 否  *****
                CreateNode(xmlDoc, head, "vuserdef1", "");
                CreateNode(xmlDoc, head, "vuserdef10", "");
                CreateNode(xmlDoc, head, "vuserdef11", "");
                CreateNode(xmlDoc, head, "vuserdef12", "");
                CreateNode(xmlDoc, head, "vuserdef13", "");
                CreateNode(xmlDoc, head, "vuserdef14", "");
                CreateNode(xmlDoc, head, "vuserdef15", "");
                CreateNode(xmlDoc, head, "vuserdef16", "");
                CreateNode(xmlDoc, head, "vuserdef17", "");
                CreateNode(xmlDoc, head, "vuserdef18", "");
                CreateNode(xmlDoc, head, "vuserdef19", "");
                CreateNode(xmlDoc, head, "vuserdef2", "");
                CreateNode(xmlDoc, head, "vuserdef3", "Y");                      //是否已导出
                CreateNode(xmlDoc, head, "vuserdef4", modDispatch.C_LIC_PLA_NO); //车牌号
                CreateNode(xmlDoc, head, "vuserdef5", "");
                CreateNode(xmlDoc, head, "vuserdef6", "");
                CreateNode(xmlDoc, head, "vuserdef7", "");
                CreateNode(xmlDoc, head, "vuserdef8", "");
                CreateNode(xmlDoc, head, "vuserdef9", "");
                CreateNode(xmlDoc, head, "vvehiclename", "");
                CreateNode(xmlDoc, head, "vvhcltypename", "");

                #endregion

                bill.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("bill_body");
                bill.AppendChild(body);

                DataTable dt = GetZJBList(fydh).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        int rowno = i + 1;

                        Mod_TMP_DAYPLAN modDayPlan = dal_TMP_DAYPLAN.GetModel(dt.Rows[i]["C_PLAN_ID"].ToString());
                        if (modDayPlan != null)
                        {
                            #region //实体参数

                            Mod_TMO_ORDER           modOrder           = dal_TMO_ORDER.GetModel(modDayPlan.C_PKBILLB);
                            Mod_TPB_LINEWH          mbck               = dal_TPB_LINEWH.GetModel_Interface_Trans(dt.Rows[i]["C_SEND_STOCK"].ToString()); //目标仓库
                            Mod_TPB_SLABWH          slabwh             = dal_TPB_SLABWH.GetModel_Interface_Trans(dt.Rows[i]["C_SEND_STOCK"].ToString());
                            Mod_TS_CUSTFILE         modCust            = dal_TS_CUSTFILE.GetCustModel(modDayPlan.C_PKCUST);                              //客户档案
                            Mod_TMB_AREA            modArea            = dal_TMB_AREA.GetModel(modDayPlan.C_PKARRIVEAREA);                               //区域
                            Mod_TB_MATRL_MAIN       modMat             = dal_TB_MATRL_MAIN.GetMatModel(modDayPlan.C_PKINV);                              //物料
                            Mod_TQB_CHECKSTATE      mod_TQB_CHECKSTATE = dal_TQB_CHECKSTATE.GetModelByName(dt.Rows[i]["C_ZLDJ"].ToString(), "1001");
                            Mod_TMD_DISPATCHDETAILS modfyditem         = dal_fyditem.GetModel(dt.Rows[i]["C_PK_NCID"].ToString());

                            string    addrpk   = "";
                            DataTable dtaddess = dal_TMB_AREA.GetAreaAddress(modfyditem.C_SEND_AREA).Tables[0];
                            if (dtaddess.Rows.Count > 0)
                            {
                                addrpk = dtaddess.Rows[0]["PK_ADDRESS"].ToString();
                            }
                            #endregion

                            decimal dunitprice = Convert.ToDecimal(modDayPlan.N_UNITPRICE); //含税单价
                            string  wgt        = dt.Rows[i]["N_JZ"].ToString();             //重量
                            string  num        = dt.Rows[i]["N_NUM"].ToString();            //数量
                            decimal dmoney     = dunitprice * Convert.ToDecimal(wgt);       //订单金额

                            XmlNode item = xmlDoc.CreateNode(XmlNodeType.Element, "item", null);

                            #region //表体_item
                            CreateNode(xmlDoc, item, "bappendent", "");
                            CreateNode(xmlDoc, item, "bcloseout", "");
                            CreateNode(xmlDoc, item, "bcloseout_old", "");
                            CreateNode(xmlDoc, item, "blargess", "N");
                            CreateNode(xmlDoc, item, "borderreturn", "N");
                            CreateNode(xmlDoc, item, "breceiveinform", "");
                            CreateNode(xmlDoc, item, "bsigned", "");
                            CreateNode(xmlDoc, item, "btestbyinvoice", "");
                            CreateNode(xmlDoc, item, "carrivecorpname", "");
                            CreateNode(xmlDoc, item, "cbiztype", modDayPlan.C_BIZTYPE);           //业务类型
                            CreateNode(xmlDoc, item, "ccheckstate_bid", mod_TQB_CHECKSTATE.C_ID); //质量等级**
                            CreateNode(xmlDoc, item, "ccheckstatename", "");
                            CreateNode(xmlDoc, item, "cfreezeid", "");
                            CreateNode(xmlDoc, item, "cinvmanid", "");
                            CreateNode(xmlDoc, item, "confirmarrivedate", "");
                            CreateNode(xmlDoc, item, "cquoteunitid", modDayPlan.C_UNITID);//报价计量单位ID
                            CreateNode(xmlDoc, item, "cquoteunitname", "");
                            CreateNode(xmlDoc, item, "creceiptcorp", "");
                            CreateNode(xmlDoc, item, "creceiptcorpid", modDayPlan.C_RECEIPTCORPID);//收货单位
                            CreateNode(xmlDoc, item, "csendcorp", "");
                            CreateNode(xmlDoc, item, "csendcorpid", "");
                            CreateNode(xmlDoc, item, "dcancelassistnum", "");
                            CreateNode(xmlDoc, item, "dcancelnum", "");
                            CreateNode(xmlDoc, item, "dfee", "");
                            CreateNode(xmlDoc, item, "dfeeitem", "");
                            CreateNode(xmlDoc, item, "dinvassist", num); //辅数量-件数
                            CreateNode(xmlDoc, item, "dinvnum", wgt);    //存货数量
                            CreateNode(xmlDoc, item, "dinvweight", "");
                            CreateNode(xmlDoc, item, "dmileage", "");
                            CreateNode(xmlDoc, item, "dmoney", dmoney.ToString());//订单金额
                            CreateNode(xmlDoc, item, "doutassistnum", "");
                            CreateNode(xmlDoc, item, "doutnum", "");
                            CreateNode(xmlDoc, item, "doutnummargin", "");
                            CreateNode(xmlDoc, item, "dpackboxnum", "");
                            CreateNode(xmlDoc, item, "dpacknum", "");
                            CreateNode(xmlDoc, item, "dpackvolumn", "");
                            CreateNode(xmlDoc, item, "dpackweight", "");
                            CreateNode(xmlDoc, item, "dr", "0");
                            CreateNode(xmlDoc, item, "dreturnassistnum", "");
                            CreateNode(xmlDoc, item, "dreturnnum", "");
                            CreateNode(xmlDoc, item, "dsignasnum", "");
                            CreateNode(xmlDoc, item, "dsignassistnum", "");
                            CreateNode(xmlDoc, item, "dsignnum", "");
                            CreateNode(xmlDoc, item, "dsourcerow", "");
                            CreateNode(xmlDoc, item, "dtotalout", "");
                            CreateNode(xmlDoc, item, "dunitprice", dunitprice.ToString());//含税单价
                            CreateNode(xmlDoc, item, "dvolumn", "");
                            CreateNode(xmlDoc, item, "dwaylossasnum", "");
                            CreateNode(xmlDoc, item, "dwaylossnum", "");
                            CreateNode(xmlDoc, item, "hsl", "");
                            CreateNode(xmlDoc, item, "iattitude", "");
                            CreateNode(xmlDoc, item, "ibatchstatus", "0");
                            CreateNode(xmlDoc, item, "ibetimes", "");
                            CreateNode(xmlDoc, item, "iloadnum", "");
                            CreateNode(xmlDoc, item, "ilockstatus", "");
                            CreateNode(xmlDoc, item, "ionroadtime", "");
                            CreateNode(xmlDoc, item, "ipacking", "");
                            CreateNode(xmlDoc, item, "irownumber", rowno.ToString());//行号
                            CreateNode(xmlDoc, item, "irowstatus", "0");
                            CreateNode(xmlDoc, item, "ischeckatp", "N");
                            CreateNode(xmlDoc, item, "linkman1", "");
                            CreateNode(xmlDoc, item, "nassistnetwgt", num);
                            CreateNode(xmlDoc, item, "nfeedbacknum", wgt);   //回写上游数量
                            CreateNode(xmlDoc, item, "nnetwgt", wgt);        //净重
                            CreateNode(xmlDoc, item, "nquoteunitnum", wgt);  //报价计量单位数量?-存货数量
                            CreateNode(xmlDoc, item, "nquoteunitrate", "1"); //报价计量单位换算率固定
                            CreateNode(xmlDoc, item, "ntotalshouldoutnum", "");
                            CreateNode(xmlDoc, item, "orderplantime", "");
                            CreateNode(xmlDoc, item, "packsortcode", "");
                            CreateNode(xmlDoc, item, "packsortname", "");
                            CreateNode(xmlDoc, item, "phone1", "");//****?
                            CreateNode(xmlDoc, item, "pk_corp", "");
                            CreateNode(xmlDoc, item, "pk_defdoc0", "");
                            CreateNode(xmlDoc, item, "pk_defdoc1", "");
                            CreateNode(xmlDoc, item, "pk_defdoc10", "");
                            CreateNode(xmlDoc, item, "pk_defdoc11", "");
                            CreateNode(xmlDoc, item, "pk_defdoc12", "");
                            CreateNode(xmlDoc, item, "pk_defdoc13", "");
                            CreateNode(xmlDoc, item, "pk_defdoc14", "");
                            CreateNode(xmlDoc, item, "pk_defdoc15", "");
                            CreateNode(xmlDoc, item, "pk_defdoc16", "");
                            CreateNode(xmlDoc, item, "pk_defdoc17", "");
                            CreateNode(xmlDoc, item, "pk_defdoc18", "");
                            CreateNode(xmlDoc, item, "pk_defdoc19", "");
                            CreateNode(xmlDoc, item, "pk_defdoc2", "");
                            CreateNode(xmlDoc, item, "pk_defdoc3", "");
                            CreateNode(xmlDoc, item, "pk_defdoc4", "");
                            CreateNode(xmlDoc, item, "pk_defdoc5", "");
                            CreateNode(xmlDoc, item, "pk_defdoc6", "");
                            CreateNode(xmlDoc, item, "pk_defdoc7", "");
                            CreateNode(xmlDoc, item, "pk_defdoc8", "");
                            CreateNode(xmlDoc, item, "pk_defdoc9", "");
                            CreateNode(xmlDoc, item, "pk_delivbill_b", "");                   //置空
                            CreateNode(xmlDoc, item, "pk_delivbill_h", "");
                            CreateNode(xmlDoc, item, "pk_invbasdoc", modOrder.C_INVBASDOCID); //存货档案主键
                            CreateNode(xmlDoc, item, "pk_packsort", "");
                            CreateNode(xmlDoc, item, "pk_transcontainer", "");
                            CreateNode(xmlDoc, item, "pkarriveaddress", addrpk);              //到货地点
                            CreateNode(xmlDoc, item, "pkarrivearea", modfyditem.C_SEND_AREA); //到货地区主键
                            CreateNode(xmlDoc, item, "pkarrivecorp", "");
                            CreateNode(xmlDoc, item, "pkassistmeasure", modOrder.C_FUNITID);  //辅计量单位
                            CreateNode(xmlDoc, item, "pkbasinv", modOrder.C_INVBASDOCID);     //存货档案主键
                            CreateNode(xmlDoc, item, "pkbasreceiptcorp", modCust.C_NC_ID);    //客户主键
                            CreateNode(xmlDoc, item, "pkbassendcorp", "");
                            CreateNode(xmlDoc, item, "pkconsign", "");
                            CreateNode(xmlDoc, item, "pkcorpforgenoid", modDayPlan.C_PKSALECORP); //销售公司(1001)
                            CreateNode(xmlDoc, item, "pkcusbasdoc", modCust.C_NC_ID);             //客户主键
                            CreateNode(xmlDoc, item, "pkcusmandoc", modDayPlan.C_PKCUST);         //客户管理主键
                            CreateNode(xmlDoc, item, "pkcustinvoice", "");
                            CreateNode(xmlDoc, item, "pkdayplan", "");
                            CreateNode(xmlDoc, item, "pkdestrep", "");
                            CreateNode(xmlDoc, item, "pkdeststockorg", "");
                            CreateNode(xmlDoc, item, "pkinv", modOrder.C_INVENTORYID);//存货管理档案主键
                            CreateNode(xmlDoc, item, "pkinvoice", "");
                            CreateNode(xmlDoc, item, "pkitem", "");
                            CreateNode(xmlDoc, item, "pkitemperiod", "");
                            CreateNode(xmlDoc, item, "pkoperator", modDayPlan.C_PKOPERATOR);   //业务员ID
                            CreateNode(xmlDoc, item, "pkoprdepart", modDayPlan.C_PKOPRDEPART); //业务员部门
                            CreateNode(xmlDoc, item, "pkorder", "");
                            CreateNode(xmlDoc, item, "pkorderplanid", "");
                            CreateNode(xmlDoc, item, "pkorderrow", "");
                            CreateNode(xmlDoc, item, "pkpackboxtype", "");
                            CreateNode(xmlDoc, item, "pksalecorp", "1001");
                            CreateNode(xmlDoc, item, "pksalegrp", modDayPlan.C_PKSALEORG);     //销售组织主键
                            CreateNode(xmlDoc, item, "pksendaddress", "0001AA1000000002LFNT"); //发货地点
                            CreateNode(xmlDoc, item, "pksendarea", "dqda0000000000000057");    //发货地区
                            if (mbck != null)
                            {
                                CreateNode(xmlDoc, item, "pksendstock", mbck.C_ID);//发货仓库
                            }
                            else
                            {
                                CreateNode(xmlDoc, item, "pksendstock", slabwh.C_ID);           //发货仓库
                            }
                            CreateNode(xmlDoc, item, "pksendstockorg", "1001NC10000000000669"); //发货库存组织主键-固定
                            CreateNode(xmlDoc, item, "pksrccalbodyar", "");
                            CreateNode(xmlDoc, item, "pkunit", "");
                            CreateNode(xmlDoc, item, "plantime", "");
                            CreateNode(xmlDoc, item, "receivedate", "");
                            CreateNode(xmlDoc, item, "requireday", Convert.ToDateTime(modDayPlan.D_REQUIREDATE).ToString("yyy-MM-dd")); //要求到货日期
                            CreateNode(xmlDoc, item, "sourcebillts", "");
                            CreateNode(xmlDoc, item, "ts", "");                                                                         //HH:mm:ss
                            CreateNode(xmlDoc, item, "ufdtmp", "");
                            CreateNode(xmlDoc, item, "userid", "");
                            CreateNode(xmlDoc, item, "varriveaddress", "其他地区");
                            CreateNode(xmlDoc, item, "vassistmeaname", "");
                            string batch = "";
                            if (modMat.C_MAT_TYPE == "6")
                            {
                                if (dt.Rows[i]["C_BATCH_NO"].ToString() != "")
                                {
                                    batch = dt.Rows[i]["C_BATCH_NO"].ToString();
                                }
                                else
                                {
                                    batch = dt.Rows[i]["C_STOVE"].ToString();
                                }
                            }
                            if (modMat.C_MAT_TYPE == "8")
                            {
                                batch = dt.Rows[i]["C_BATCH_NO"].ToString();
                            }
                            CreateNode(xmlDoc, item, "vbatchcode", batch);
                            CreateNode(xmlDoc, item, "vbilltype", "30");
                            CreateNode(xmlDoc, item, "vbilltypename", "");
                            CreateNode(xmlDoc, item, "vcargcode", "");
                            CreateNode(xmlDoc, item, "vconsign", "");
                            CreateNode(xmlDoc, item, "vcontainername", "");
                            CreateNode(xmlDoc, item, "vcustcode", modCust.C_NO);           //客户编码
                            CreateNode(xmlDoc, item, "vcustname", modCust.C_NAME);         //客户名称
                            CreateNode(xmlDoc, item, "vdayplancode", modDayPlan.C_PLCODE); //对应日计划单据号
                            CreateNode(xmlDoc, item, "vdestaddress", modfyditem.C_AREA);   //收货地址
                            CreateNode(xmlDoc, item, "vdestarea", modfyditem.C_SEND_AREA); //收货地区
                            CreateNode(xmlDoc, item, "vdeststoreaddre", "");
                            CreateNode(xmlDoc, item, "vdeststorename", "");
                            CreateNode(xmlDoc, item, "vdeststoreorgname", "");
                            CreateNode(xmlDoc, item, "vfree0", "");
                            CreateNode(xmlDoc, item, "vfree1", modDayPlan.C_VFREE1);                 //自由项1
                            CreateNode(xmlDoc, item, "vfree10", dt.Rows[i]["C_PK_NCID"].ToString()); //CRM发运单表体主键//C_PK_NCID
                            CreateNode(xmlDoc, item, "vfree2", modDayPlan.C_VFREE2);                 //自由项2
                            CreateNode(xmlDoc, item, "vfree3", dt.Rows[i]["C_BZYQ"].ToString());     //包装钢坯传空
                            CreateNode(xmlDoc, item, "vfree4", "");
                            CreateNode(xmlDoc, item, "vfree5", "");
                            CreateNode(xmlDoc, item, "vfree6", "");
                            CreateNode(xmlDoc, item, "vfree7", "");
                            CreateNode(xmlDoc, item, "vfree8", modDayPlan.C_ID);    //CRM发运日计划主键
                            CreateNode(xmlDoc, item, "vfree9", modDispatch.C_GUID); // CRM发运单表头主键
                            CreateNode(xmlDoc, item, "vfreeid1", "");
                            CreateNode(xmlDoc, item, "vfreeid10", "");
                            CreateNode(xmlDoc, item, "vfreeid2", "");
                            CreateNode(xmlDoc, item, "vfreeid3", "");
                            CreateNode(xmlDoc, item, "vfreeid4", "");
                            CreateNode(xmlDoc, item, "vfreeid5", "");
                            CreateNode(xmlDoc, item, "vfreeid6", "");
                            CreateNode(xmlDoc, item, "vfreeid7", "");
                            CreateNode(xmlDoc, item, "vfreeid8", "");
                            CreateNode(xmlDoc, item, "vfreeid9", "");
                            CreateNode(xmlDoc, item, "vfreename1", "");
                            CreateNode(xmlDoc, item, "vfreename10", "");
                            CreateNode(xmlDoc, item, "vfreename2", "");
                            CreateNode(xmlDoc, item, "vfreename3", "");
                            CreateNode(xmlDoc, item, "vfreename4", "");
                            CreateNode(xmlDoc, item, "vfreename5", "");
                            CreateNode(xmlDoc, item, "vfreename6", "");
                            CreateNode(xmlDoc, item, "vfreename7", "");
                            CreateNode(xmlDoc, item, "vfreename8", "");
                            CreateNode(xmlDoc, item, "vfreename9", "");
                            CreateNode(xmlDoc, item, "vinvcode", modMat.C_MAT_CODE);
                            CreateNode(xmlDoc, item, "vinvname", "");
                            CreateNode(xmlDoc, item, "vinvoicecode", "");
                            CreateNode(xmlDoc, item, "vitemname", "");
                            CreateNode(xmlDoc, item, "vitemperiodname", "");
                            CreateNode(xmlDoc, item, "vnote", "");
                            CreateNode(xmlDoc, item, "voperatorname", "");
                            CreateNode(xmlDoc, item, "voprdepartname", "");
                            CreateNode(xmlDoc, item, "vordercode", modDayPlan.C_SALECODE);//销售单据号
                            CreateNode(xmlDoc, item, "vreceiptcorpname", "");
                            CreateNode(xmlDoc, item, "vsalecorpname", "");
                            CreateNode(xmlDoc, item, "vsaleorgname", "");
                            CreateNode(xmlDoc, item, "vsendaddr", "");
                            CreateNode(xmlDoc, item, "vsendaddress", "");
                            CreateNode(xmlDoc, item, "vsendarea", "");
                            CreateNode(xmlDoc, item, "vsendcorpname", "");
                            CreateNode(xmlDoc, item, "vsendstoreaddre", "");
                            CreateNode(xmlDoc, item, "vsendstorename", "");
                            CreateNode(xmlDoc, item, "vsendstoreorgaddre", "");
                            CreateNode(xmlDoc, item, "vsendstoreorgname", "");
                            CreateNode(xmlDoc, item, "vsignname", "");
                            CreateNode(xmlDoc, item, "vsignnote", "");
                            CreateNode(xmlDoc, item, "vspec", modMat.C_SPEC);           //规格
                            CreateNode(xmlDoc, item, "vsrccalbodyarname", "");
                            CreateNode(xmlDoc, item, "vtype", modMat.C_STL_GRD);        //钢种
                            CreateNode(xmlDoc, item, "vunit", modMat.C_ZJLDWMC);        //主计量单位名称
                            CreateNode(xmlDoc, item, "vuserdef0", "");
                            CreateNode(xmlDoc, item, "vuserdef1", "");                  //计量毛重日期*****
                            CreateNode(xmlDoc, item, "vuserdef10", modDayPlan.C_CONNO); //合同号
                            CreateNode(xmlDoc, item, "vuserdef11", "");
                            CreateNode(xmlDoc, item, "vuserdef12", "");
                            CreateNode(xmlDoc, item, "vuserdef13", "");
                            CreateNode(xmlDoc, item, "vuserdef14", "");
                            CreateNode(xmlDoc, item, "vuserdef15", "");
                            CreateNode(xmlDoc, item, "vuserdef16", "");
                            CreateNode(xmlDoc, item, "vuserdef17", "");
                            CreateNode(xmlDoc, item, "vuserdef18", "");
                            CreateNode(xmlDoc, item, "vuserdef19", "");
                            CreateNode(xmlDoc, item, "vuserdef2", ""); //毛重*****
                            CreateNode(xmlDoc, item, "vuserdef3", ""); //计量皮重日期****
                            CreateNode(xmlDoc, item, "vuserdef4", ""); //皮重
                            CreateNode(xmlDoc, item, "vuserdef5", ""); //净重
                            CreateNode(xmlDoc, item, "vuserdef6", ""); //计量毛重时间
                            CreateNode(xmlDoc, item, "vuserdef7", ""); //计量皮重时间
                            CreateNode(xmlDoc, item, "vuserdef8", "");
                            CreateNode(xmlDoc, item, "vuserdef9", "");
                            #endregion

                            body.AppendChild(item);
                        }
                    }
                }
                xmlDoc.Save(xmlFileName);
                List <string> parem = dalSendNC.SendXML(xmlFileName);
                if (parem[0] == "1")
                {
                    return("1");
                }
                else
                {
                    return(parem[1]);
                }
            }
            catch (Exception ex)
            {
                return(ex.ToString());
            }
        }
示例#16
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(Mod_TPB_SLABWH model)
 {
     return(dal.Update(model));
 }
        /// <summary>
        /// 发送转库单信息给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <param name="dh">转库单号</param>
        /// <param name="dhid">转库单ID</param>
        /// <returns></returns>
        public string SendXml_GP4I(string xmlFileName, string dh, string dhid, string C_SLABWH_LOC_CODE, string C_SLABWH_AREA_CODE)
        {
            try
            {
                string urlname = "GP4I" + dh + ".XML";//XML名称

                string url = xmlFileName + "\\NCXML";
                if (!Directory.Exists(url))
                {
                    Directory.CreateDirectory(url);
                }

                DataTable dt = dal_TSC_SLAB_MAIN.Get_ZK_List_Trans(dh, dhid).Tables[0];
                DataRow   dr = null;
                if (dt.Rows.Count > 0)
                {
                    dr = dt.Rows[0];
                }

                if (dr == null)
                {
                    return("调拨失败");
                }

                Mod_TB_MATRL_MAIN mod_TB_MATRL_MAIN = dal_TB_MATRL_MAIN.GetModel(dr["C_MAT_CODE"].ToString());
                Mod_TPB_SLABWH    yck         = dal_TPB_SLABWH.GetModel_Interface_Trans(dr["C_STOCK_CODE"].ToString());    //源仓库
                Mod_TPB_SLABWH    mbck        = dal_TPB_SLABWH.GetModel_Interface_Trans(dr["C_STOCK_CODE_TO"].ToString()); //目标仓库
                string            djrq        = DateTime.Now.ToString("yyyy-MM-dd");
                Mod_TS_USER       mod_TS_USER = dal_TS_USER.GetModel(RV.UI.UserInfo.userID);                               //获取操作人
                string            bmid        = dal_TS_DEPT.GetDept(mod_TS_USER.C_ACCOUNT);
                if (bmid == "")
                {
                    return("操作人部门未维护!");
                }
                Mod_TS_DEPT        mod_TS_DEPT        = dal_TS_DEPT.GetModel(bmid);//获取部门
                Mod_TQB_CHECKSTATE mod_TQB_CHECKSTATE = dal_TQB_CHECKSTATE.GetModelByName(dr["ZLDJ"].ToString(), "1001");
                //Mod_TB_STD_CONFIG mod_TB_STD_CONFIG = dal_TB_STD_CONFIG.GetModel_Interface_Trans(dr["C_STD_CODE"].ToString(), dr["C_STL_GRD"].ToString());

                Mod_TSC_SLAB_MAIN modSms = new Mod_TSC_SLAB_MAIN();

                if (dr["C_BATCH_NO"].ToString() != "")
                {
                    modSms = dal_TSC_SLAB_MAIN.GetModel_Batch(dr["C_STD_CODE"].ToString(), dr["C_STL_GRD"].ToString(), dr["C_BATCH_NO"].ToString());
                }
                else
                {
                    modSms = dal_TSC_SLAB_MAIN.GetModel(dr["C_STD_CODE"].ToString(), dr["C_STL_GRD"].ToString(), dr["C_STOVE"].ToString());
                }

                //Mod_TSC_SLAB_MAIN modSms = dal_TSC_SLAB_MAIN.GetModel(dr["C_STD_CODE"].ToString(), dr["C_STL_GRD"].ToString(), dr["C_STOVE"].ToString());

                if (mod_TB_MATRL_MAIN == null)
                {
                    return("调拨失败");
                }
                if (yck == null)
                {
                    return("调拨失败");
                }
                if (mbck == null)
                {
                    return("调拨失败");
                }
                if (mod_TS_USER == null)
                {
                    return("调拨失败");
                }
                if (mod_TQB_CHECKSTATE == null)
                {
                    return("调拨失败,没有找到对应的质量等级");
                }
                if (modSms == null)
                {
                    return("调拨失败,没有找到对应的自由项");
                }

                string C_SLABWH_LOC_NC_ID   = "";
                string C_SLABWH_LOC_NC_CODE = "";
                string C_SLABWH_LOC_NC_NAME = "";

                //if (yck.C_SLABWH_CODE == "132" || yck.C_SLABWH_CODE == "593")
                if (yck.C_SLABWH_CODE == "132")
                {
                    DataTable dtLOC = dal_TPB_SLABWH.GetList_NC_Loc(C_SLABWH_LOC_CODE, yck.C_SLABWH_CODE, C_SLABWH_AREA_CODE).Tables[0];
                    if (dtLOC.Rows.Count > 0)
                    {
                        C_SLABWH_LOC_NC_ID   = dtLOC.Rows[0]["LOC_ID"].ToString();
                        C_SLABWH_LOC_NC_CODE = dtLOC.Rows[0]["C_SLABWH_LOC_CODE"].ToString();
                        C_SLABWH_LOC_NC_NAME = dtLOC.Rows[0]["C_SLABWH_LOC_NAME"].ToString();
                    }
                }

                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("billtype", "4K");
                root.SetAttribute("filename", urlname);
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("operation", "req");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement bill = xmlDoc.CreateElement("bill");
                #region//节点属性
                bill.SetAttribute("id", "GP" + dhid);
                #endregion
                root.AppendChild(bill);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "bill_head", null);

                #region //表头_order_head
                CreateNode(xmlDoc, head, "ctjname", "");
                CreateNode(xmlDoc, head, "bz", "");
                CreateNode(xmlDoc, head, "cbilltypecode", "4K");        //库存单据类型编码
                CreateNode(xmlDoc, head, "cinbsrid", "");
                CreateNode(xmlDoc, head, "cinbsrname", "");
                CreateNode(xmlDoc, head, "cindeptid", mod_TS_DEPT.C_ID);          //入库部门ID
                CreateNode(xmlDoc, head, "cindeptname", mod_TS_DEPT.C_NAME);
                CreateNode(xmlDoc, head, "cinwarehouseid", mbck.C_ID);            //入库仓库ID
                CreateNode(xmlDoc, head, "cinwarehousename", mbck.C_SLABWH_NAME); //仓库名称
                CreateNode(xmlDoc, head, "isLocatorMgtIn", "0");
                CreateNode(xmlDoc, head, "isWasteWhIn", "0");
                CreateNode(xmlDoc, head, "whreservedptyin", "");
                CreateNode(xmlDoc, head, "islocatormgtin", "0");
                CreateNode(xmlDoc, head, "iswastewhin", "0");
                CreateNode(xmlDoc, head, "whreservedptyin", "");
                CreateNode(xmlDoc, head, "coutbsor", "");
                CreateNode(xmlDoc, head, "coutbsorname", "");
                CreateNode(xmlDoc, head, "coutdeptid", mod_TS_DEPT.C_ID);         //出库部门ID
                CreateNode(xmlDoc, head, "coutdeptname", mod_TS_DEPT.C_NAME);     //出库部门名称
                CreateNode(xmlDoc, head, "coutwarehouseid", yck.C_ID);            //出库仓库ID
                CreateNode(xmlDoc, head, "coutwarehousename", yck.C_SLABWH_NAME); //仓库名称
                CreateNode(xmlDoc, head, "isLocatorMgtOut", "0");
                CreateNode(xmlDoc, head, "isWasteWhOut", "0");
                CreateNode(xmlDoc, head, "whReservedPtyOut", "");
                CreateNode(xmlDoc, head, "islocatormgtout", "0");
                CreateNode(xmlDoc, head, "iswastewhout", "0");
                CreateNode(xmlDoc, head, "whreservedptyout", "");
                CreateNode(xmlDoc, head, "cshlddiliverdate", djrq); //单据日期
                CreateNode(xmlDoc, head, "ctj", "");
                CreateNode(xmlDoc, head, "dbilldate", djrq);        //单据日期
                CreateNode(xmlDoc, head, "nfixdisassemblymny", ""); //组装拆卸费用
                CreateNode(xmlDoc, head, "pdfs", "");
                CreateNode(xmlDoc, head, "pk_corp", "1001");        //公司ID
                CreateNode(xmlDoc, head, "vbillcode", dh);          //单据号
                CreateNode(xmlDoc, head, "vnote", "");              //备注
                CreateNode(xmlDoc, head, "vshldarrivedate", djrq);  //应到货日期
                CreateNode(xmlDoc, head, "vuserdef1", "");
                CreateNode(xmlDoc, head, "vuserdef2", "");
                CreateNode(xmlDoc, head, "vuserdef3", "");
                CreateNode(xmlDoc, head, "vuserdef4", "");
                CreateNode(xmlDoc, head, "vuserdef5", "");
                CreateNode(xmlDoc, head, "vuserdef6", "");
                CreateNode(xmlDoc, head, "vuserdef7", "");
                CreateNode(xmlDoc, head, "vuserdef8", "");
                CreateNode(xmlDoc, head, "vuserdef9", "");
                CreateNode(xmlDoc, head, "vuserdef10", "");
                CreateNode(xmlDoc, head, "vuserdef11", "");
                CreateNode(xmlDoc, head, "vuserdef12", "");
                CreateNode(xmlDoc, head, "vuserdef13", "");
                CreateNode(xmlDoc, head, "vuserdef14", "");
                CreateNode(xmlDoc, head, "vuserdef15", "");
                CreateNode(xmlDoc, head, "vuserdef16", "");
                CreateNode(xmlDoc, head, "vuserdef17", "");
                CreateNode(xmlDoc, head, "vuserdef18", "");
                CreateNode(xmlDoc, head, "vuserdef19", "");
                CreateNode(xmlDoc, head, "vuserdef20", "");
                CreateNode(xmlDoc, head, "vuserdef11h", "");
                CreateNode(xmlDoc, head, "vuserdef12h", "");
                CreateNode(xmlDoc, head, "vuserdef13h", "");
                CreateNode(xmlDoc, head, "vuserdef14h", "");
                CreateNode(xmlDoc, head, "vuserdef15h", "");
                CreateNode(xmlDoc, head, "vuserdef16h", "");
                CreateNode(xmlDoc, head, "vuserdef17h", "");
                CreateNode(xmlDoc, head, "vuserdef18h", "");
                CreateNode(xmlDoc, head, "vuserdef19h", "");
                CreateNode(xmlDoc, head, "vuserdef20h", "");
                CreateNode(xmlDoc, head, "pk_defdoc1", "");
                CreateNode(xmlDoc, head, "pk_defdoc2", "");
                CreateNode(xmlDoc, head, "pk_defdoc3", "");
                CreateNode(xmlDoc, head, "pk_defdoc4", "");
                CreateNode(xmlDoc, head, "pk_defdoc5", "");
                CreateNode(xmlDoc, head, "pk_defdoc6", "");
                CreateNode(xmlDoc, head, "pk_defdoc7", "");
                CreateNode(xmlDoc, head, "pk_defdoc8", "");
                CreateNode(xmlDoc, head, "pk_defdoc9", "");
                CreateNode(xmlDoc, head, "pk_defdoc10", "");
                CreateNode(xmlDoc, head, "pk_defdoc1h", "");
                CreateNode(xmlDoc, head, "pk_defdoc2h", "");
                CreateNode(xmlDoc, head, "pk_defdoc3h", "");
                CreateNode(xmlDoc, head, "pk_defdoc4h", "");
                CreateNode(xmlDoc, head, "pk_defdoc5h", "");
                CreateNode(xmlDoc, head, "pk_defdoc6h", "");
                CreateNode(xmlDoc, head, "pk_defdoc7h", "");
                CreateNode(xmlDoc, head, "pk_defdoc8h", "");
                CreateNode(xmlDoc, head, "pk_defdoc9h", "");
                CreateNode(xmlDoc, head, "pk_defdoc10h", "");
                CreateNode(xmlDoc, head, "pk_defdoc11", "");
                CreateNode(xmlDoc, head, "pk_defdoc12", "");
                CreateNode(xmlDoc, head, "pk_defdoc13", "");
                CreateNode(xmlDoc, head, "pk_defdoc14", "");
                CreateNode(xmlDoc, head, "pk_defdoc15", "");
                CreateNode(xmlDoc, head, "pk_defdoc16", "");
                CreateNode(xmlDoc, head, "pk_defdoc17", "");
                CreateNode(xmlDoc, head, "pk_defdoc18", "");
                CreateNode(xmlDoc, head, "pk_defdoc19", "");
                CreateNode(xmlDoc, head, "pk_defdoc20", "");
                CreateNode(xmlDoc, head, "pk_defdoc11h", "");
                CreateNode(xmlDoc, head, "pk_defdoc12h", "");
                CreateNode(xmlDoc, head, "pk_defdoc13h", "");
                CreateNode(xmlDoc, head, "pk_defdoc14h", "");
                CreateNode(xmlDoc, head, "pk_defdoc15h", "");
                CreateNode(xmlDoc, head, "pk_defdoc16h", "");
                CreateNode(xmlDoc, head, "pk_defdoc17h", "");
                CreateNode(xmlDoc, head, "pk_defdoc18h", "");
                CreateNode(xmlDoc, head, "pk_defdoc19h", "");
                CreateNode(xmlDoc, head, "pk_defdoc20h", "");
                CreateNode(xmlDoc, head, "vuserdef1h", "");
                CreateNode(xmlDoc, head, "vuserdef2h", "");
                CreateNode(xmlDoc, head, "vuserdef3h", "");
                CreateNode(xmlDoc, head, "vuserdef4h", "");
                CreateNode(xmlDoc, head, "vuserdef5h", "");
                CreateNode(xmlDoc, head, "vuserdef6h", "");
                CreateNode(xmlDoc, head, "vuserdef7h", "");
                CreateNode(xmlDoc, head, "vuserdef8h", "");
                CreateNode(xmlDoc, head, "vuserdef9h", "");
                CreateNode(xmlDoc, head, "vuserdef10h", "");
                CreateNode(xmlDoc, head, "cauditorid", "");
                CreateNode(xmlDoc, head, "cauditorname", "");
                CreateNode(xmlDoc, head, "coperatorid", mod_TS_USER.C_ID);      //制单人
                CreateNode(xmlDoc, head, "coperatorname", mod_TS_USER.C_NAME);  //制单人名称
                CreateNode(xmlDoc, head, "vadjuster", "");
                CreateNode(xmlDoc, head, "vadjustername", "");
                CreateNode(xmlDoc, head, "coperatoridnow", "");
                CreateNode(xmlDoc, head, "ctjname", "");
                CreateNode(xmlDoc, head, "pk_calbody_in", "1001NC10000000000669");
                CreateNode(xmlDoc, head, "pk_calbody_out", "1001NC10000000000669");
                CreateNode(xmlDoc, head, "vcalbody_inname", "邢钢库存组织");
                CreateNode(xmlDoc, head, "vcalbody_outname", "邢钢库存组织");
                CreateNode(xmlDoc, head, "ts", DateTime.Now.ToString());
                CreateNode(xmlDoc, head, "timestamp", "");      //?
                CreateNode(xmlDoc, head, "headts", DateTime.Now.ToString());
                CreateNode(xmlDoc, head, "isforeignstor_in", "N");
                CreateNode(xmlDoc, head, "isgathersettle_in", "N");
                CreateNode(xmlDoc, head, "isforeignstor_out", "N");
                CreateNode(xmlDoc, head, "isgathersettle_out", "N");
                CreateNode(xmlDoc, head, "icheckmode", "");
                CreateNode(xmlDoc, head, "fassistantflag", "N");        //是否计算期间业务量
                CreateNode(xmlDoc, head, "fbillflag", "");
                CreateNode(xmlDoc, head, "vostatus", "");
                CreateNode(xmlDoc, head, "iprintcount", "");
                CreateNode(xmlDoc, head, "clastmodiid", mod_TS_USER.C_ID);          //最后修改人
                CreateNode(xmlDoc, head, "clastmodiname", mod_TS_USER.C_NAME);      //最后修改人名称
                CreateNode(xmlDoc, head, "tlastmoditime", DateTime.Now.ToString()); //最后修改时间
                CreateNode(xmlDoc, head, "cnxtbilltypecode", "4I");
                CreateNode(xmlDoc, head, "cspecialhid", "");

                #endregion
                bill.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("bill_body");
                bill.AppendChild(body);

                XmlNode item = xmlDoc.CreateNode(XmlNodeType.Element, "item", null);
                #region                                                                  //表体_item
                CreateNode(xmlDoc, item, "csourcetypename", "");
                CreateNode(xmlDoc, item, "cinvbasid", mod_TB_MATRL_MAIN.C_PK_INVBASDOC); //来源单据号
                CreateNode(xmlDoc, item, "pk_invbasdoc", mod_TB_MATRL_MAIN.C_PK_INVBASDOC);
                CreateNode(xmlDoc, item, "fixedflag", "N");
                CreateNode(xmlDoc, item, "bgssl", "");
                CreateNode(xmlDoc, item, "castunitid", mod_TB_MATRL_MAIN.C_FJLDW);      //辅计量单位ID
                CreateNode(xmlDoc, item, "castunitname", mod_TB_MATRL_MAIN.C_FJLDWMC);
                CreateNode(xmlDoc, item, "cinventorycode", mod_TB_MATRL_MAIN.C_MAT_CODE);
                CreateNode(xmlDoc, item, "cinventoryid", mod_TB_MATRL_MAIN.C_PK_INVMANDOC);     //存货ID
                CreateNode(xmlDoc, item, "cinvmanid", mod_TB_MATRL_MAIN.C_PK_INVBASDOC);
                CreateNode(xmlDoc, item, "isLotMgt", "1");
                CreateNode(xmlDoc, item, "isSerialMgt", "0");
                CreateNode(xmlDoc, item, "isValidateMgt", "0");
                CreateNode(xmlDoc, item, "isAstUOMmgt", "1");
                CreateNode(xmlDoc, item, "isFreeItemMgt", "1");
                CreateNode(xmlDoc, item, "isSet", "0");
                CreateNode(xmlDoc, item, "standStoreUOM", "");
                CreateNode(xmlDoc, item, "defaultAstUOM", mod_TB_MATRL_MAIN.C_FJLDW);
                CreateNode(xmlDoc, item, "isSellProxy", "0");
                CreateNode(xmlDoc, item, "qualityDay", "");
                CreateNode(xmlDoc, item, "invReservedPty", "");
                CreateNode(xmlDoc, item, "isSolidConvRate", "0");
                CreateNode(xmlDoc, item, "islotmgt", "1");
                CreateNode(xmlDoc, item, "isserialmgt", "0");
                CreateNode(xmlDoc, item, "isvalidatemgt", "0");
                CreateNode(xmlDoc, item, "isastuommgt", "1");
                CreateNode(xmlDoc, item, "isfreeitemmgt", "1");
                CreateNode(xmlDoc, item, "isset", "0");
                CreateNode(xmlDoc, item, "standstoreuom", "");
                CreateNode(xmlDoc, item, "defaultastuom", mod_TB_MATRL_MAIN.C_FJLDW);
                CreateNode(xmlDoc, item, "issellproxy", "0");
                CreateNode(xmlDoc, item, "qualityday", "");
                CreateNode(xmlDoc, item, "invreservedpty", "");
                CreateNode(xmlDoc, item, "issolidconvrate", "0");
                CreateNode(xmlDoc, item, "csourcebillbid", "");
                CreateNode(xmlDoc, item, "csourcebillhid", "");
                CreateNode(xmlDoc, item, "csourcetype", "");
                CreateNode(xmlDoc, item, "cspaceid", C_SLABWH_LOC_NC_ID);
                CreateNode(xmlDoc, item, "cspacecode", C_SLABWH_LOC_NC_CODE);
                CreateNode(xmlDoc, item, "cspacename", C_SLABWH_LOC_NC_NAME);
                CreateNode(xmlDoc, item, "cspecialhid", "");    //???
                CreateNode(xmlDoc, item, "cwarehouseid", "");
                CreateNode(xmlDoc, item, "cwarehousename", "");
                CreateNode(xmlDoc, item, "isLocatorMgt", "");
                CreateNode(xmlDoc, item, "isWasteWh", "");
                CreateNode(xmlDoc, item, "whreservedpty", "");
                CreateNode(xmlDoc, item, "islocatormgt", "");
                CreateNode(xmlDoc, item, "iswastewh", "");
                CreateNode(xmlDoc, item, "whreservedpty", "");
                CreateNode(xmlDoc, item, "cyfsl", "");
                CreateNode(xmlDoc, item, "cysl", "");
                CreateNode(xmlDoc, item, "desl", "");
                CreateNode(xmlDoc, item, "dshldtransnum", dr["wgt"].ToString());        //应转数量
                CreateNode(xmlDoc, item, "dvalidate", "");
                CreateNode(xmlDoc, item, "fbillrowflag", "");
                CreateNode(xmlDoc, item, "hlzl", "");
                CreateNode(xmlDoc, item, "hsl", Math.Round(Convert.ToDouble(dr["wgt"]) / Convert.ToDouble(dr["qua"]), 6).ToString()); //换算率
                CreateNode(xmlDoc, item, "invname", mod_TB_MATRL_MAIN.C_MAT_NAME);                                                    //物料名称
                CreateNode(xmlDoc, item, "invspec", dr["C_SPEC"].ToString());                                                         //规格
                CreateNode(xmlDoc, item, "invtype", dr["C_STL_GRD"].ToString());                                                      //钢种
                CreateNode(xmlDoc, item, "je", "");
                CreateNode(xmlDoc, item, "jhdj", "");
                CreateNode(xmlDoc, item, "jhje", "");
                CreateNode(xmlDoc, item, "jhpdzq", "");
                CreateNode(xmlDoc, item, "measdocname", mod_TB_MATRL_MAIN.C_ZJLDWMC);   //计量单位名称
                CreateNode(xmlDoc, item, "naccountastnum", "");
                CreateNode(xmlDoc, item, "naccountnum", "");
                CreateNode(xmlDoc, item, "nadjustastnum", "");
                CreateNode(xmlDoc, item, "nadjustnum", "");
                CreateNode(xmlDoc, item, "ncheckastnum", "");
                CreateNode(xmlDoc, item, "nchecknum", "");
                CreateNode(xmlDoc, item, "nprice", "");
                CreateNode(xmlDoc, item, "nmny", "");
                CreateNode(xmlDoc, item, "nplannedmny", "");                            //计划金额
                CreateNode(xmlDoc, item, "nplannedprice", "");                          //计划单价
                CreateNode(xmlDoc, item, "nshldtransastnum", dr["qua"].ToString());     //应转数量
                CreateNode(xmlDoc, item, "pk_measdoc", mod_TB_MATRL_MAIN.C_PK_MEASDOC); //主计量单位
                CreateNode(xmlDoc, item, "scrq", djrq);                                 //生产日期
                CreateNode(xmlDoc, item, "sjpdzq", "");
                string vbatchcode = "";
                if (dr["C_BATCH_NO"].ToString() != "")
                {
                    vbatchcode = dr["C_BATCH_NO"].ToString();
                }
                else
                {
                    vbatchcode = dr["C_STOVE"].ToString();
                }
                CreateNode(xmlDoc, item, "vbatchcode", vbatchcode); //炉号
                CreateNode(xmlDoc, item, "vfree0", "");             //?
                CreateNode(xmlDoc, item, "vfree1", modSms.C_ZYX1);  //自由项1
                CreateNode(xmlDoc, item, "vfree2", modSms.C_ZYX2);  //自由项2
                CreateNode(xmlDoc, item, "vfree3", "");             //包装要求
                CreateNode(xmlDoc, item, "vfree4", "");
                CreateNode(xmlDoc, item, "vfree5", "");
                CreateNode(xmlDoc, item, "vfree6", "");
                CreateNode(xmlDoc, item, "vfree7", "");
                CreateNode(xmlDoc, item, "vfree8", "");
                CreateNode(xmlDoc, item, "vfree9", "");
                CreateNode(xmlDoc, item, "vfree10", "");
                CreateNode(xmlDoc, item, "vfreename1", "");     //?
                CreateNode(xmlDoc, item, "vfreename2", "");     //?
                CreateNode(xmlDoc, item, "vfreename3", "");     //?
                CreateNode(xmlDoc, item, "vfreename4", "");
                CreateNode(xmlDoc, item, "vfreename5", "");
                CreateNode(xmlDoc, item, "vfreename6", "");
                CreateNode(xmlDoc, item, "vfreename7", "");
                CreateNode(xmlDoc, item, "vfreename8", "");
                CreateNode(xmlDoc, item, "vfreename9", "");
                CreateNode(xmlDoc, item, "vfreename10", "");
                CreateNode(xmlDoc, item, "vsourcebillcode", "");
                CreateNode(xmlDoc, item, "vuserdef1", "");
                CreateNode(xmlDoc, item, "vuserdef2", "");
                CreateNode(xmlDoc, item, "vuserdef3", "");
                CreateNode(xmlDoc, item, "vuserdef4", "");
                CreateNode(xmlDoc, item, "vuserdef5", "");
                CreateNode(xmlDoc, item, "vuserdef6", "");
                CreateNode(xmlDoc, item, "vuserdef7", "");
                CreateNode(xmlDoc, item, "vuserdef8", "");
                CreateNode(xmlDoc, item, "vuserdef9", "");
                CreateNode(xmlDoc, item, "vuserdef10", dhid);   //自定义项
                CreateNode(xmlDoc, item, "vuserdef11", "");
                CreateNode(xmlDoc, item, "vuserdef12", "");
                CreateNode(xmlDoc, item, "vuserdef13", "");
                CreateNode(xmlDoc, item, "vuserdef14", "");
                CreateNode(xmlDoc, item, "vuserdef15", "");
                CreateNode(xmlDoc, item, "vuserdef16", "");
                CreateNode(xmlDoc, item, "vuserdef17", "");
                CreateNode(xmlDoc, item, "vuserdef18", "");
                CreateNode(xmlDoc, item, "vuserdef19", "");
                CreateNode(xmlDoc, item, "vuserdef20", "");
                CreateNode(xmlDoc, item, "pk_defdoc1", "");
                CreateNode(xmlDoc, item, "pk_defdoc2", "");
                CreateNode(xmlDoc, item, "pk_defdoc3", "");
                CreateNode(xmlDoc, item, "pk_defdoc4", "");
                CreateNode(xmlDoc, item, "pk_defdoc5", "");
                CreateNode(xmlDoc, item, "pk_defdoc6", "");
                CreateNode(xmlDoc, item, "pk_defdoc7", "");
                CreateNode(xmlDoc, item, "pk_defdoc8", "");
                CreateNode(xmlDoc, item, "pk_defdoc9", "");
                CreateNode(xmlDoc, item, "pk_defdoc10", "");
                CreateNode(xmlDoc, item, "pk_defdoc11", "");
                CreateNode(xmlDoc, item, "pk_defdoc12", "");
                CreateNode(xmlDoc, item, "pk_defdoc13", "");
                CreateNode(xmlDoc, item, "pk_defdoc14", "");
                CreateNode(xmlDoc, item, "pk_defdoc15", "");
                CreateNode(xmlDoc, item, "pk_defdoc16", "");
                CreateNode(xmlDoc, item, "pk_defdoc17", "");
                CreateNode(xmlDoc, item, "pk_defdoc18", "");
                CreateNode(xmlDoc, item, "pk_defdoc19", "");
                CreateNode(xmlDoc, item, "pk_defdoc20", "");
                CreateNode(xmlDoc, item, "yy", "");
                CreateNode(xmlDoc, item, "ztsl", "");
                CreateNode(xmlDoc, item, "bkxcl", "");
                CreateNode(xmlDoc, item, "chzl", "");
                CreateNode(xmlDoc, item, "neconomicnum", "");
                CreateNode(xmlDoc, item, "nmaxstocknum", "");
                CreateNode(xmlDoc, item, "nminstocknum", dr["qua"].ToString());   //?
                CreateNode(xmlDoc, item, "norderpointnum", dr["wgt"].ToString()); //?
                CreateNode(xmlDoc, item, "xczl", "");
                CreateNode(xmlDoc, item, "nsafestocknum", "");
                CreateNode(xmlDoc, item, "fbillflag", "");
                CreateNode(xmlDoc, item, "vfreeid1", "");       //?
                CreateNode(xmlDoc, item, "vfreeid2", "");       //?
                CreateNode(xmlDoc, item, "vfreeid3", "");       //?
                CreateNode(xmlDoc, item, "vfreeid4", "");
                CreateNode(xmlDoc, item, "vfreeid5", "");
                CreateNode(xmlDoc, item, "vfreeid6", "");
                CreateNode(xmlDoc, item, "vfreeid7", "");
                CreateNode(xmlDoc, item, "vfreeid8", "");
                CreateNode(xmlDoc, item, "vfreeid9", "");
                CreateNode(xmlDoc, item, "vfreeid10", "");
                CreateNode(xmlDoc, item, "discountflag", "N");
                CreateNode(xmlDoc, item, "laborflag", "N");
                CreateNode(xmlDoc, item, "childsnum", "");
                CreateNode(xmlDoc, item, "invsetparttype", "");
                CreateNode(xmlDoc, item, "partpercent", "");
                CreateNode(xmlDoc, item, "vnote", "");
                CreateNode(xmlDoc, item, "vbodynote", "");
                CreateNode(xmlDoc, item, "ccorrespondtypename", "");
                CreateNode(xmlDoc, item, "cfirstbillbid", "");
                CreateNode(xmlDoc, item, "cfirstbillhid", "");
                CreateNode(xmlDoc, item, "cfirsttypename", "");
                CreateNode(xmlDoc, item, "cfirsttype", "");
                CreateNode(xmlDoc, item, "csourcetypename", "");
                CreateNode(xmlDoc, item, "pk_calbody", "");
                CreateNode(xmlDoc, item, "vcalbodyname", "");
                CreateNode(xmlDoc, item, "ts", DateTime.Now.ToString());     //?
                CreateNode(xmlDoc, item, "timestamp", "");                   //?
                CreateNode(xmlDoc, item, "bodyts", DateTime.Now.ToString()); //?
                CreateNode(xmlDoc, item, "crowno", "1");                     //行号???
                CreateNode(xmlDoc, item, "nperiodastnum", "");               //期间业务辅数量
                CreateNode(xmlDoc, item, "nperiodnum", "");                  //期间业务数量
                CreateNode(xmlDoc, item, "isforeignstor", "N");
                CreateNode(xmlDoc, item, "isgathersettle", "N");
                CreateNode(xmlDoc, item, "csortrowno", "");
                CreateNode(xmlDoc, item, "cvendorid", "");
                CreateNode(xmlDoc, item, "cvendorname", "");
                CreateNode(xmlDoc, item, "pk_cubasdoc", "");
                CreateNode(xmlDoc, item, "pk_corp", "1001");    //公司ID
                CreateNode(xmlDoc, item, "tbatchtime", "");     //组坯时间
                CreateNode(xmlDoc, item, "dproducedate", "");
                CreateNode(xmlDoc, item, "dvalidate", "");
                CreateNode(xmlDoc, item, "vvendbatchcode", "");
                CreateNode(xmlDoc, item, "qualitymanflag", "");
                CreateNode(xmlDoc, item, "qualitydaynum", "");
                CreateNode(xmlDoc, item, "cqualitylevelid", mod_TQB_CHECKSTATE.C_ID); //质量等级主键
                CreateNode(xmlDoc, item, "vnote", "");
                CreateNode(xmlDoc, item, "tchecktime", "");                           //打牌时间
                CreateNode(xmlDoc, item, "vdef1", "");
                CreateNode(xmlDoc, item, "vdef2", "");
                CreateNode(xmlDoc, item, "vdef3", "");
                CreateNode(xmlDoc, item, "vdef4", "");
                CreateNode(xmlDoc, item, "vdef5", "");
                CreateNode(xmlDoc, item, "vdef6", "");
                CreateNode(xmlDoc, item, "vdef7", "");
                CreateNode(xmlDoc, item, "vdef8", "");
                CreateNode(xmlDoc, item, "vdef9", "");
                CreateNode(xmlDoc, item, "vdef10", "");
                CreateNode(xmlDoc, item, "vdef11", "");
                CreateNode(xmlDoc, item, "vdef12", "");
                CreateNode(xmlDoc, item, "vdef13", "");
                CreateNode(xmlDoc, item, "vdef14", "");
                CreateNode(xmlDoc, item, "vdef15", "");
                CreateNode(xmlDoc, item, "vdef16", "");
                CreateNode(xmlDoc, item, "vdef17", "");
                CreateNode(xmlDoc, item, "vdef18", "");
                CreateNode(xmlDoc, item, "vdef19", "");
                CreateNode(xmlDoc, item, "vdef20", "");
                CreateNode(xmlDoc, item, "naccountgrsnum", "");
                CreateNode(xmlDoc, item, "ncheckgrsnum", "");
                CreateNode(xmlDoc, item, "nadjustgrsnum", "");
                CreateNode(xmlDoc, item, "nshldtransgrsnum", "");
                CreateNode(xmlDoc, item, "cspecialbid", "");                                         //?
                CreateNode(xmlDoc, item, "vbatchcode_temp", "");                                     //?
                CreateNode(xmlDoc, item, "cqualitylevelname", mod_TQB_CHECKSTATE.C_CHECKSTATE_NAME); //?
                CreateNode(xmlDoc, item, "vdef1", "");                                               //?
                CreateNode(xmlDoc, item, "vdef2", "");                                               //?
                CreateNode(xmlDoc, item, "vdef3", "");                                               //?
                #endregion
                body.AppendChild(item);


                xmlDoc.Save(url + "\\" + urlname);

                List <string> parem = SendNC.SendXML(url + "\\" + urlname);
                //parem.Add(dayplcode);
                //parem.Add(empID);
                //parem.Add("发运单");

                //日志
                //AddLog(parem);

                if (parem[0] == "1")
                {
                    return("1");
                }
                else
                {
                    return(parem[1].ToString());
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
        /// <summary>
        /// 发送入库实绩给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <param name="c_stove">炉号</param>
        /// <param name="user_id">操作人员</param>
        /// <returns></returns>
        public bool SendXml_SLAB_46(string xmlFileName, string c_stove, string user_id)
        {
            try
            {
                string urlname = "GPRK" + c_stove + ".XML";//XML名称

                string url = xmlFileName + "\\NCXML";
                if (!Directory.Exists(url))
                {
                    Directory.CreateDirectory(url);
                }
                DataTable          dt             = dal_slab_mes.GetList("", "", c_stove, "", "全部").Tables[0];
                Mod_TSC_SLAB_MAIN  mod_slab_main  = dal_slab_main.GetModel_Stove_Trans(c_stove);                                          //钢坯实绩
                Mod_TB_MATRL_MAIN  mod_mater_main = dal_mater_main.GetModel(mod_slab_main.C_MAT_CODE);                                    //物料主表
                Mod_TS_USER        mod_ts_user    = dal_user.GetModel(user_id);                                                           //用户主表
                Mod_TPB_SLABWH     mod_SLABWH     = dal_slabwh.GetModel_Interface(mod_slab_main.C_SLABWH_CODE);                           //库存表
                Mod_TB_STD_CONFIG  mod_std_config = dal_std_config.GetModel_Interface(mod_slab_main.C_STD_CODE, mod_slab_main.C_STL_GRD); // 自由项
                Mod_TMO_ORDER      mod_tmo_order  = dal_tmo_order.GetModelByORDERNO(mod_slab_main.C_ORD_NO);                              //订单池
                Mod_TQB_CHECKSTATE mod_checkstate = dal_checkstate.GetModelByName(mod_slab_main.C_JUDGE_LEV_ZH, mod_tmo_order.C_XGID);    //判定等级
                DateTime           dt_time        = Convert.ToDateTime(mod_slab_main.D_WE_DATE.ToString());
                if (dt == null)
                {
                    return(false);
                }
                if (mod_slab_main == null)
                {
                    return(false);
                }
                if (mod_mater_main == null)
                {
                    return(false);
                }
                if (mod_ts_user == null)
                {
                    return(false);
                }
                if (mod_SLABWH == null)
                {
                    return(false);
                }
                if (mod_std_config == null)
                {
                    return(false);
                }
                if (mod_tmo_order == null)
                {
                    return(false);
                }
                if (mod_checkstate == null)
                {
                    return(false);
                }

                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("billtype", "46");
                root.SetAttribute("filename", "");
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("operation", "req");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "Y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement bill = xmlDoc.CreateElement("bill");
                #region//节点属性
                bill.SetAttribute("id", mod_slab_main.C_STOVE);
                #endregion
                root.AppendChild(bill);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "bill_head", null);

                #region                                                    //表头_order_head
                CreateNode(xmlDoc, head, "cwarehouseid", mod_SLABWH.C_ID); //仓库ID
                #endregion

                bill.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("bill_body");
                bill.AppendChild(body);

                XmlNode item = xmlDoc.CreateNode(XmlNodeType.Element, "item", null);
                #region                                                                       //表体_item
                CreateNode(xmlDoc, item, "cwarehouseid", mod_SLABWH.C_ID);                    //仓库ID
                CreateNode(xmlDoc, item, "taccounttime", mod_slab_main.D_WE_DATE.ToString()); //库房签字时间
                CreateNode(xmlDoc, item, "coperatorid", mod_ts_user.C_ID);                    //制单人
                CreateNode(xmlDoc, item, "ccheckstate_bid", mod_checkstate.C_ID);             //质量等级
                CreateNode(xmlDoc, item, "cworkcenterid", dt.Rows[0]["连铸主键"].ToString());     //工作中心主键/连铸机号
                CreateNode(xmlDoc, item, "dbizdate", dt_time.ToString("yyyy-MM-dd"));         //业务日期
                CreateNode(xmlDoc, item, "vbatchcode", mod_slab_main.C_STOVE);                //批次号
                CreateNode(xmlDoc, item, "cinvbasid", mod_mater_main.C_PK_INVBASDOC);         //存货基本ID
                CreateNode(xmlDoc, item, "pk_produce", "");                                   //介质物料PK
                CreateNode(xmlDoc, item, "ninnum", dt.Rows[0]["重量"].ToString());              //实入数量-重量
                CreateNode(xmlDoc, item, "ninassistnum", dt.Rows[0]["支数"].ToString());        //实入辅数量-件数
                CreateNode(xmlDoc, item, "castunitid", mod_mater_main.C_FJLDW);               //辅计量单位ID
                CreateNode(xmlDoc, item, "vfree1", mod_std_config.C_ZYX1);                    //自由项1
                CreateNode(xmlDoc, item, "vfree2", mod_std_config.C_ZYX2);                    //自由项2
                CreateNode(xmlDoc, item, "vfree3", "");                                       //自由项3
                CreateNode(xmlDoc, item, "vfree4", "");                                       //自由项4
                CreateNode(xmlDoc, item, "vfree5", "");                                       //自由项5
                CreateNode(xmlDoc, item, "pk_corp", "");                                      //公司
                CreateNode(xmlDoc, item, "gcbm", "");                                         //工厂

                #endregion

                body.AppendChild(item);


                xmlDoc.Save(url + "\\" + urlname);
                List <string> parem = dalSendNC.SendXML(url + "\\" + urlname);

                if (parem[0] == "1")
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }