From 62751e74a70b6f1ca848e0f5fdb6fb8922d99f38 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 20 三月 2025 12:01:26 +0800
Subject: [PATCH] 冒泡排序

---
 项目代码/WIDESEAWCS_Server 正式/SerialPortService/ProcessServer.cs |  138 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 129 insertions(+), 9 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs"
index 492a516..b7d4e44 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs"
@@ -63,12 +63,94 @@
         }
 
 
+        #region
+        //public WebResponseContent AddOrUpdateProcess(AddProcessDTO addProcessDTO)
+        //{
+        //    try
+        //    {
+        //        var allProcesses = BaseDal.QueryData(); // 浠呮煡璇竴娆℃墍鏈夋暟鎹�
 
+        //        if (addProcessDTO.id == 0) // 娣诲姞
+        //        {
+        //            // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 setnum
+        //            if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype))
+        //            {
+        //                return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
+        //            }
+
+        //            // 鍒涘缓鏂板伐鑹烘楠�
+        //            var proces = new Dt_Process
+        //            {
+        //                SetpNum = addProcessDTO.setnum,
+        //                CraftType = addProcessDTO.craftstype,
+        //                CraftsStep = addProcessDTO.craftsstep,
+        //                CraftContent = addProcessDTO.craftcontent,
+        //                Tools = addProcessDTO.tools,
+        //                Material = addProcessDTO.material,
+        //                ArticleOneid = addProcessDTO.aritcleoneid,
+        //                ArticleOne = addProcessDTO.articleone,
+        //                ArticleTowid = addProcessDTO.aritcletowid,
+        //                ArticleTwo = addProcessDTO.articletwo,
+        //                CreateDate = DateTime.Now
+        //            };
+
+        //            BaseDal.AddData(proces);
+        //            return new WebResponseContent { Status = true, Data = proces };
+        //        }
+        //        else // 鏇存柊
+        //        {
+        //            var existingProcess = allProcesses.FirstOrDefault(x => x.CraftID == addProcessDTO.id);
+        //            if (existingProcess == null)
+        //            {
+        //                return new WebResponseContent { Status = false, Message = "鏈壘鍒拌宸ヨ壓姝ラ锛屾棤娉曟洿鏂帮紒" };
+        //            }
+
+        //            // 鍙湁褰� setnum 鍙戠敓鍙樺寲鏃讹紝鎵嶈繘琛岄噸澶嶆�ф鏌�
+        //            if (existingProcess.SetpNum != addProcessDTO.setnum && allProcesses.Any(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype && x.CraftID != addProcessDTO.id))
+        //            {
+        //                return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅锛�" };
+        //            }
+
+        //            // 鏇存柊鏁版嵁
+        //            existingProcess.Nodal = addProcessDTO.Nodal;
+        //            existingProcess.SetpNum = addProcessDTO.setnum;
+        //            existingProcess.CraftType = addProcessDTO.craftstype;
+        //            existingProcess.CraftsStep = addProcessDTO.craftsstep;
+        //            existingProcess.CraftContent = addProcessDTO.craftcontent;
+        //            existingProcess.Tools = addProcessDTO.tools;
+        //            existingProcess.Material = addProcessDTO.material;
+        //            existingProcess.ArticleOneid = addProcessDTO.aritcleoneid;
+        //            existingProcess.ArticleOne = addProcessDTO.articleone;
+        //            existingProcess.ArticleTowid = addProcessDTO.aritcletowid;
+        //            existingProcess.ArticleTwo = addProcessDTO.articletwo;
+        //            existingProcess.CreateDate = DateTime.Now;
+
+        //            BaseDal.UpdateData(existingProcess);
+        //            return new WebResponseContent { Status = true, Data = existingProcess };
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        return new WebResponseContent { Status = false, Message = "鎿嶄綔澶辫触锛�" + ex.Message };
+        //    }
+        //}
+
+
+
+
+        //鑾峰彇褰撳墠浠诲姟宸ヤ綔姝ラ
+        #endregion
+
+        /// <summary>
+        /// 鏍规嵁id鏉ュ垽鏂紝鏈塱d灏辨洿鏂版病鏈夊氨娣诲姞
+        /// </summary>
+        /// <param name="addProcessDTO"></param>
+        /// <returns></returns>
         public WebResponseContent AddOrUpdateProcess(AddProcessDTO addProcessDTO)
         {
             try
             {
-                var allProcesses = BaseDal.QueryData(); // 浠呮煡璇竴娆℃墍鏈夋暟鎹�
+                var allProcesses = BaseDal.QueryData().OrderBy(x => x.SetpNum).ToList(); // 鎸� setnum 鎺掑簭
 
                 if (addProcessDTO.id == 0) // 娣诲姞
                 {
@@ -76,6 +158,13 @@
                     if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype))
                     {
                         return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
+                    }
+
+                    // 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿
+                    foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setnum))
+                    {
+                        process.SetpNum++; // 鍚庣Щ涓�浣�
+                        BaseDal.UpdateData(process);
                     }
 
                     // 鍒涘缓鏂板伐鑹烘楠�
@@ -105,15 +194,48 @@
                         return new WebResponseContent { Status = false, Message = "鏈壘鍒拌宸ヨ壓姝ラ锛屾棤娉曟洿鏂帮紒" };
                     }
 
-                    // 鍙湁褰� setnum 鍙戠敓鍙樺寲鏃讹紝鎵嶈繘琛岄噸澶嶆�ф鏌�
-                    if (existingProcess.SetpNum != addProcessDTO.setnum && allProcesses.Any(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype && x.CraftID != addProcessDTO.id))
+                    int oldSetNum = existingProcess.SetpNum;
+                    int newSetNum = addProcessDTO.setnum;
+
+                    if (oldSetNum == newSetNum) // 濡傛灉娌℃敼椤哄簭锛岀洿鎺ユ洿鏂板叾浠栧唴瀹�
                     {
-                        return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅锛�" };
+                        existingProcess.Nodal = addProcessDTO.Nodal;
+                        existingProcess.CraftType = addProcessDTO.craftstype;
+                        existingProcess.CraftsStep = addProcessDTO.craftsstep;
+                        existingProcess.CraftContent = addProcessDTO.craftcontent;
+                        existingProcess.Tools = addProcessDTO.tools;
+                        existingProcess.Material = addProcessDTO.material;
+                        existingProcess.ArticleOneid = addProcessDTO.aritcleoneid;
+                        existingProcess.ArticleOne = addProcessDTO.articleone;
+                        existingProcess.ArticleTowid = addProcessDTO.aritcletowid;
+                        existingProcess.ArticleTwo = addProcessDTO.articletwo;
+                        existingProcess.CreateDate = DateTime.Now;
+
+                        BaseDal.UpdateData(existingProcess);
+                        return new WebResponseContent { Status = true, Data = existingProcess };
                     }
 
-                    // 鏇存柊鏁版嵁
+                    // 璋冩暣椤哄簭
+                    if (newSetNum < oldSetNum) // 鍚戝墠绉诲姩锛屽悗缁暟鎹線鍚庣Щ
+                    {
+                        foreach (var process in allProcesses.Where(x => x.SetpNum >= newSetNum && x.SetpNum < oldSetNum))
+                        {
+                            process.SetpNum++; // 鍚庣Щ涓�浣�
+                            BaseDal.UpdateData(process);
+                        }
+                    }
+                    else if (newSetNum > oldSetNum) // 鍚戝悗绉诲姩锛屽墠闈㈡暟鎹線鍓嶇Щ
+                    {
+                        foreach (var process in allProcesses.Where(x => x.SetpNum > oldSetNum && x.SetpNum <= newSetNum))
+                        {
+                            process.SetpNum--; // 鍓嶇Щ涓�浣�
+                            BaseDal.UpdateData(process);
+                        }
+                    }
+
+                    // 鏇存柊褰撳墠姝ラ鐨勬柊搴忓彿
+                    existingProcess.SetpNum = newSetNum;
                     existingProcess.Nodal = addProcessDTO.Nodal;
-                    existingProcess.SetpNum = addProcessDTO.setnum;
                     existingProcess.CraftType = addProcessDTO.craftstype;
                     existingProcess.CraftsStep = addProcessDTO.craftsstep;
                     existingProcess.CraftContent = addProcessDTO.craftcontent;
@@ -136,9 +258,6 @@
         }
 
 
-
-
-        //鑾峰彇褰撳墠浠诲姟宸ヤ綔姝ラ
         public WebResponseContent Getcircuit(string group, string takeid)
         {
             try
@@ -204,6 +323,7 @@
 
                 //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠�
                 var maxproce = process.Max(x => x.SetpNum);
+
                 var TorqueOneQuantity = nowdate.Select(x => x.TorqueOneQuantity).FirstOrDefault();
                 var TorqueTwoQuantity= nowdate.Select(x => x.TorqueTwoQuantity).FirstOrDefault();
 

--
Gitblit v1.9.3