From a84a83d842f4fa220a8cf1b704e6ed6573684eef Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期四, 20 三月 2025 17:38:19 +0800
Subject: [PATCH] 快速建模

---
 Service/HStation.Service.Xhs.Core/05-service/03-scheme/XhsScheme.cs |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/Service/HStation.Service.Xhs.Core/05-service/03-scheme/XhsScheme.cs b/Service/HStation.Service.Xhs.Core/05-service/03-scheme/XhsScheme.cs
index 08fee2e..caf9a84 100644
--- a/Service/HStation.Service.Xhs.Core/05-service/03-scheme/XhsScheme.cs
+++ b/Service/HStation.Service.Xhs.Core/05-service/03-scheme/XhsScheme.cs
@@ -160,6 +160,20 @@
         }
 
         /// <summary>
+        /// 閫氳繃 ProjectID 鑾峰彇
+        /// </summary>
+        public List<Model.XhsScheme> GetByProjectID(long ProjectID)
+        {
+            var allSiteList = new HStation.Service.XhsProjectSite().GetByProjectID(ProjectID);
+            if (allSiteList == null || allSiteList.Count < 1)
+            {
+                return default;
+            }
+            var allSiteIds = allSiteList.Select(x => x.ID).Distinct().ToList();
+            return GetBySiteIds(allSiteIds);
+        }
+
+        /// <summary>
         /// 鑾峰彇鏈�澶ф帓搴忕爜
         /// </summary>
         public int GetMaxSortCode(long SiteID)
@@ -170,6 +184,18 @@
                 return 0;
             }
             return all.Max(x => x.SortCode);
+        }
+
+        /// <summary>
+        /// 鍒涘缓缂栧彿
+        /// </summary>
+        public string CreateNO(long SiteID)
+        {
+            var all = GetBySiteID(SiteID);
+            var allNoList = all.Select(x => x.NO).Distinct().ToList();
+            var prefix = $"SCHEME-{DateTime.Now:yyyy-MM-dd}";
+            var no = new Yw.Untity.UniqueNameCreater().Create(prefix, allNoList, "-");
+            return no;
         }
 
         #endregion 
@@ -188,6 +214,10 @@
             if (model.SiteID < 1)
             {
                 return default;
+            }
+            if (string.IsNullOrEmpty(model.NO))
+            {
+                model.NO = CreateNO(model.SiteID);
             }
             var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsScheme>();
             var entity = Model2Entity(model);
@@ -212,6 +242,13 @@
             {
                 return false;
             }
+            list.ForEach(x =>
+            {
+                if (string.IsNullOrEmpty(x.NO))
+                {
+                    x.NO = CreateNO(x.SiteID);
+                }
+            });
             var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsScheme>();
             var entity_list = Model2Entities(list);
             var ids = dal.InsertsR(entity_list);
@@ -393,6 +430,21 @@
             return all.Exists(x => x.SiteID == SiteID);
         }
 
+        /// <summary>
+        /// 閫氳繃 ProjectID 鍒ゆ柇鏄惁瀛樺湪
+        /// </summary>
+        public bool IsExistByProjectID(long ProjectID)
+        {
+            var allSiteList = new HStation.Service.XhsProjectSite().GetByProjectID(ProjectID);
+            if (allSiteList == null || allSiteList.Count < 1)
+            {
+                return false;
+            }
+            var allSiteIds = allSiteList.Select(x => x.ID).Distinct().ToList();
+            var all = GetAll();
+            return all.Exists(x => allSiteIds.Contains(x.SiteID));
+        }
+
 
         #endregion
 
@@ -428,6 +480,6 @@
             return bol;
         }
 
-        #endregion Delete
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3