private InventoryHead GetInventoryHead(SqlDataReader dr)
 {
     InventoryHead result = null;
     try
     {
         result = new InventoryHead();
         result.guid = Guid.NewGuid();
         result.customsCode = Convert.ToString(dr["customsCode"]);//"0810"
         result.appType = (int)AppType.Add;
         result.appTime = DateTime.Now;
         result.appStatus = (int)AppStatus.Storage;
         result.appUid = Convert.ToString(dr["appUid"]);// "8910000308599";
         result.appUname = Convert.ToString(dr["appUname"]);// "张钟芮";
         result.copNo = Convert.ToString(dr["customs_OrderNo"]);// "20150501102414909";
         result.preNo = null;
         result.orderNo = Convert.ToString(dr["customs_OrderNo"]);
         result.ebpCode = Convert.ToString(dr["ebpCode"]);// "2117960080";
         result.ebpName = Convert.ToString(dr["ebpName"]);// "兴城市天浪电子商务信息有限公司";
         result.logisticsNo = Convert.ToString(dr["logisticsNo"]);
         result.logisticsCode = Convert.ToString(dr["logisticsCode"]);// "2101980101";
         result.logisticsName = Convert.ToString(dr["logisticsName"]);// "辽宁省邮政公司";
         result.invtNo = null;
         result.ieFlag = OrderType.E;
         result.portCode = Convert.ToString(dr["portCode"]);// "0803";
         result.ieDate = DateTime.Now.ToString("yyyyMMdd");
         result.ownerCode = result.ebpCode;
         result.ownerName = result.ebpName;
         result.tradeCode = Convert.ToString(dr["tradeCode"]);// "2114930090";
         result.tradeName = Convert.ToString(dr["tradeName"]);// "葫芦岛德容(集团)制衣有限公司";
         result.agentCode = Convert.ToString(dr["agentCode"]);// "2114980005";
         result.agentName = Convert.ToString(dr["agentName"]);// "葫芦岛誉悦国际货运代理有限责任公司";
         result.tradeMode = Convert.ToString(dr["tradeMode"]);// "9610";
         result.trafMode = "9";// "6";
         result.trafName = Convert.ToString(dr["trafName"]);// "邮政车";
         result.voyageNo = Convert.ToString(dr["voyageNo"]);// "辽P0028B";
         result.billNo = Convert.ToString(dr["billNo"]);//????????????????????
         result.loctNo = null;
         result.licenseNo = null;
         result.country = Convert.ToString(dr["destinationCountry"]);
         result.destinationPort = Convert.ToString(dr["destinationPort"]);
         result.freight = Convert.ToSingle(dr["loginticsFreight"]);
         result.freightCurr = "142";
         result.freightMark = "3";
         result.insuredFee = Convert.ToSingle(dr["insuredFee"]);
         result.insuredFeeCurr = "142";
         result.insuredFeeMark = "3";
         result.wrapType = Convert.ToString(dr["wrapType"]);
         result.packNo = Convert.ToSingle(dr["packNo"]);
         result.weight = Convert.ToSingle(dr["orderWeight"]);
         result.netWeight = Convert.ToSingle(dr["orderNetWeight"]);
         result.note = null;
     }
     catch (Exception ex)
     {
         throw new Exception("GetInventoryHead Exception:" + ex.ToString());
     }
     return result;
 }
        public bool CreateMessage601(string logisticsNo)
        {
            bool success = true;
            InventoryHead inventoryHead = null;
            List<InventoryList> inventoryLists = null;
            BaseSubscribe baseSubscribe = null;
            XElement xele = null;
            XNamespace ns = null;
            MessageSql mssql = null;
            MessageService msService = null;
            try
            {
                inventoryHead = new InventoryHead();
                inventoryLists = new List<InventoryList>();
                baseSubscribe = new BaseSubscribe();
                mssql = new MessageSql();
                mssql.QueryDate601(logisticsNo, ref inventoryHead, ref inventoryLists, ref baseSubscribe);
                if (inventoryHead.guid != new Guid())
                {
                    ns = "http://www.chinaport.gov.cn/ceb";
                    xele = new XElement(ns + "CEB601Message");
                    xele.SetAttributeValue(XNamespace.Xmlns + "ceb", ns);
                    xele = inventoryHead.ToXElememt(xele, ns);
                    foreach (var a in inventoryLists)
                    {
                        xele = a.ToXElememt(xele, ns);
                    }
                    xele = baseSubscribe.ToXElememt(xele, ns);
                    FileUtilities.CreateFolder(ConfigurationInfo.PathSend);
                    xele.Save(ConfigurationInfo.PathSend + "\\" + FileUtilities.GetNewFileName(inventoryHead.orderNo) + "_601.xml");

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

                    msService = new MessageService();
                    msService.DealMessage601(false, true, inventoryHead.guid.ToString(), inventoryHead.copNo, destPath);

                    xele.Save(destPath);
                }
                else
                {
                    Logs.Info("Does not exist in database:" + logisticsNo);
                    success = false;
                }
            }
            catch (Exception ex)
            {
                Logs.Error("Create301Message Exception:" + ex.ToString());
                success = false;
            }
            return success;
        }
 public void QueryDate601(string logisticsNo, ref InventoryHead inventoryHead, ref List<InventoryList> inventoryLists, ref BaseSubscribe baseSubscribe)
 {
     InventoryList inventoryList = null;
     SqlDataReader dr = null;
     try
     {
         dr = a_sqlServer.ExePROC("MessageCenterQuery", ConvertToSqlParameters(601, "", logisticsNo));
         if (dr.HasRows)
         {
             int i = 1;
             while (dr.Read())
             {
                 if (i == 1)
                 {
                     inventoryHead = GetInventoryHead(dr);
                 }
                 inventoryList = GetInventoryList(dr, i++);
                 InventoryList exist = inventoryLists.Find(o => o.gno.Equals(inventoryList.gno));
                 if (exist == null)
                 {
                     inventoryLists.Add(inventoryList);
                 }
                 else
                 {
                     exist.qty += inventoryList.qty;
                     exist.total += inventoryList.total;
                     exist.qty1 += inventoryList.qty1;
                     exist.qty2 += inventoryList.qty2;
                 }
                 baseSubscribe = GetBaseSubscribe(dr);
             }
             foreach (var list in inventoryLists)
             {
                 var f = inventoryHead.netWeight / inventoryLists.Count;
                 list.qty2 = ((float?)((int)(f * 100))) / 100;
             }
             //a_sqlServer.ExePROCNonQuery("MessageReceipt", ConvertToSqlParameters("601", inventoryHead.orderNo, logisticsNo, "0", "", inventoryHead.copNo, "", ""));
         }
     }
     catch (Exception ex)
     {
         Logs.Error("Query601DataByOrderNo Exception:" + ex.ToString());
     }
     finally
     {
         dr.Close();
     }
 }