public void QueryData301(string orderNo, ref OrderHead orderHead, ref List<OrderList> orderLists, ref string logisticsNo, ref string logisticsCode)
 {
     OrderList orderList = null;
     SqlDataReader dr = null;
     try
     {
         dr = a_sqlServer.ExePROC("MessageCenterQuery", ConvertToSqlParameters(301, orderNo, ""));
         if (dr.HasRows)
         {
             int i = 1;
             while (dr.Read())
             {
                 if (i == 1)
                 {
                     orderHead = GetOrderHead(dr);
                     logisticsNo = Convert.ToString(dr["logisticsNo"]);
                     logisticsCode = Convert.ToString(dr["logisticsCode"]);
                 }
                 orderList = GetOrderList(dr, i++);
                 OrderList exist = orderLists.Find(o => o.gno.Equals(orderList.gno));
                 if (exist == null)
                 {
                     orderLists.Add(orderList);
                 }
                 else
                 {
                     exist.qty += orderList.qty;
                     exist.total += orderList.total;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Logs.Error("Query301DataByOrderNo Exception:" + ex.ToString());
     }
     finally
     {
         dr.Close();
     }
 }
        public bool CreateMessage301(string orderNo)
        {
            bool success = true;
            OrderHead orderHead = null;
            List<OrderList> orderLists = null;
            XElement xele = null;
            XNamespace ns = null;
            MessageSql mssql = null;
            string logisticsNo = null;
            string logisticsCode = null;
            MessageService msService = null;
            try
            {
                orderHead = new OrderHead();
                orderLists = new List<OrderList>();
                mssql = new MessageSql();
                mssql.QueryData301(orderNo, ref orderHead, ref orderLists, ref logisticsNo, ref logisticsCode);
                if (orderHead.guid != new Guid())
                {
                    ns = "http://www.chinaport.gov.cn/ceb";
                    xele = new XElement(ns + "CEB301Message");
                    xele.SetAttributeValue(XNamespace.Xmlns + "ceb", ns);
                    xele = orderHead.ToXElememt(xele, ns);
                    foreach (var a in orderLists)
                    {
                        xele = a.ToXElememt(xele, ns);
                    }
                    FileUtilities.CreateFolder(ConfigurationInfo.PathSend);

                    string destPath = FileUtilities.GetNewFolderName(true, ConfigurationInfo.PathBackUp, "301") + "\\" + FileUtilities.GetNewFileName(orderNo) + ".xml";

                    msService = new MessageService();
                    success = msService.DealMessage301(orderNo, orderHead.orderNo, logisticsNo, false, true, orderHead.guid.ToString(), destPath, logisticsCode);
                    if (!success)
                    {
                        destPath = FileUtilities.GetNewFolderName(true, ConfigurationInfo.PathBackUpError, "301") + "\\" + FileUtilities.GetNewFileName(orderNo) + ".xml";
                    }
                    xele.Save(ConfigurationInfo.PathSend + "\\" + FileUtilities.GetNewFileName(orderNo) + ".xml");
                    xele.Save(destPath);
                    if (CheckNeedSendLogistics(logisticsCode))
                    {
                        MessageCache.AddMessageCache("501_" + orderHead.orderNo, CacheInfo.SetCacheInfo("501", Utilities.SetArrayList(orderHead.orderNo, logisticsCode)));
                        CacheInfo cache503R = CacheInfo.SetCacheInfo("503R", Utilities.SetArrayList(logisticsNo, logisticsCode));
                        cache503R.createTime = DateTime.Now.AddMinutes(1);
                        MessageCache.AddMessageCache("503R_" + logisticsNo, cache503R);
                        CacheInfo cache601 = CacheInfo.SetCacheInfo("601", Utilities.SetArrayList(logisticsNo, logisticsCode));
                        cache601.createTime = DateTime.Now.AddMinutes(2);
                        MessageCache.AddMessageCache("601_" + logisticsNo, cache601);
                    }
                }
                else
                {
                    Logs.Info("Does not exist in database: " + orderNo);
                    success = false;
                }
            }
            catch (Exception ex)
            {
                Logs.Error("Create301Message Exception:" + ex.ToString());
                success = false;
            }
            return success;
        }
 private OrderHead GetOrderHead(SqlDataReader dr)
 {
     OrderHead result = null;
     try
     {
         result = new OrderHead();
         result.guid = Guid.NewGuid();
         result.appType = Convert.ToInt32(AppType.Add);
         result.appTime = DateTime.UtcNow;
         result.appStatus = Convert.ToInt32(AppStatus.Declare);
         result.appUid = Convert.ToString(dr["appUid"]); //"8910000308599";
         result.appUname = Convert.ToString(dr["appUname"]); //"张钟芮";
         result.orderType = OrderType.E;
         result.orderNo = Convert.ToString(dr["customs_OrderNo"]);
         result.ebpCode = Convert.ToString(dr["ebpCode"]); //"2117960080";
         result.ebpName = Convert.ToString(dr["ebpName"]); //"兴城市天浪电子商务信息有限公司";
         result.ebcCode = result.ebpCode;
         result.ebcName = result.ebpName;
         result.agentCode = result.ebpCode; //"2114980005";
         result.agentName = result.ebpName; //"葫芦岛誉悦国际货运代理有限责任公司";
         result.goodsValue = Convert.ToSingle(dr["orderAmount"]);
         result.freight = Convert.ToSingle(dr["orderFreight"]);
         result.currency = Convert.ToString(dr["orderFreightCurrency"]);
         result.consignee = Convert.ToString(dr["consignee"]);
         result.consigneeAddress = Convert.ToString(dr["consigneeAddress"]);
         result.consigneeTelephone = Convert.ToString(dr["consigneeTelephone"]);
         result.consigneeCountry = Convert.ToString(dr["consigneeCountry_Code"]);
         result.note = null;
     }
     catch (Exception ex)
     {
         throw new Exception("GetOrderHead Exception:" + ex.ToString());
     }
     return result;
 }