public ProductInventoryNew GetInventoryByProductNo(string productNo)
        {
            ProductInventoryNew pinventory = new ProductInventoryNew();
            string xml = string.Empty;

            try
            {
                StockWebService.StockWebService stock = new StockWebService.StockWebService();
                if (AppSettingManager.AppSettings["InventoryFlag"].ToLower() == "true")
                {
                    stock.Url = AppSettingManager.AppSettings["ErpInventoryService"];
                    xml       = stock.GetInventorySumByProductNo(productNo, 1); //1,正品;2,残次品;3,赠品
                }
                else
                {
                    xml = stock.GetInventorySumByProductNo(productNo, 1);//1,正品;2,残次品;3,赠品
                }
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);

                int sumQuantity     = 0; //库存总数
                int sumLockQuantity = 0; //锁定的总库存
                int inventory       = 0; //库存总数 减去 锁定的总库存

                if (doc != null)
                {
                    XmlNodeList inventoryNodeList = doc.SelectNodes("/ErpInventorySums/ErpInventorySum");
                    if (inventoryNodeList != null && inventoryNodeList.Count > 0)
                    {
                        string nodeName          = string.Empty;
                        int    inventoryQuantity = 0;
                        int    lockQuantity      = 0;
                        foreach (XmlNode inventoryNode in inventoryNodeList)
                        {
                            if (inventoryNode.ChildNodes.Count > 0)
                            {
                                inventoryQuantity = Convert.ToInt32(inventoryNode.ChildNodes[2].InnerText);
                                lockQuantity      = Convert.ToInt32(inventoryNode.ChildNodes[3].InnerText);

                                sumQuantity     += inventoryQuantity;
                                sumLockQuantity += lockQuantity;
                            }
                        }
                        //sumQuantity += inventoryQuantity;
                        //sumLockQuantity += lockQuantity;
                        inventory = inventory + inventoryQuantity - lockQuantity;
                    }
                }
                pinventory.ProductNo       = productNo;
                pinventory.SumQuantity     = sumQuantity;
                pinventory.SumLockQuantity = sumLockQuantity;
                pinventory.Inventory       = inventory;
            }
            catch (Exception ex)
            {
            }
            return(pinventory);
        }
        /// <summary>
        ///  根据商品编号获取所有SKU库存 by lijibo
        /// </summary>
        /// <param name="productNos"></param>
        /// <param name="NoSize"></param>
        /// <returns></returns>
        public Dictionary <string, int> GetProductsInventoryNew(string productNos)
        {
            var reslut = new Dictionary <string, int>();

            string[] productNoArray = productNos.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            var      q   = GetWfsSkuCollectionByProductNosNew(productNoArray);// DapperUtil.Query<WfsSku>("ComBeziWfs_WfsSku_SelectByProductNos", new { ProductNos = productNoArray }).ToList();
            var      lst = new List <ProductInventoryInfo>();

            foreach (var wfsSku in q)
            {
                var product = new ProductInventoryInfo();
                product.SkuNo     = wfsSku.SkuNo;
                product.ProductNo = wfsSku.ProductNo;
                lst.Add(product);
            }
            var skus =
                lst.Select(
                    p =>
                    new SkuDto {
                SkuNo = p.SkuNo, SkuType = p.SkuType, StockFlag = StockFlag.Normal, ProductNo = p.ProductNo
            }).
                ToList();

            StockWebService.StockWebService stock = new StockWebService.StockWebService();
            var inv = GetSkuInventoryQuantity(skus);
            //  按商品编号进行分组
            var q2 = from p in inv
                     group p by p.ProductNo into g
                     select g;

            foreach (var gg in q2)
            {
                var productNo = gg.Select(x => x.ProductNo).FirstOrDefault();
                var inventory = gg.Sum(x => x.Quantity);
                if (productNo != null)
                {
                    reslut.Add(productNo, inventory);
                }
            }
            return(reslut);
        }
        /// <summary>
        /// 批量查询商品库存接口----未完成,因为批量接口返回中不包含锁定库存,待定···
        /// </summary>
        /// <param name="productNos"></param>
        /// <returns></returns>
        public List <ProductInventory> GetInventoryByProductNos(List <string> productNolist)
        {
            StringBuilder str = new StringBuilder();

            foreach (var item in productNolist)
            {
                str.Append(item + ",");
            }
            string productNos            = str.ToString().TrimEnd(',');
            List <ProductInventory> list = new List <ProductInventory>();

            string xml = string.Empty;

            try
            {
                StockWebService.StockWebService stock = new StockWebService.StockWebService();
                if (AppSettingManager.AppSettings["InventoryFlag"].ToLower() == "true")
                {
                    stock.Url = AppSettingManager.AppSettings["ErpInventoryService"];
                    xml       = stock.GetInventorySumByProductNos(productNos); //1,正品;2,残次品;3,赠品
                }
                else
                {
                    //xml = StockBusiness.GetInventorySumByProductNo(productNo, 1);//1,正品;2,残次品;3,赠品
                    xml = stock.GetInventorySumByProductNos(productNos);//1,正品;2,残次品;3,赠品
                }
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);
                int sumQuantity     = 0; //库存总数
                int sumLockQuantity = 0; //锁定的总库存
                int inventory       = 0; //库存总数 减去 锁定的总库存

                if (doc != null)
                {
                    XmlNodeList inventoryNodeList = doc.SelectNodes("/ErpInventorySums/ErpInventorySum");
                    if (inventoryNodeList != null && inventoryNodeList.Count > 0)
                    {
                        string nodeName          = string.Empty;
                        int    inventoryQuantity = 0;
                        int    lockQuantity      = 0;
                        foreach (XmlNode inventoryNode in inventoryNodeList)
                        {
                            if (inventoryNode.ChildNodes.Count > 0)
                            {
                                inventoryQuantity = Convert.ToInt32(inventoryNode.ChildNodes[2].InnerText);
                                lockQuantity      = Convert.ToInt32(inventoryNode.ChildNodes[3].InnerText);
                            }
                            sumQuantity     += inventoryQuantity;
                            sumLockQuantity += lockQuantity;
                            inventory        = inventory + inventoryQuantity - lockQuantity;
                            ProductInventory pinventory = new ProductInventory();
                            pinventory.ProductNo       = inventoryNode.ChildNodes[1].InnerText;
                            pinventory.SumQuantity     = sumQuantity;
                            pinventory.SumLockQuantity = sumLockQuantity;
                            pinventory.Inventory       = inventory;
                            list.Add(pinventory);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(list);
        }