lixiaojun
2024-12-19 bba9bfcc28df28978881efe48257319b42204602
Service/HStation.Service.Assets.Core/05-service/03-Valve/01-ValveSeries/ValveSeries.cs
@@ -80,6 +80,8 @@
        #endregion Cache
        #region Query
        /// <summary>
@@ -88,7 +90,7 @@
        public List<Model.AssetsValveSeries> GetAll()
        {
            var all = GetCache();
            return all.OrderBy(x => x.SortCode).ToList();
            return all.OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
        }
        /// <summary>
@@ -110,23 +112,100 @@
                return default;
            }
            var all = GetAll();
            return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.SortCode).ToList();
            return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
        }
        /// <summary>
        /// 通过 ID 获取子级及自身
        /// </summary>
        public List<Model.AssetsValveSeries> GetChildAndSelfByID(long ID)
        {
            var all = GetAll();
            var list = all.Where(x => x.ID == ID || x.ParentIds.Contains(ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
            return list;
        }
        /// <summary>
        /// 通过 ID 获取子级
        /// </summary>
        public List<Model.AssetsValveSeries> GetChildrenByID(long ID)
        {
            var all = GetAll();
            var list = all.Where(x => x.ParentIds.Contains(ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
            return list;
        }
        /// <summary>
        /// 通过 ID 获取父级
        /// </summary>
        public List<Model.AssetsValveSeries> GetParentByID(long ID)
        {
            var all = GetAll();
            var model = all.Find(x => x.ID == ID);
            if (model == null)
            {
                return default;
            }
            return all.Where(x => model.ParentIds.Contains(x.ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
        }
        /// <summary>
        /// 通过 ID 获取父级及自身
        /// </summary>
        public List<Model.AssetsValveSeries> GetParentAndSelfByID(long ID)
        {
            var all = GetAll();
            var model = all.Find(x => x.ID == ID);
            if (model == null)
            {
                return default;
            }
            return all.Where(x => model.ParentIds.Contains(x.ID) || x.ID == ID).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
        }
        /// <summary>
        /// 通过 ParentID 获取
        /// </summary>
        public List<Model.AssetsValveSeries> GetByParentID(long ParentID)
        {
            var all = GetAll();
            return all.Where(x => x.ParentIds.LastOrDefault() == ParentID).OrderBy(x => x.SortCode).ToList();
        }
        /// <summary>
        /// 是否包含子项
        /// </summary>
        public bool HasChildren(long ID)
        {
            var all = GetAll();
            return all.Exists(x => x.ParentIds.Contains(ID));
        }
        /// <summary>
        /// 获取最大排序码
        /// </summary>
        public int GetMaxSortCode()
        public int GetMaxSortCode(long ParentID)
        {
            var all = GetAll();
            if (all == null || all.Count < 1)
            List<Model.AssetsValveSeries> list = null;
            if (ParentID < 1)
            {
                list = GetAll();
                list = list?.Where(x => x.ParentIds.Count < 1).ToList();
            }
            else
            {
                list = GetByParentID(ParentID);
            }
            if (list == null || list.Count < 1)
            {
                return 0;
            }
            return all.Max(x => x.SortCode);
            return list.Max(x => x.SortCode);
        }
        #endregion Query
        #region Insert
@@ -170,6 +249,8 @@
        }
        #endregion Insert
        #region Update
@@ -256,6 +337,46 @@
        }
        /// <summary>
        /// 更新树排序码
        /// </summary>
        public bool UpdateTreeSortCode(long ID, List<long> ParentIds, int SortCode)
        {
            if (ID < 1)
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsValveSeries>();
            var bol = dal.UpdateTreeSortCode(ID, TreeParentIdsHelper.ToString(ParentIds), SortCode);
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
        /// 更新树排序
        /// </summary>
        public bool UpdateTreeSorter(List<Yw.Model.TreeSorter> sorters)
        {
            if (sorters == null || sorters.Count < 1)
            {
                return false;
            }
            if (sorters.Exists(x => x.ID < 1))
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsValveSeries>();
            var bol = dal.UpdateTreeSorter(sorters.ToEntityList());
            if (bol)
            {
                UpdateCache(sorters.Select(x => x.ID).ToList());
            }
            return bol;
        }
        /// <summary>
        /// 更新 Paras
        /// </summary>
        public bool UpdateParas(long ID, Dictionary<string, string> Paras)
@@ -311,6 +432,8 @@
        #endregion Update
        #region Exist
        /// <summary>
@@ -341,6 +464,8 @@
        #endregion Exist
        #region Delete
        /// <summary>
@@ -349,6 +474,17 @@
        public bool DeleteByID(long ID, out string Msg)
        {
            Msg = string.Empty;
            if (HasChildren(ID))
            {
                Msg = "存在子级,请删除后重试!";
                return false;
            }
            var serviceMain = new AssetsValveMain();
            if (serviceMain.IsExistBySeriesID(ID))
            {
                Msg = "存在型号信息,请删除后重试!";
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsValveSeries>();
            var bol = dal.DeleteByID(ID);
            if (bol)