From 357693611c60d93fb17189273d4c91dab364f0d4 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 20 十二月 2024 10:09:11 +0800
Subject: [PATCH] 压缩机整改

---
 Service/HStation.Service.Assets.Core/05-service/21-compressor/01-series/AssetsCompressorSeries.cs |  154 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 142 insertions(+), 12 deletions(-)

diff --git a/Service/HStation.Service.Assets.Core/05-service/12-Compressor/01-AssetsCompressorSeries/AssetsCompressorSeries.cs b/Service/HStation.Service.Assets.Core/05-service/21-compressor/01-series/AssetsCompressorSeries.cs
similarity index 68%
copy from Service/HStation.Service.Assets.Core/05-service/12-Compressor/01-AssetsCompressorSeries/AssetsCompressorSeries.cs
copy to Service/HStation.Service.Assets.Core/05-service/21-compressor/01-series/AssetsCompressorSeries.cs
index d807986..a7f6677 100644
--- a/Service/HStation.Service.Assets.Core/05-service/12-Compressor/01-AssetsCompressorSeries/AssetsCompressorSeries.cs
+++ b/Service/HStation.Service.Assets.Core/05-service/21-compressor/01-series/AssetsCompressorSeries.cs
@@ -78,7 +78,7 @@
             AssetsCompressorSeriesCacheHelper.Publish(key);
         }
 
-        #endregion Cache
+        #endregion 
 
         #region Query
 
@@ -88,7 +88,7 @@
         public List<Model.AssetsCompressorSeries> 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 +110,98 @@
                 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.AssetsCompressorSeries> 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.AssetsCompressorSeries> 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.AssetsCompressorSeries> 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.AssetsCompressorSeries> 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.AssetsCompressorSeries> 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.AssetsCompressorSeries> 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
+        #endregion 
 
         #region Insert
 
@@ -169,7 +244,7 @@
             return false;
         }
 
-        #endregion Insert
+        #endregion 
 
         #region Update
 
@@ -256,6 +331,46 @@
         }
 
         /// <summary>
+        /// 鏇存柊鏍戞帓搴忕爜
+        /// </summary>
+        public bool UpdateTreeSortCode(long ID, List<long> ParentIds, int SortCode)
+        {
+            if (ID < 1)
+            {
+                return false;
+            }
+            var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsCompressorSeries>();
+            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.IAssetsCompressorSeries>();
+            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)
@@ -309,7 +424,8 @@
             return bol;
         }
 
-        #endregion Update
+
+        #endregion 
 
         #region Exist
 
@@ -339,7 +455,8 @@
             return all.Exists(x => x.TagName == TagName && x.ID != ExceptID);
         }
 
-        #endregion Exist
+
+        #endregion 
 
         #region Delete
 
@@ -349,6 +466,17 @@
         public bool DeleteByID(long ID, out string Msg)
         {
             Msg = string.Empty;
+            if (HasChildren(ID))
+            {
+                Msg = "瀛樺湪瀛愮骇锛岃鍒犻櫎鍚庨噸璇曪紒";
+                return false;
+            }
+            var serviceMain = new AssetsCompressorMain();
+            if (serviceMain.IsExistBySeriesID(ID))
+            {
+                Msg = "瀛樺湪鍨嬪彿淇℃伅锛岃鍒犻櫎鍚庨噸璇曪紒";
+                return false;
+            }
             var dal = DALCreateHelper.CreateDAL<HStation.DAL.IAssetsCompressorSeries>();
             var bol = dal.DeleteByID(ID);
             if (bol)
@@ -358,6 +486,8 @@
             return bol;
         }
 
-        #endregion Delete
+        #endregion
+
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3