From 2f0c81709876d76b6b120cf6ac43f05cda6dfe4c Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期六, 22 三月 2025 09:36:13 +0800
Subject: [PATCH] 修改websocket;

---
 项目代码/WIDESEAWCS_Server 正式/SerialPortService/ProcessServer.cs |  219 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 189 insertions(+), 30 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..a22ef55 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"
@@ -39,21 +39,23 @@
             return base.GetPageData(options);
         }
 
-    
+
 
         //鑾峰彇濂楃瓛鏁伴噺
-        public WebResponseContent GetSleeveandStep(string gruops)
+        public WebResponseContent GetSleeveandStep()
         {
             try
             {
-                var result = BaseDal.QueryData(x => x.CraftType == gruops) // 鍏堢瓫閫� CraftType
+                var result = BaseDal.QueryData() // 鍏堟煡鍑哄叏閮�
                     .GroupBy(x => x.CraftType) // 鎸� CraftType 鍒嗙粍
                     .Select(g => new
                     {
-                        maxNodal = g.Max(a => a.Nodal),
-                        sumTorqueSum = g.Sum(a => a.TorqueSum)
+                        //灏介噺鍚庣鏁版嵁缁欏墠绔殑鏁版嵁锛岃皟涓�娆℃帴鍙e氨鍙互鎷垮埌锛屼笉瑕佽鍓嶇澶氭璋冪敤
+                        CraftType = g.Key, // 娣诲姞 CraftType
+                        maxNodal = g.Max(a => a.Nodal),//鏈�澶ф楠�
+                        sumTorqueSum = g.Sum(a => a.TorqueSum),//濂楃瓛鏁伴噺
                     }).ToList();
-                
+
                 return new WebResponseContent { Status = true, Data = result };
             }
             catch (Exception ex)
@@ -63,25 +65,115 @@
         }
 
 
+        #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) // 娣诲姞
                 {
                     // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 setnum
-                    if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype))
+                    if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setpNum && x.CraftType == addProcessDTO.craftstype))
                     {
-                        return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
+                        return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setpNum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
                     }
 
+                    // 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿
+                    foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setpNum))
+                    {
+                        process.SetpNum++; // 鍚庣Щ涓�浣�
+                        BaseDal.UpdateData(process);
+                    }
+                    
                     // 鍒涘缓鏂板伐鑹烘楠�
                     var proces = new Dt_Process
                     {
-                        SetpNum = addProcessDTO.setnum,
+                        Nodal=addProcessDTO.Nodal,
+                        SetpNum = addProcessDTO.setpNum,
                         CraftType = addProcessDTO.craftstype,
                         CraftsStep = addProcessDTO.craftsstep,
                         CraftContent = addProcessDTO.craftcontent,
@@ -91,8 +183,11 @@
                         ArticleOne = addProcessDTO.articleone,
                         ArticleTowid = addProcessDTO.aritcletowid,
                         ArticleTwo = addProcessDTO.articletwo,
-                        CreateDate = DateTime.Now
+                        CreateDate = DateTime.Now,
+                        //涓虹┖灏辨槸0锛屼笉涓虹┖灏辨槸1
+                        TorqueSum = (string.IsNullOrEmpty(addProcessDTO.articleone) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.articletwo) ? 0 : 1)
                     };
+                  
 
                     BaseDal.AddData(proces);
                     return new WebResponseContent { Status = true, Data = proces };
@@ -105,15 +200,53 @@
                         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.setpNum;
+
+                    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;
+                        existingProcess.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.articleone) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.articletwo) ? 0 : 1);
+
+                        BaseDal.UpdateData(existingProcess);
+                        return new WebResponseContent { Status = true, Data = existingProcess };
+                    }
+                    // 鏇存柊 TorqueSum
+                    
+
+
+
+                    // 璋冩暣椤哄簭
+                    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 +269,6 @@
         }
 
 
-
-
-        //鑾峰彇褰撳墠浠诲姟宸ヤ綔姝ラ
         public WebResponseContent Getcircuit(string group, string takeid)
         {
             try
@@ -155,13 +285,13 @@
 
                 //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠�
                 var maxproce = process.Max(x => x.SetpNum);
-                
+
 
                 //鎷垮埌宸ヨ壓琛ㄤ腑姝ラ涓�1鐨�
                 var proNoe = process.Where(x => x.SetpNum == 1);//鑾峰緱宸ヨ壓琛ㄤ腑鐨勭涓�姝�
                 if (torp.Count == 0)
                 {
-                    return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data =new { proNoe, maxproce } };
+                    return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data = new { proNoe, maxproce } };
                 }
 
                 var nowNum = torp.Max(x => x.ProcessSte);//鑾峰緱褰撳墠鏈�澶ф楠�
@@ -169,7 +299,7 @@
                 //op.Modifier="true"  琛ㄧず鏄己鍒舵墽琛岋紝灏变笉闇�瑕佸垽鏂簲鎵殑娆℃暟锛岀洿鎺ヨ繑鍥� op.ProcessSte+1
                 if (Mod == "true")
                 {
-                   var  now= maxproce + 1;
+                    var now = maxproce + 1;
                     return new WebResponseContent { Status = true, Data = new { proNoe, maxproce, now } };
                 }
 
@@ -179,7 +309,7 @@
 
                 //鍒ゆ柇褰撳墠姝ラ鐨勬壄鍔涙鏁版槸鍚﹀畬鎴愶紝娌″畬鎴愯繑鍥炲綋鍓嶆楠わ紝瀹屾垚杩斿洖op.ProcessSte+1锛岀姸鎬佸�肩粰false   
 
-                return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data =new { maxpro, maxproce } };
+                return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data = new { maxpro, maxproce } };
 
             }
             catch (Exception ex)
@@ -188,7 +318,7 @@
             }
         }
 
-        public WebResponseContent Nextprocess(SetpDTO setpDTO,bool flag)//寮哄埗鎵ц缁欐垜true
+        public WebResponseContent Nextprocess(SetpDTO setpDTO, bool flag)//寮哄埗鎵ц缁欐垜true
         {
             try
             {
@@ -204,17 +334,18 @@
 
                 //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠�
                 var maxproce = process.Max(x => x.SetpNum);
+
                 var TorqueOneQuantity = nowdate.Select(x => x.TorqueOneQuantity).FirstOrDefault();
-                var TorqueTwoQuantity= nowdate.Select(x => x.TorqueTwoQuantity).FirstOrDefault();
+                var TorqueTwoQuantity = nowdate.Select(x => x.TorqueTwoQuantity).FirstOrDefault();
 
                 //鍒ゆ柇瀛樺�艰〃鐨勬暟鎹槸鍚︽弧瓒宠姝ラ闇�瑕佸嚑鏉℃暟鎹殑鏉℃暟
                 int TargetCount = TorqueOneQuantity + TorqueTwoQuantity;//涓�鍏辫鏈夊灏戞潯鏁版嵁锛堢洰鏍囨暟閲忥級
 
                 if (practiceCount < TargetCount && !flag)
                 {
-                    return new WebResponseContent { Status = true, Message = "娌℃湁瀹屾垚褰撳墠姝ラ", Data =new { nowdate, maxproce } };
+                    return new WebResponseContent { Status = true, Message = "娌℃湁瀹屾垚褰撳墠姝ラ", Data = new { nowdate, maxproce } };
                 }
-                else if(practiceCount == TargetCount || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃�
+                else if (practiceCount == TargetCount || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃�
                 {
                     //寮哄埗璺宠浆涓嬩竴姝ワ紝鎻掑叆op琛ㄥ綋鍓嶆楠�
                     op.TakeId = setpDTO.takeid;
@@ -236,7 +367,7 @@
 
 
                 _torqueOpRepository.AddData(op);
-                return new WebResponseContent { Status = true,Message= $"浣犲凡瀹屾垚褰撳墠绗瑊setpDTO.setnum}锛屽噯澶囩{num}姝ヤ换鍔�", Data = new { nex, maxproce } };
+                return new WebResponseContent { Status = true, Message = $"浣犲凡瀹屾垚褰撳墠绗瑊setpDTO.setnum}锛屽噯澶囩{num}姝ヤ换鍔�", Data = new { nex, maxproce } };
             }
             catch (Exception ex)
             {
@@ -267,8 +398,36 @@
                 return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message };
             }
         }
-    }
-       
 
+        /// <summary>
+        /// 璇诲彇褰撳墠宸ヨ壓姝ラ鐨勬壄鍔涘�间笌娆℃暟
+        /// </summary>
+        /// <param name="grop"></param>
+        /// <param name="setnum"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public WebResponseContent GetValueandNumber(string grop, int setnum)
+        {
+            try
+            {
+                var result = BaseDal.QueryData(x => x.CraftType == grop && x.SetpNum == setnum)
+                    .Select(g => new
+                    {
+                        g.TorqueOne,
+                        g.TorqueOneQuantity,
+                        g.TorqueTwo,
+                        g.TorqueTwoQuantity
+                    });
+                return new WebResponseContent { Status = true, Data = result }; 
+              
+            }
+            catch (Exception ex)
+            {
+                return new WebResponseContent { Status = false,Message="閿欒锛�"+ex }; throw;
+            }
+        }
     }
 
+
+}
+

--
Gitblit v1.9.3