예제 #1
0
        /// <summary>
        /// 毛重回传
        /// </summary>
        /// <param name="data"></param>
        private void UpdateDeliverStatus(string data)
        {
            WMSHelper.SaveLog("UpdateDeliverStatus", data, "调用方法", "info", "in");
            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.LoadXml(data);

            if (xmlDocument == null)
            {
                result = ReturnXML("0001", "xml文档格式错误", "0", "");
                WMSHelper.SaveLog("UpdateDeliverStatus", data, "xml文档格式错误", "error", "in");
                return;
            }


            XmlNode xmlOrderList = xmlDocument.SelectSingleNode("xmldata/orderlist");

            if (xmlOrderList == null)
            {
                result = ReturnXML("0001", "不包含订单信息", "0", "");
                WMSHelper.SaveLog("UpdateDeliverStatus", data, "不包含订单信息", "error", "in");
                return;
            }

            try
            {
                List <DeliverStatusInfo> list = new List <DeliverStatusInfo>();
                foreach (XmlNode orderNode in xmlOrderList.SelectNodes("item"))
                {
                    DeliverStatusInfo info = new DeliverStatusInfo();
                    info.OrderId         = orderNode.SelectSingleNode("orderid").InnerText;
                    info.OrderStatus     = int.Parse(orderNode.SelectSingleNode("OrderStatus").InnerText);
                    info.Describe        = orderNode.SelectSingleNode("Describe").InnerText;
                    info.Warehouse       = orderNode.SelectSingleNode("Warehouse").InnerText;
                    info.UpdateDate      = Convert.ToDateTime(orderNode.SelectSingleNode("UpdateDate").InnerText);
                    info.ShipOrderNumber = orderNode.SelectSingleNode("ShipOrderNumber").InnerText;

                    ExpressCompanyInfo expressCompanyInfo    = ExpressHelper.FindNodeByKuaidi100Code(orderNode.SelectSingleNode("ExpressCompanyName").InnerText);
                    string             getExpressCompanyName = "";

                    if (expressCompanyInfo != null)
                    {
                        getExpressCompanyName = expressCompanyInfo.Name;
                    }

                    info.ExpressCompanyName = getExpressCompanyName;


                    list.Add(info);
                }

                bool flag = false;

                if (list.Count > 0)
                {
                    List <ErrorDeliverStatusInfo> errorlist;
                    flag = OrderHelper.AddDeliverStatus(list, out errorlist);

                    if (flag && errorlist.Count == 0)
                    {
                        result = ReturnXML("0000", "操作成功", "1", "");
                        WMSHelper.SaveLog("UpdateDeliverStatus", data, "操作成功", "info", "in");
                        return;
                    }
                    else if (flag && errorlist.Count > 0)
                    {
                        StringBuilder sb = new StringBuilder();
                        foreach (ErrorDeliverStatusInfo info in errorlist)
                        {
                            sb.Append("<resultInfo>");
                            sb.AppendFormat("<orderid>{0}</orderid>", info.OrderId);
                            sb.AppendFormat("<OrderStatus>{0}</OrderStatus>", info.OrderStatus);
                            sb.AppendFormat("<Describe>{0}</Describe>", info.Describe);
                            sb.AppendFormat("<Warehouse>{0}</Warehouse>", info.Warehouse);
                            sb.AppendFormat("<ShipOrderNumber>{0}</ShipOrderNumber>", info.ShipOrderNumber);
                            sb.AppendFormat("<ExpressCompanyName>{0}</ExpressCompanyName>", info.ExpressCompanyName);
                            //sb.AppendFormat("<UpdateDate>{0}</UpdateDate>", info.UpdateDate.ToString("YYYY-MM-DD HH:MM:SS"));
                            sb.AppendFormat("<errorcode>{0}</errorcode>", info.errorcode);
                            sb.AppendFormat("<errordescr>{0}</errordescr>", info.errordescr);
                            sb.Append("</resultInfo>");
                        }
                        result = ReturnXML("0001", "部分操作成功", "2", sb.ToString());
                        WMSHelper.SaveLog("UpdateDeliverStatus", data, "部分操作成功:" + sb.ToString(), "info", "in");
                        return;
                    }

                    else
                    {
                        result = ReturnXML("0001", "数据库操作异常", "0", "");
                        WMSHelper.SaveLog("UpdateDeliverStatus", data, "数据库操作异常", "error", "in");
                        return;
                    }
                }

                else
                {
                    result = ReturnXML("0001", "不包含订单信息", "0", "");
                    WMSHelper.SaveLog("UpdateDeliverStatus", data, "不包含订单信息", "error", "in");
                    return;
                }
            }

            catch (Exception ex)
            {
                result = ReturnXML("0001", ex.ToString(), "0", "");
                WMSHelper.SaveLog("UpdateDeliverStatus", data, ex.ToString(), "error", "in");

                return;
            }
        }