服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
20 小时以前 0c0309afae85b72746bd2431c10c7f5982e210e3
Tiger.Model.Net/Entitys/WMS/WMS_ITEM_PKG.cs
@@ -46,7 +46,7 @@
        /// <summary>
        /// 数量
        /// </summary>
        public decimal QTY { get; set; }
        public double QTY { get; set; }
        /// <summary>
        /// 单位
        /// </summary>
@@ -167,8 +167,10 @@
        //      [SugarColumn(IsIgnore = true)]
        //      public List<WMS_ITEM_PKG> Children => ChildrenWithGhost?.Where(q => !q.GHOST_ROW).ToList() ?? new List<WMS_ITEM_PKG>();
        //BAS_ITEM, WMS_WAREHOUSE, WMS_REGION, WMS_SHELF, WMS_LOCATION
        [Navigate(NavigateType.OneToOne, nameof(ITEM_CODE), nameof(BAS_ITEM.ITEM_CODE), "GHOST_ROW = 0")]//一对一 ClassAId是WMS_ITEM_PKG类里面的外键ID字段
        public BAS_ITEM ItemInfo { get; set; } //注意禁止手动赋值,只能是null
        [Navigate(NavigateType.OneToMany, nameof(BAS_ITEM.ITEM_CODE), nameof(ITEM_CODE), "GHOST_ROW = 0")]
        public List<BAS_ITEM> _ItemInfos { get; set; } //注意禁止手动赋值,只能是null
        [SugarColumn(IsIgnore = true)]
        public BAS_ITEM ItemInfo => _ItemInfos?.FirstOrDefault(q => q.AUTH_ORG == AUTH_ORG);
        [Navigate(NavigateType.OneToOne, nameof(SN), nameof(WMS_ITEM.SN), "GHOST_ROW = 0")]//一对一 ClassAId是WMS_ITEM_PKG类里面的外键ID字段
        public WMS_ITEM Item { get; set; } //注意禁止手动赋值,只能是null
        [Navigate(NavigateType.OneToOne, nameof(SN), nameof(WMS_ITEM_EXT.SN), "GHOST_ROW = 0")]//一对一 ClassAId是WMS_ITEM_PKG类里面的外键ID字段
@@ -203,7 +205,21 @@
        #endregion
        #region 公共方法
        public static List<WMS_ITEM_PKG> UpdateQty(List<WMS_ITEM_PKG> list)
        {
            var minPkgs = list.Where(q => !list.Any(p => p.PARENT_SN == q.SN));
            var parent = list.Where(q => minPkgs.Any(p => p.PARENT_SN == q.SN));
            while (parent.Any())
            {
                foreach (var item in parent)
                {
                    item.QTY = list.Where(q => q.PARENT_SN == item.SN).Sum(q => q.QTY);
                }
                parent = list.Where(q => parent.Any(p => p.PARENT_SN == q.SN));
            }
            return list;
        }
        #endregion
    }//endClass