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