示例#1
0
        /// <summary>
        /// 获取订单监控详细数据
        /// </summary>
        /// <param name="context"></param>
        public void GetOrderMonitoringItem(System.Web.HttpContext context)
        {
            string date = context.Request["date"].ToString();

            //string StartDate = context.Request["StartDate"].ToString();
            //string EndDate = context.Request["EndDate"].ToString();
            string StartDate = date.Substring(0, 10).Trim();
            string EndDate   = date.Substring(12).Trim();
            string Hour      = context.Request["Hour"].ToString();
            string type      = context.Request["type"].ToString();
            string Status    = context.Request["Status"].ToString();

            if (!string.IsNullOrEmpty(StartDate) && !string.IsNullOrEmpty(EndDate) && !string.IsNullOrEmpty(Hour))
            {
                DataSet ds = HSCodeHelper.GetOrderMonitoringItem(StartDate, EndDate, Hour, type, Status);
                if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    this.message = Newtonsoft.Json.JsonConvert.SerializeObject(ds.Tables[0]);
                }
                else
                {
                    this.message = "{\"success\":\"NO\",\"MSG\":\"未查询到数据,请重新输入查询\"}";
                }
            }
            else
            {
                this.message = "{\"success\":\"NO\",\"MSG\":\"参数获取失败\"}";
            }
        }
示例#2
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            this.LoadParameters();
            if (!int.TryParse(this.Page.Request.QueryString["HS_CODE_ID"], out this.HS_CODE_ID))
            {
                base.GotoResourceNotFound();
                return;
            }

            this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
            this.btnElementsSearchButton.Click += new System.EventHandler(this.btnElementsSearchButton_Click);

            if (!this.Page.IsPostBack)
            {
                DataTable hscodeinfo  = HSCodeHelper.GetHSCodeInfo(HS_CODE_ID).Tables[0];
                DataTable elmentsinfo = HSCodeHelper.GetHSCodeInfo(HS_CODE_ID).Tables[1];

                if (hscodeinfo == null)
                {
                    base.GotoResourceNotFound();
                    return;
                }

                this.dropUnit1.DataBind();
                this.dropUnit2.DataBind();
                this.elmentsListBox.DataBind();

                Globals.EntityCoding(hscodeinfo, false);
                this.BindHSCodeInfo(hscodeinfo, elmentsinfo);
            }
        }
示例#3
0
        private void CreateString(DataTable dt)
        {
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    string orderid       = dr["orderid"].ToString();
                    string ShipToID      = dr["IdentityCard"].ToString();
                    string ShipToName    = dr["ShipTo"].ToString();
                    string ShipToaddress = dr["address"].ToString();
                    string ShipToPhone   = dr["CellPhone"].ToString();
                    //orderNo  订单号
                    //userName 姓名
                    //idCareNum 身份证号码
                    //phoneNum 收货人手机
                    //address 收货地址
                    string postData = "orderNo=" + orderid + "&userName="******"&idCareNum=" + ShipToID + "&phoneNum=" + ShipToPhone + "&address=" + ShipToaddress;
                    ErrorLog.Write("efindUrl send data : " + postData);

                    string str = SendData(efindUrl, postData);

                    ErrorLog.Write("efindUrl return data : " + str);

                    HSCodeHelper.SetPayerIDStatus(orderid, ShipToName, ShipToID, ShipToaddress, ShipToPhone, str, runType);
                }
            }
        }
示例#4
0
 /// <summary>
 /// 更新海关状态
 /// </summary>
 private void UpdateHSStatus(string PaymentData)
 {
     if (yjfResponse.orderNo != null)
     {
         if (voList.outOrderNo == resultInfo.outOrderNo)
         {
             if (yjfResponse.resultCode.ToUpper() == "EXECUTE_SUCCESS" && resultInfo.serviceStatus.ToUpper() == "SUCCESS")
             {
                 HSCodeHelper.SaveHSDocking(3, resultInfo.outOrderNo, "", "", 1, resultInfo.message, "", voList.payerId, voList.payerName, "0", voList.tradeNo);
             }
             //else if (yjfResponse.resultCode.ToUpper() == "EXECUTE_SUCCESS" && resultInfo.serviceStatus.ToUpper() == "FAIL")
             //{
             //    HSCodeHelper.SaveHSDocking(3, resultInfo.outOrderNo, "", "", 3, yjfResponse.resultMessage, "");
             //}
             else
             {
                 HSCodeHelper.SaveHSDocking(3, resultInfo.outOrderNo, "", "", 3, resultInfo.message, "", voList.payerId, voList.payerName, "0", voList.tradeNo);
             }
         }
         else
         {
             HSCodeHelper.SaveHSDocking(3, resultInfo.outOrderNo, "", "", 3, yjfResponse.resultMessage, "", voList.payerId, voList.payerName, "0", voList.tradeNo);
         }
     }
     if (!string.IsNullOrEmpty(PaymentData))
     {
         HSCodeHelper.SaveHSDocking(3, voList.outOrderNo, "", "", 1, "已上传", PaymentData, voList.payerId, voList.payerName, "0", voList.tradeNo);
     }
 }
示例#5
0
        public void BindHSDeclare()
        {
            HSDeclareQuery HSDeclareQuery = this.GetHSDeclareQuery();
            DbQueryResult  HSDeclare      = HSCodeHelper.GetHSDeclare(HSDeclareQuery);

            this.dlstHSDeclare.DataSource = HSDeclare.Data;
            this.dlstHSDeclare.DataBind();
            this.SetSearchControl();
            this.pager.TotalRecords  = HSDeclare.TotalRecords;
            this.pager1.TotalRecords = HSDeclare.TotalRecords;
        }
示例#6
0
        /// <summary>
        /// 获取订单对应的订单详情数据
        /// </summary>
        /// <param name="context"></param>
        public void GetHS_Declare(System.Web.HttpContext context)
        {
            string orderid = context.Request["orderid"].ToLower();

            if (!string.IsNullOrEmpty(orderid))
            {
                this.message = Newtonsoft.Json.JsonConvert.SerializeObject(HSCodeHelper.GetOrderItems(orderid));
            }
            else
            {
                this.message = "{\"success\":\"NO\",\"MSG\":\"参数获取失败\"}";
            }
        }
示例#7
0
        private void grdHSCode_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e)
        {
            //ManagerHelper.CheckPrivilege(Privilege.DeleteMember);
            int HS_CODE_ID = (int)this.grdHSCode.DataKeys[e.RowIndex].Value;

            if (!HSCodeHelper.Delete(HS_CODE_ID))
            {
                this.ShowMsg("删除失败, 可能该海关编码正在使用", false);
                return;
            }
            this.BindData();
            this.ShowMsg("成功删除了选择的海关编码", true);
        }
示例#8
0
 /// <summary>
 /// 更新海关状态
 /// </summary>
 private void UpdateHSStatus()
 {
     if (yjfResponse.orderNo != null)
     {
         if (yjfResponse.resultCode == "EXECUTE_SUCCESS")
         {
             HSCodeHelper.SaveHSDocking(3, yjfResponse.resultInfosAsy[0].outOrderNo, "", "", 2, yjfResponse.resultInfosAsy[0].message, "", "", "", yjfResponse.resultInfosAsy[0].availableBalance.ToString(), yjfResponse.resultInfosAsy[0].tradeNo);
         }
         else
         {
             HSCodeHelper.SaveHSDocking(3, yjfResponse.resultInfosAsy[0].outOrderNo, "", "", 3, yjfResponse.resultInfosAsy[0].message, "", "", "", yjfResponse.resultInfosAsy[0].availableBalance.ToString(), yjfResponse.resultInfosAsy[0].tradeNo);
         }
     }
 }
示例#9
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            HSCodeInfo hscodeinfo = this.GetHSCode();

            if (HSCodeHelper.AddHSCodeInfo(hscodeinfo) > 0)
            {
                base.Response.Redirect(Globals.GetAdminAbsolutePath("/HS/HSCode.aspx"), true);
                return;
            }
            else
            {
                this.ShowMsg("添加海关编码失败,未知错误", false);
            }
        }
示例#10
0
        /// <summary>
        /// 获取海关编码对应申报要素数据
        /// </summary>
        /// <param name="context"></param>
        public void GetHSCODEELMENTS(System.Web.HttpContext context)
        {
            string CodeId    = context.Request["HSCode"].ToString();
            string ProductId = context.Request["ProductId"].ToString();

            if (!string.IsNullOrEmpty(CodeId) && !string.IsNullOrEmpty(ProductId))
            {
                this.message = Newtonsoft.Json.JsonConvert.SerializeObject(HSCodeHelper.GetHSCODEELMENTS(CodeId, ProductId));
            }
            else
            {
                this.message = "{\"success\":\"NO\",\"MSG\":\"参数获取失败\"}";
            }
        }
示例#11
0
        private void BindData()
        {
            DbQueryResult HSCode = HSCodeHelper.GetHSCode(new HSCodeQuery
            {
                HS_CODE   = this.searchkey,
                HS_NAME   = this.HSName,
                PageIndex = this.pager.PageIndex,
                PageSize  = this.pager.PageSize
            });

            this.grdHSCode.DataSource = HSCode.Data;
            this.grdHSCode.DataBind();
            this.pager.TotalRecords = HSCode.TotalRecords;
        }
示例#12
0
        /// <summary>
        /// 创建传输字符串
        /// </summary>
        /// <param name="dt"></param>

        private void CreateString(DataTable dt)
        {
            foreach (DataRow dr in dt.Rows)
            {
                yjfResponse = new YJFResponse();
                Dictionary <string, string> Dictionary = new Dictionary <string, string>();
                yjf.voList  = GetVosList(dr);
                yjf.orderNo = Guid.NewGuid().ToString().Substring(0, 32);

                Dictionary.Add("eshopEntCode", yjf.eshopEntCode);
                Dictionary.Add("eshopEntName", yjf.eshopEntName);
                Dictionary.Add("eshopType", "A");
                Dictionary.Add("notifyUrl", yjf.notifyUrl);
                Dictionary.Add("signType", yjf.signType);
                Dictionary.Add("service", yjf.serviceCode);
                //Dictionary.Add("returnUrl", yjf.returnUrl);
                Dictionary.Add("partnerId", yjf.partnerId);

                Dictionary.Add("orderNo", yjf.orderNo);
                Dictionary.Add("vosList", "[" + yjf.voList + "]");
                string sign = yjfSign(Dictionary, yjf.YJFPaySignKey);
                Dictionary.Add("sign", sign);
                string signature = BuildQuery(Dictionary, false);

                UpdateHSStatus(signature);

                string str = SendData(yjf.yijifuUrl, signature);

                ErrorLog.Write("易极付同步记录:" + str);
                try
                {
                    //string str = "{\"sign\":\"0db21c652f8302350772d517878672bc\",\"protocol\":\"httpJson\",\"orderNo\":\"0a48d33e-6431-40f8-8f93-da1d06a6\",\"signType\":\"MD5\",\"resultCode\":\"EXECUTE_SUCCESS\",\"service\":\"yhtMultiPaymentBillUpload\",\"partnerId\":\"20140926020000058373\",\"resultMessage\":\"成功\",\"resultInfos\":[{\"message\":\"--该支付单已经上传,请勿重传--\",\"outOrderNo\":\"2015120775845791\",\"paymentBillMoney\":107.40,\"serviceStatus\":\"FAIL\",\"tradeNo\":\"20151221154126347100\"}],\"success\":true,\"version\":\"1.0\"}";
                    yjfResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <YJFResponse>(str);

                    resultInfo = yjfResponse.resultInfos[0];

                    UpdateHSStatus("");
                }
                catch (Exception ex)
                {
                    string message = "";
                    if (voList.tradeNo.ToString() == "")
                    {
                        message = "tradeNo为空";
                    }
                    HSCodeHelper.SaveHSDocking(3, voList.outOrderNo, "", "", 3, message, "", voList.payerId, voList.payerName, "0", voList.tradeNo);
                }
            }
        }
示例#13
0
        private void BindData()
        {
            DbQueryResult HSDocking = HSCodeHelper.GetHSDocking(new HSDockingQuery
            {
                OrderId         = this.searchkey,
                LogisticsStatus = this.LogisticsNoList.SelectedValue,
                OrderStatus     = this.OrderIDList.SelectedValue,
                PaymentStatus   = this.PaymentList.SelectedValue,
                payerIdStatus   = this.payerIdList.SelectedValue,
                //HS_NAME = this.HSName,
                PageIndex = this.pager.PageIndex,
                PageSize  = this.pager.PageSize
            });

            this.grdHSDocking.DataSource = HSDocking.Data;
            this.grdHSDocking.DataBind();
            this.pager.TotalRecords = HSDocking.TotalRecords;
        }
示例#14
0
        public override void DataBind()
        {
            this.Items.Clear();
            IList <ElmentsInfo> elmentsInfo;

            if (!string.IsNullOrEmpty(HSElmentsName))
            {
                elmentsInfo = HSCodeHelper.GetElmentsInfo(HSElmentsName);
            }
            else
            {
                elmentsInfo = HSCodeHelper.GetElmentsInfo();
            }

            foreach (ElmentsInfo elments in elmentsInfo)
            {
                this.Items.Add(new ListItem(elments.HSElmentsName, elments.HSElmentsID.ToString()));
            }
        }
示例#15
0
        public void GetHS_Status(System.Web.HttpContext context)
        {
            string status  = context.Request["status"].ToLower();
            string orderid = context.Request["orderid"].ToLower();
            string Remark  = context.Request["Remark"];

            string UserId   = context.Request["UserId"].ToLower();
            string Username = context.Request["Username"];

            if (!string.IsNullOrEmpty(status) && !string.IsNullOrEmpty(orderid))
            {
                //重发四单
                if (status == "99")
                {
                    if (CheckPrivilegeReturn(Username, Privilege.ResendHSDocking))
                    {
                        HSCodeHelper.ResendHSDocking(orderid, int.Parse(UserId));
                    }
                    else
                    {
                        this.message = "{\"success\":\"NO\",\"MSG\":\"您无权操作,请联系管理员!\"}";
                    }
                    return;
                }
                //认领操作时判断是否已认领(未认领或者失败时可认领)
                if (status == "4" && HSCodeHelper.GetOrderClaimStatus(orderid))
                {
                    this.message = "{\"success\":\"NO\",\"MSG\":\"该单已被认领\"}";
                    return;
                }
                //申报时判断是否自己认领的单
                if ((status == "0" || status == "1") && HSCodeHelper.GetOrderClaimUser(orderid).ToString() != UserId && Username != "admin")
                {
                    this.message = "{\"success\":\"NO\",\"MSG\":\"您无权操作他人认领订单\"}";
                    return;
                }
                HSCodeHelper.SetOrderStatus(orderid, status, Remark, int.Parse(UserId), Username);
            }
            else
            {
                this.message = "{\"success\":\"NO\",\"MSG\":\"参数获取失败\"}";
            }
        }
示例#16
0
        /// <summary>
        /// 作废某个订单明细
        /// </summary>
        /// <param name="context"></param>
        public void ReMoveHS_Declare(System.Web.HttpContext context)
        {
            string orderid = context.Request["OrderID"].ToLower();
            string SkuId   = context.Request["SkuId"];

            string UserId   = context.Request["UserId"].ToLower();
            string Username = context.Request["Username"];

            if (!string.IsNullOrEmpty(SkuId) && !string.IsNullOrEmpty(orderid))
            {
                if (CheckPrivilegeReturn(Username, Privilege.ValidHSDocking))
                {
                    HSCodeHelper.ValidHSDocking(orderid, SkuId, int.Parse(UserId));
                }
                else
                {
                    this.message = "{\"success\":\"NO\",\"MSG\":\"您无权操作,请联系管理员!\"}";
                }
            }
            else
            {
                this.message = "{\"success\":\"NO\",\"MSG\":\"参数获取失败\"}";
            }
        }
示例#17
0
        private void btnMondifyAddress_Click(object sender, System.EventArgs e)
        {
            OrderInfo orderInfo  = OrderHelper.GetOrderInfo(this.orderId);
            string    tempToName = orderInfo.ShipTo;
            string    tempToId   = orderInfo.IdentityCard;

            orderInfo.ShipTo         = this.txtShipTo.Text.Trim();
            orderInfo.RegionId       = this.dropRegions.GetSelectedRegionId().Value;
            orderInfo.Address        = this.txtAddress.Text.Trim();
            orderInfo.TelPhone       = this.txtTelPhone.Text.Trim();
            orderInfo.CellPhone      = this.txtCellPhone.Text.Trim();
            orderInfo.ZipCode        = this.txtZipcode.Text.Trim();
            orderInfo.ShippingRegion = this.dropRegions.SelectedRegions;
            if (!string.IsNullOrEmpty(this.txtIdentityCard.Text))
            {
                if (this.txtIdentityCard.Text.IndexOf("********") < 0)
                {
                    orderInfo.IdentityCard = this.txtIdentityCard.Text.Trim();
                }
            }
            if (string.IsNullOrEmpty(this.txtTelPhone.Text.Trim()) && string.IsNullOrEmpty(this.txtCellPhone.Text.Trim()))
            {
                this.ShowMsg("电话号码和手机号码必填其一", false);
                return;
            }
            if (this.action == "update")
            {
                string errorMsg = "";
                //if ((tempToName != this.txtShipTo.Text.Trim() || tempToId != this.txtIdentityCard.Text.Trim()) && this.txtIdentityCard.Text.IndexOf("********") < 0)
                if (tempToName != this.txtShipTo.Text.Trim() || tempToId.ToLower() != this.txtIdentityCard.Text.Trim().ToLower())
                {
                    string orderid       = this.orderId;
                    string ShipToID      = this.txtIdentityCard.Text.Trim();
                    string ShipToName    = this.txtShipTo.Text.Trim();
                    string ShipToaddress = this.txtAddress.Text.Trim();
                    string ShipToPhone   = this.txtCellPhone.Text.Trim() != "" ? this.txtCellPhone.Text.Trim() : this.txtTelPhone.Text.Trim();
                    //orderNo  订单号
                    //userName 姓名
                    //idCareNum 身份证号码
                    //phoneNum 收货人手机
                    //address 收货地址
                    string postData = "orderNo=" + orderid + "&userName="******"&idCareNum=" + ShipToID + "&phoneNum=" + ShipToPhone + "&address=" + ShipToaddress;
                    ErrorLog.Write("后台订单身份验证:efindUrl send data : " + postData);

                    string str = SendData(efindUrl, postData);

                    try
                    {
                        XmlDocument xmlDocument = new XmlDocument();
                        xmlDocument.LoadXml(str);

                        XmlNode node = xmlDocument.SelectSingleNode("result/code");

                        if (node.InnerText == "200")
                        {
                            XmlNode nodeName         = xmlDocument.SelectSingleNode("result/retvalue/emResult/name");
                            XmlNode nodeOrderId      = xmlDocument.SelectSingleNode("result/retvalue/emResult/orderId");
                            XmlNode nodeStatus       = xmlDocument.SelectSingleNode("result/retvalue/emResult/status");
                            XmlNode nodeErrorcode    = xmlDocument.SelectSingleNode("result/retvalue/emResult/errorcode");
                            XmlNode nodeErrormessage = xmlDocument.SelectSingleNode("result/retvalue/emResult/errormessage");
                            XmlNode nodeIDCardNum    = xmlDocument.SelectSingleNode("result/retvalue/emResult/idCardNum");

                            if (nodeStatus != null)
                            {
                                if (nodeStatus.InnerText.ToUpper() == "PASS")
                                {
                                    errorMsg = "实名认证成功!";
                                }
                                if (nodeStatus.InnerText.ToUpper() == "NOPASS")
                                {
                                    errorMsg = "实名认证失败!";
                                }
                            }
                            else
                            {
                                errorMsg = "实名认证失败!";
                            }
                        }
                        else
                        {
                            ErrorLog.Write("efindUrl interface fail");
                        }
                        HSCodeHelper.SetPayerIDStatus(orderid, ShipToName, ShipToID, ShipToaddress, ShipToPhone, str, runType);
                    }
                    catch (Exception)
                    {
                        errorMsg = "实名认证失败!";
                    }
                }
                else
                {
                    if (orderInfo.payerIdStatus == 2)
                    {
                        errorMsg = "实名认证成功!";
                    }
                    else
                    {
                        errorMsg = "实名认证失败!";
                    }
                }

                orderInfo.OrderId = this.orderId;
                if (errorMsg.Contains("实名认证成功"))
                {
                    if (OrderHelper.MondifyAddress(orderInfo))
                    {
                        OrderHelper.GetOrderInfo(this.orderId);
                        this.ShowMsg("修改成功," + errorMsg, true);
                        return;
                    }
                }

                this.ShowMsg("修改失败," + errorMsg, false);
            }
        }
示例#18
0
        /// <summary>
        /// 获取海关编码数据
        /// </summary>
        /// <param name="context"></param>
        public void GetHSCode(System.Web.HttpContext context)
        {
            string code = context.Request["query"].ToString();

            this.message = Newtonsoft.Json.JsonConvert.SerializeObject(HSCodeHelper.GetHSCodeBuyCode(code));
        }
示例#19
0
        /// <summary>
        /// 生成订单Xml数据
        /// </summary>
        private void GenerateXmlData(string filename, string templateName)
        {
            //订单xml模板
            XmlDocument xd = new XmlDocument();

            xd.Load(Globals.MapPath(templateName));
            //1.获取符合条件的订单
            DataSet ds = HSCodeHelper.GetOrders();

            if (ds != null && ds.Tables.Count > 0)
            {
                //2.遍历订单生成xml文件到指定位置
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    XmlDocument xdc = new XmlDocument();
                    xdc.LoadXml(xd.OuterXml);
                    //<MessageID>[报文唯一编号]</MessageID> 报文唯一编号:用于唯一标识报文,"CEB301"+"9位组织机构代码"+"yyyyMMddHHmmssSSS"+"4位流水号"
                    XmlNode xnMessageID = xdc.SelectSingleNode("/CEB301Message/MessageHead/MessageID");
                    //<OrgCode>[组织机构代码]</OrgCode>
                    XmlNode xnOrgCode = xdc.SelectSingleNode("/CEB301Message/MessageHead/OrgCode");
                    xnOrgCode.InnerText = masterSettings.OrgCode;
                    StringBuilder MessageID = new StringBuilder("CEB301");
                    MessageID.AppendFormat("{0}{1}{2}", xnOrgCode.InnerText, DateTime.Now.ToString("yyyyMMddHHmmssfff"), Number.ToString().PadLeft(4, '0'));
                    xnMessageID.InnerText = MessageID.ToString();
                    //<SenderID>[发送方Id]</SenderID>
                    XmlNode xnSenderID = xdc.SelectSingleNode("/CEB301Message/MessageHead/SenderID");
                    xnSenderID.InnerText = masterSettings.SenderID;
                    //<SendTime>[发送时间yyyyMMddHHmmssSSS]</SendTime>
                    XmlNode xnSendTime = xdc.SelectSingleNode("/CEB301Message/MessageHead/SendTime");
                    xnSendTime.InnerText = DateTime.Now.ToString("yyyyMMddHHmmssfff");

                    //订单实体数据
                    #region 订单实体数据
                    //<appTime>[申报时间YYYYMMDDhhmmss]</appTime>
                    XmlNode xnAppTime = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/appTime");
                    xnAppTime.InnerText = DateTime.Now.ToString("yyyyMMddHHmmss");
                    //<orderNo>[订单编号]</orderNo>
                    XmlNode xnOrderNo = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/orderNo");
                    xnOrderNo.InnerText = dr["OrderId"].ToString();
                    //<appUid>[持卡人Id]</appUid>
                    XmlNode xnAppUid = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/appUid");
                    xnAppUid.InnerText = masterSettings.appUid;
                    //<appUname>[持卡人姓名]</appUname>
                    XmlNode xnAppUname = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/appUname");
                    xnAppUname.InnerText = masterSettings.appUname;
                    //<ebpCode>[电商平台代码]</ebpCode>
                    XmlNode xnEbpCode = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/ebpCode");
                    xnEbpCode.InnerText = masterSettings.ebpCode;
                    //<ebpName>[电商平台名称]</ebpName>
                    XmlNode xnEbpName = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/ebpName");
                    xnEbpName.InnerText = masterSettings.ebpName;
                    //<currency>[币制]</currency>
                    XmlNode xnCurrency = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/currency");
                    xnCurrency.InnerText = masterSettings.currency;
                    //<consigneeCountry>[收货人所在国]</consigneeCountry>
                    XmlNode xnConsigneeCountry = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/consigneeCountry");
                    xnConsigneeCountry.InnerText = masterSettings.consigneeCountry;
                    //<ebcCode>[电商企业代码]</ebcCode>
                    XmlNode xnEbcCode = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/ebcCode");
                    xnEbcCode.InnerText = masterSettings.ebcCode;
                    //<ebcName>电商企业名称</ebcName>
                    XmlNode xnEbcName = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/ebcName");
                    xnEbcName.InnerText = masterSettings.ebcName;
                    //<goodsValue>[订单商品货款N19,5]</goodsValue>
                    XmlNode xnGoodsValue = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/goodsValue");
                    xnGoodsValue.InnerText = dr["Amount"].ToString();
                    //<freight>[境内运杂费N19,5]</freight>
                    XmlNode xnFreight = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/freight");
                    xnFreight.InnerText = dr["AdjustedFreight"].ToString();
                    //<consignee>[收货人名称]</consignee>
                    XmlNode xnConsignee = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/consignee");
                    xnConsignee.InnerText = dr["ShipTo"].ToString();
                    //<consigneeAddress>[收货人地址]</consigneeAddress>
                    XmlNode xnConsigneeAddress = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/consigneeAddress");
                    xnConsigneeAddress.InnerText = dr["RealAddress"].ToString();
                    //<consigneeTelephone>[收货人电话]</consigneeTelephone>
                    XmlNode xnConsigneeTelephone = xdc.SelectSingleNode("/CEB301Message/MessageBody/OrderBillHead/consigneeTelephone");
                    xnConsigneeTelephone.InnerText = dr["CellPhone"].ToString();
                    #endregion

                    //订单商品数据 <OrderBillList>
                    #region 订单商品数据
                    XmlNode   MessageBody = xdc.SelectSingleNode("CEB301Message/MessageBody");
                    DataRow[] drs         = ds.Tables[1].Select("OrderId='" + dr["OrderId"].ToString() + "'");
                    for (int i = 0, j = 1; i < drs.Length; i++)
                    {
                        XmlNode OrderBillList = xdc.CreateElement("OrderBillList");
                        MessageBody.AppendChild(OrderBillList);
                        DataRow drDetail = drs[i];
                        //生成<gnum>[商品序号]</gnum>
                        XmlElement xeGnum = xdc.CreateElement("gnum");
                        xeGnum.InnerText = (i + j).ToString();
                        OrderBillList.AppendChild(xeGnum);
                        //<itemNo>[企业商品货号]</itemNo>
                        XmlElement xeItemNo = xdc.CreateElement("itemNo");
                        xeItemNo.InnerText = drDetail["SKU"].ToString();
                        OrderBillList.AppendChild(xeItemNo);
                        //<gno>[海关商品备案编号]</gno>
                        XmlElement xeGno = xdc.CreateElement("gno");
                        xeGno.InnerText = drDetail["ProductRegistrationNumber"].ToString();
                        OrderBillList.AppendChild(xeGno);
                        //<gcode>[海关商品编码]</gcode>
                        XmlElement xeGcode = xdc.CreateElement("gcode");
                        xeGcode.InnerText = drDetail["HS_CODE"].ToString();
                        OrderBillList.AppendChild(xeGcode);
                        //<gname>[商品名称]</gname>
                        XmlElement xeGname = xdc.CreateElement("gname");
                        xeGname.InnerText = drDetail["ProductName"].ToString();
                        OrderBillList.AppendChild(xeGname);
                        //<gmodel>[规格型号]</gmodel>
                        XmlElement xeGmodel = xdc.CreateElement("gmodel");
                        xeGmodel.InnerText = drDetail["ItemNo"].ToString();
                        OrderBillList.AppendChild(xeGmodel);
                        //生成<barCode />
                        XmlElement xeBarCode = xdc.CreateElement("barCode");
                        OrderBillList.AppendChild(xeBarCode);
                        //<brand>[品牌]</brand>
                        XmlElement xeBrand = xdc.CreateElement("brand");
                        xeBrand.InnerText = drDetail["BrandName"].ToString();
                        OrderBillList.AppendChild(xeBrand);
                        //<unit>[计量单位]</unit>
                        XmlElement xeUnit = xdc.CreateElement("unit");
                        xeUnit.InnerText = drDetail["UnitCode"].ToString();
                        OrderBillList.AppendChild(xeUnit);
                        //<currency>[币制]</currency>
                        XmlElement xeCurrency = xdc.CreateElement("currency");
                        xeCurrency.InnerText = masterSettings.currency;
                        OrderBillList.AppendChild(xeCurrency);
                        //<qty>[成交数量]</qty>
                        XmlElement xeQty = xdc.CreateElement("qty");
                        xeQty.InnerText = drDetail["Quantity"].ToString();
                        OrderBillList.AppendChild(xeQty);
                        //<price>[单价]</price>
                        XmlElement xePrice = xdc.CreateElement("price");
                        xePrice.InnerText = drDetail["ItemAdjustedPrice"].ToString();
                        OrderBillList.AppendChild(xePrice);
                        //<total>[总价]</total>
                        XmlElement xeTotal = xdc.CreateElement("total");
                        xeTotal.InnerText = drDetail["TotalPrice"].ToString();
                        OrderBillList.AppendChild(xeTotal);
                        //<giftFlag>[是否赠品0否]</giftFlag>
                        XmlElement xeGiftFlag = xdc.CreateElement("giftFlag");
                        xeGiftFlag.InnerText = "0";
                        OrderBillList.AppendChild(xeGiftFlag);
                        //生成<note />
                        XmlElement xeNote = xdc.CreateElement("note");
                        OrderBillList.AppendChild(xeNote);

                        //发货数量和采购数量有差异,判断是否有赠送(有买有送促销)
                        if (Convert.ToInt32(drDetail["PresentQuantity"]) > 0)
                        {
                            j++;
                            //生成<gnum>[商品序号]</gnum>
                            XmlElement xeGnumNew = xdc.CreateElement("gnum");
                            xeGnumNew.InnerText = (i + j).ToString();
                            OrderBillList.AppendChild(xeGnumNew);
                            //<itemNo>[企业商品货号]</itemNo>
                            XmlElement xeitemNoNew = xdc.CreateElement("itemNo");
                            xeitemNoNew.InnerText = xeItemNo.InnerText;
                            OrderBillList.AppendChild(xeitemNoNew);
                            //<gno>[海关商品备案编号]</gno>
                            XmlElement xegnoNew = xdc.CreateElement("gno");
                            xegnoNew.InnerText = xeGno.InnerText;
                            OrderBillList.AppendChild(xegnoNew);
                            //<gcode>[海关商品编码]</gcode>
                            XmlElement xegcodeNew = xdc.CreateElement("gcode");
                            xegcodeNew.InnerText = xeGcode.InnerText;
                            OrderBillList.AppendChild(xegcodeNew);
                            //<gname>[商品名称]</gname>
                            XmlElement xegnameNew = xdc.CreateElement("gname");
                            xegnameNew.InnerText = xeGname.InnerText;
                            OrderBillList.AppendChild(xegnameNew);
                            //<gmodel>[规格型号]</gmodel>
                            XmlElement xegmodelNew = xdc.CreateElement("gmodel");
                            xegmodelNew.InnerText = xeGmodel.InnerText;
                            OrderBillList.AppendChild(xegmodelNew);
                            //生成<barCode />
                            XmlElement xeBarCodeNew = xdc.CreateElement("barCode");
                            OrderBillList.AppendChild(xeBarCodeNew);

                            //<brand>[品牌]</brand>
                            XmlElement xebrandNew = xdc.CreateElement("brand");
                            xebrandNew.InnerText = xeBrand.InnerText;
                            OrderBillList.AppendChild(xebrandNew);
                            //<unit>[计量单位]</unit>
                            XmlElement xeunitNew = xdc.CreateElement("unit");
                            xeunitNew.InnerText = xeUnit.InnerText;
                            OrderBillList.AppendChild(xeunitNew);
                            //<currency>[币制]</currency>
                            XmlElement xecurrencyNew = xdc.CreateElement("currency");
                            xecurrencyNew.InnerText = xeCurrency.InnerText;
                            OrderBillList.AppendChild(xecurrencyNew);
                            //<qty>[成交数量]</qty>
                            XmlElement xeQtyNew = xdc.CreateElement("qty");
                            xeQtyNew.InnerText = drDetail["PresentQuantity"].ToString();
                            OrderBillList.AppendChild(xeQtyNew);
                            //<price>[单价]</price>
                            XmlElement xepriceNew = xdc.CreateElement("price");
                            xepriceNew.InnerText = xePrice.InnerText;
                            OrderBillList.AppendChild(xepriceNew);
                            //<total>[总价]</total>
                            XmlElement xeZSTotalPrice = xdc.CreateElement("total");
                            xeZSTotalPrice.InnerText = drDetail["ZSTotalPrice"].ToString();
                            OrderBillList.AppendChild(xeZSTotalPrice);
                            //<giftFlag>[是否赠品0否]</giftFlag>
                            XmlElement xeGiftFlagNew = xdc.CreateElement("giftFlag");
                            xeGiftFlagNew.InnerText = "1";
                            OrderBillList.AppendChild(xeGiftFlagNew);
                            //生成<note />
                            XmlElement xeNoteNew = xdc.CreateElement("note");
                            OrderBillList.AppendChild(xeNoteNew);
                        }
                    }
                    #endregion

                    //xdc.Save(filename + "订单-" + MessageID.ToString() + ".xml");

                    ////gbk
                    //using (StreamWriter sw = new StreamWriter(filename + "订单-" + MessageID.ToString() + ".xml", false, Encoding.UTF8))
                    //{
                    //    xdc.Save(sw);
                    //}

                    //NetworkConnection.CreateNetWorkConnection(filename, User, Pwd, localpath);

                    using (StreamWriter sw = File.CreateText(filename + MessageID.ToString() + ".xml"))
                    {
                        sw.Write(xdc.OuterXml);
                        sw.Close();
                    }

                    Number++;
                    //订单保存数据库
                    try
                    {
                        HSCodeHelper.SaveHSDocking(1, dr["OrderId"].ToString(), "", MessageID.ToString(), 1, "已生成Xml数据", xdc.OuterXml, "", "", "0", "");
                    }
                    catch (Exception e)
                    {
                        this.SendErrorEail("三单错误—订单生成修改数据库状态错误:" + e.ToString());
                    }
                    //finally
                    //{
                    //    NetworkConnection.Disconnect(localpath);
                    //}
                }
            }
        }
示例#20
0
        /// <summary>
        /// 生成运单Xml数据
        /// </summary>
        private void GenerateXmlDataByLog(string filename, string templateName)
        {
            //订单xml模板
            XmlDocument xd = new XmlDocument();

            xd.Load(Globals.MapPath(templateName));

            //1.获取符合条件的订单
            DataSet ds = HSCodeHelper.GetLogs();

            if (ds != null && ds.Tables.Count > 0)
            {
                if (ds.Tables[1] == null || ds.Tables[1].Rows.Count <= 0)
                {
                    this.SendErrorEail("三单错误:没有发货信息。");
                    return;
                }

                string shipper          = ds.Tables[1].Rows[0]["ShipperName"].ToString();
                string shipperAddress   = ds.Tables[1].Rows[0]["Address"].ToString();
                string shipperTelephone = ds.Tables[1].Rows[0]["CellPhone"].ToString();
                //2.遍历订单生成xml文件到指定位置
                int i = 1;
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    ErrorLog.Write("查询订单,第" + i);
                    i++;
                    XmlDocument xdc = new XmlDocument();
                    xdc.LoadXml(xd.OuterXml);
                    //<MessageID>[报文唯一编号]</MessageID> 报文唯一编号:用于唯一标识报文,"CEB301"+"9位组织机构代码"+"yyyyMMddHHmmssSSS"+"4位流水号"
                    XmlNode xnMessageID = xdc.SelectSingleNode("/CEB501Message/MessageHead/MessageID");
                    //<OrgCode>[组织机构代码]</OrgCode>
                    XmlNode xnOrgCode = xdc.SelectSingleNode("/CEB501Message/MessageHead/OrgCode");
                    xnOrgCode.InnerText = masterSettings.OrgCode;
                    StringBuilder MessageID = new StringBuilder("CEB301");
                    MessageID.AppendFormat("{0}{1}{2}", xnOrgCode.InnerText, DateTime.Now.ToString("yyyyMMddHHmmssfff"), Number.ToString().PadLeft(4, '0'));
                    xnMessageID.InnerText = MessageID.ToString();
                    //<SenderID>[发送方Id]</SenderID>
                    XmlNode xnSenderID = xdc.SelectSingleNode("/CEB501Message/MessageHead/SenderID");
                    xnSenderID.InnerText = masterSettings.SenderID;
                    //<SendTime>[发送时间yyyyMMddHHmmssSSS]</SendTime>
                    XmlNode xnSendTime = xdc.SelectSingleNode("/CEB501Message/MessageHead/SendTime");
                    xnSendTime.InnerText = DateTime.Now.ToString("yyyyMMddHHmmssfff");

                    //订单实体数据 粤BL3727
                    #region 订单实体数据
                    //<customsCode>[主管海关代码]</customsCode>
                    XmlNode xnCustomsCode = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/customsCode");
                    xnCustomsCode.InnerText = masterSettings.customsCode;
                    //<appTime>[申报时间YYYYMMDDhhmmss]</appTime>
                    XmlNode xnAppTime = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/appTime");
                    xnAppTime.InnerText = DateTime.Now.ToString("yyyyMMddHHmmss");
                    //<orderNo>[订单编号]</orderNo>
                    XmlNode xnOrderNo = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/orderNo");
                    xnOrderNo.InnerText = dr["OrderId"].ToString();
                    //<appUid>[持卡人Id]</appUid>
                    XmlNode xnAppUid = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/appUid");
                    xnAppUid.InnerText = masterSettings.appUid;
                    //<appUname>[持卡人姓名]</appUname>
                    XmlNode xnAppUname = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/appUname");
                    xnAppUname.InnerText = masterSettings.appUname;
                    //<ebpCode>[电商平台代码]</ebpCode>
                    XmlNode xnEbpCode = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/ebpCode");
                    xnEbpCode.InnerText = masterSettings.ebpCode;
                    //<ebpName>[电商平台名称]</ebpName>
                    XmlNode xnEbpName = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/ebpName");
                    xnEbpName.InnerText = masterSettings.ebpName;
                    //<logisticsCode>[物流企业代码]</logisticsCode>
                    XmlNode xnLogisticsCode = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/logisticsCode");
                    xnLogisticsCode.InnerText = masterSettings.logisticsCode;
                    //<logisticsName>[物流企业名称]</logisticsName>
                    XmlNode xnLogisticsName = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/logisticsName");
                    xnLogisticsName.InnerText = masterSettings.logisticsName;
                    //<logNo>[运单号]</logNo>
                    XmlNode xnLogNo = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/logNo");
                    xnLogNo.InnerText = dr["ShipOrderNumber"].ToString();
                    //<freight>[运费]</freight>
                    XmlNode xnFreight = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/freight");
                    xnFreight.InnerText = dr["AdjustedFreight"].ToString();
                    //<currency>[币制]</currency>
                    XmlNode xnCurrency = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/currency");
                    xnCurrency.InnerText = masterSettings.currency;
                    //<billNo>[提运单号]</billNo>
                    XmlNode xnBillNo = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/billNo");
                    xnBillNo.InnerText = dr["ShipOrderNumber"].ToString();
                    //<netWt>[净重]</netWt>
                    XmlNode xnNetWt = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/netWt");
                    xnNetWt.InnerText = dr["OrderWeight"].ToString();
                    //<weight>[毛重]</weight>
                    XmlNode xnWeight = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/weight");
                    xnWeight.InnerText = (Convert.ToDecimal(dr["OrderWeight"]) + Convert.ToDecimal(masterSettings.ContainerWeight)).ToString();
                    //<parcelInfo>[包裹信息]</parcelInfo>
                    XmlNode xnParcelInfo = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/parcelInfo");
                    xnParcelInfo.InnerText = dr["ShipOrderNumber"].ToString();
                    //<goodsInfo>[商品信息]</goodsInfo>
                    XmlNode xnGoodsInfo = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/goodsInfo");
                    xnGoodsInfo.InnerText = dr["GoodsInfo"].ToString();
                    //<consignee>[收货人名称]</consignee>
                    XmlNode xnConsignee = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/consignee");
                    xnConsignee.InnerText = dr["ShipTo"].ToString();
                    //<consigneeCountry>[收货人所在国]</consigneeCountry>
                    XmlNode xnConsigneeCountry = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/consigneeCountry");
                    xnConsigneeCountry.InnerText = masterSettings.consigneeCountry;
                    //省、市、区划代码Province、City、District
                    string      RegionId       = dr["RegionId"].ToString();
                    string      xpath          = string.Format("//county[@id='{0}']", RegionId);
                    XmlDocument regionDocument = RegionHelper.GetRegionDocument(Globals.MapPath("/config/region.config"));
                    XmlNode     xmlNode        = regionDocument.SelectSingleNode(xpath);
                    //区
                    XmlNode xnDistrict = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/District");
                    if (xmlNode == null || xmlNode.Attributes["code"] == null || xmlNode.Attributes["code"].Value == "")
                    {
                        this.SendErrorEail("三单错误:收货地区xml错误,未找到节点或属性不存在。");
                        xnDistrict.InnerText = "000000";
                    }
                    else
                    {
                        xnDistrict.InnerText = xmlNode.Attributes["code"].Value;
                    }
                    ErrorLog.Write("获取省市县");
                    if (xnDistrict.InnerText.Length < 6)
                    {
                        xnDistrict.InnerText = "000000";
                    }
                    //市
                    XmlNode xnCity = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/City");
                    //省
                    XmlNode xnProvince = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/Province");
                    try
                    {
                        xnCity.InnerText = xmlNode.ParentNode.Attributes["code"].Value;
                        if (xnCity.InnerText.Length < 6)
                        {
                            xnCity.InnerText = "000000";
                        }

                        xnProvince.InnerText = xmlNode.ParentNode.ParentNode.Attributes["code"].Value;
                        if (xnProvince.InnerText.Length < 6)
                        {
                            xnProvince.InnerText = "000000";
                        }
                    }
                    catch (Exception)
                    {
                        xnCity.InnerText     = "000000";
                        xnProvince.InnerText = "000000";
                    }

                    ErrorLog.Write("获取收货人");
                    //<consigneeAddress>[收货人地址]</consigneeAddress>
                    XmlNode xnConsigneeAddress = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/consigneeAddress");
                    xnConsigneeAddress.InnerText = dr["RealAddress"].ToString();
                    //<consigneeTelephone>[收货人电话]</consigneeTelephone>
                    XmlNode xnConsigneeTelephone = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/consigneeTelephone");
                    xnConsigneeTelephone.InnerText = dr["CellPhone"].ToString();

                    ErrorLog.Write("获取发货人信息");
                    //<shipper>[发货人名称]</shipper>
                    XmlNode xnShipper = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/shipper");
                    xnShipper.InnerText = shipper;
                    //<shipperAddress>[发货人地址]</shipperAddress>
                    XmlNode xnShipperAddress = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/shipperAddress");
                    xnShipperAddress.InnerText = shipperAddress;
                    //<shipperTelephone>[发货人电话]</shipperTelephone>
                    XmlNode xnShipperTelephone = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/shipperTelephone");
                    xnShipperTelephone.InnerText = shipperTelephone;
                    //<shipperCountry>142</shipperCountry>
                    XmlNode xnShipperCountry = xdc.SelectSingleNode("/CEB501Message/MessageBody/Logistics/shipperCountry");
                    xnShipperCountry.InnerText = masterSettings.shipperCountry;
                    #endregion
                    ErrorLog.Write("数据获取完毕");
                    //NetworkConnection.CreateNetWorkConnection(filename, User, Pwd, localpath);

                    using (StreamWriter sw = File.CreateText(filename + MessageID.ToString() + ".xml"))
                    {
                        sw.Write(xdc.OuterXml);
                        sw.Close();
                    }
                    ErrorLog.Write("保存文件");
                    Number++;
                    //订单生成修改数据库状态错误
                    try
                    {
                        HSCodeHelper.SaveHSDocking(4, dr["OrderId"].ToString(), dr["ShipOrderNumber"].ToString(), MessageID.ToString(), 1, "已生成Xml数据", xdc.OuterXml, "", "", "0", "");
                    }
                    catch (Exception e)
                    {
                        this.SendErrorEail("三单错误—订单生成修改数据库状态错误:" + e.ToString());
                    }
                    //finally
                    //{
                    //    NetworkConnection.Disconnect(localpath);
                    //}
                }
            }
        }
示例#21
0
        /// <summary>
        /// 获取订单返回数据
        /// </summary>
        /// <param name="writeBackName">回写目录</param>
        private void WriteBackStatus(string writeBackName)
        {
            //获得目录下所有文件
            al.Clear();
            tag = 0;
            //NetworkConnection.CreateNetWorkConnection(writeBackName, User, Pwd, localpath);
            this.GetAllDirList(writeBackName);
            //依次扫描文件回写状态
            foreach (string item in al)
            {
                //发送目录不需要
                if (item.IndexOf("\\send\\") > 0)
                {
                    continue;
                }
                string      OrderId     = "";
                string      LogisticsNo = "";
                int         Status      = 0;
                string      OPacketsID  = "";
                string      Remark      = "";
                bool        isOrder     = true;
                XmlDocument xd          = new XmlDocument();
                try
                {
                    using (FileStream fs = new FileStream(item, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    {
                        //加载文件流
                        xd.Load(fs);
                    }
                }
                catch (Exception io)
                {
                    this.SendErrorEail("三单错误—文件解析错误:" + item + "错误信息:" + io.ToString());
                    continue;
                }


                if (xd.SelectSingleNode("/CEB301Message") == null && xd.SelectSingleNode("/CEB501Message") == null)
                {
                    this.SendErrorEail("三单错误—文件格式不对:" + item);
                    continue;
                }
                //判断是订单还是运单 CEB301Message CEB501Message
                if (xd.SelectSingleNode("/CEB301Message") != null)
                {
                    isOrder = true;
                }
                else
                {
                    isOrder = false;
                }

                //接收目录
                if (item.IndexOf("\\receive\\") > 0)
                {
                    if (isOrder)
                    {
                        OPacketsID = xd.SelectSingleNode("/CEB301Message/MessageBody/ResultInformation/MessageID").InnerText;
                        //1-成功;2 -失败;3-其它
                        Status = xd.SelectSingleNode("/CEB301Message/MessageBody/ResultInformation/Result").InnerText == "1" ? 2 : 3;
                        Remark = Status == 2 ? "成功" : xd.SelectSingleNode("/CEB301Message/MessageBody/ResultInformation/NoteS").InnerText;
                        XmlNode xn = xd.SelectSingleNode("/CEB301Message/MessageBody/ResultInformation/FormID");
                        if (xn != null)
                        {
                            OrderId = xn.InnerText;
                        }
                    }
                    else
                    {
                        OPacketsID = xd.SelectSingleNode("/CEB501Message/MessageBody/ResultInformation/MessageID").InnerText;
                        //1-成功;2 -失败;3-其它
                        Status = xd.SelectSingleNode("/CEB501Message/MessageBody/ResultInformation/Result").InnerText == "1" ? 2 : 3;
                        Remark = Status == 2 ? "成功" : xd.SelectSingleNode("/CEB501Message/MessageBody/ResultInformation/NoteS").InnerText;
                        XmlNode xn = xd.SelectSingleNode("/CEB501Message/MessageBody/ResultInformation/FormID");
                        if (xn != null)
                        {
                            LogisticsNo = xn.InnerText;
                        }
                    }
                }
                else
                {
                    if (isOrder)
                    {
                        OPacketsID = xd.SelectSingleNode("/CEB301Message/MessageHead/MessageID").InnerText;
                    }
                    else
                    {
                        OPacketsID = xd.SelectSingleNode("/CEB501Message/MessageHead/MessageID").InnerText;
                    }
                    if (item.IndexOf("\\fail\\") > 0)
                    {
                        //上传失败目录
                        Remark = "上传失败";
                        Status = 3;
                    }
                    else if (item.IndexOf("\\signfail\\") > 0)
                    {
                        //加签失败目录
                        Remark = "加签失败";
                        Status = 3;
                    }
                    else if (item.IndexOf("\\success\\") > 0)
                    {
                        //上传成功目录
                        Remark = "上传成功";
                        Status = 1;
                    }
                    else
                    {
                        this.SendErrorEail("三单错误—目录错误:" + item);
                        continue;
                    }
                }

                if (Status == 3)
                {
                    //错误状态发送邮件
                    this.SendErrorEail("订单报文ID:" + OPacketsID + ",订单返回错误,错误信息[" + Remark + "]");
                }

                try
                {
                    if (OPacketsID != "" && Status != 0)
                    {
                        if (isOrder)
                        {
                            HSCodeHelper.SaveHSDocking(2, OrderId, LogisticsNo, OPacketsID, Status, Remark, "", "", "", "0", "");
                        }
                        else
                        {
                            HSCodeHelper.SaveHSDocking(5, OrderId, LogisticsNo, OPacketsID, Status, Remark, "", "", "", "0", "");
                            //运单是2发邮件通知关务
                            if (Status == 2)
                            {
                                this.SendEail("三单报关提示", "三单已成功,请录入出库", arrEailTo);
                            }
                        }

                        //把文件移到完成文件夹
                        string newFile = item.Replace("\\trans\\", "\\transbak\\");
                        string di      = Path.GetDirectoryName(newFile);
                        if (!Directory.Exists(di))
                        {
                            Directory.CreateDirectory(di);
                        }
                        File.Move(item, newFile);
                    }
                }
                catch (Exception e)
                {
                    this.SendErrorEail("三单错误—获取返回数据错误:" + e.ToString());
                }
                //finally
                //{
                //    NetworkConnection.Disconnect(localpath);
                //}
            }
        }