using Rhea.Common; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tiger.IBusiness; using Tiger.Model; namespace Tiger.Business.WMS { /// /// 条码库存信息,包括仓库,储区,货架,储位,父条码,包装明细等 /// public class Inventory : IInventory { public string SN { get; set; } public Barcode Barcode { get; set; } public bool IsQRCode => Barcode.IsQRCode; public WMS_ITEM_EXT ExtInfo { get; set; } public BAS_ITEM ItemInfo { get; set; } public WMS_WAREHOUSE Warehouse { get; set; } public WMS_REGION Region { get; set; } public WMS_SHELF Shelf { get; set; } public WMS_LOCATION Location { get; set; } public WMS_ITEM_PKG ParentPkg { get; set; } public List Packages { get; set; } = new List(); public List Items { get; set; } = new List(); public List ItemsExt { get; set; } = new List(); public List History { get; set; } = new List(); public List StatusList => Items.GroupBy(q => q.STATUS).Select(q => new { Status = q.Key.GetEnum(), Count = q.Count() }).OrderByDescending(q => q.Count).Select(q => q.Status).ToList(); public bool isNormalStatus => Items.Select(q => q.STATUS).Distinct().Count() == 1; public WMS_ITEM.STATUSs Status => StatusList?.FirstOrDefault() ?? WMS_ITEM.STATUSs.NotExists; public WMS_ITEM_PKG CurPkg => Packages.FirstOrDefault(q => q.SN == SN); public bool isExists => CurPkg != null; public bool isMinPackage => Items.Count == 1 && Items.Single().SN == SN; public void UpdatePkgQty() { this.Packages = WMS_ITEM_PKG.UpdateQty(this.Packages); } } }