From 45045dab394abe534fa5221a1e09a90c1eebf835 Mon Sep 17 00:00:00 2001
From: qiuyao <qiuyao@hnkhzn.com>
Date: 星期一, 24 三月 2025 10:29:21 +0800
Subject: [PATCH] 更新通讯源码

---
 项目代码/WIDESEAWCS_Server 正式/SerialPortService/ProcessServer.cs |  272 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 180 insertions(+), 92 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 a22ef55..2962900 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"
@@ -1,10 +1,13 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
+using AutoMapper;
 using AutoMapper.Configuration.Conventions;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
 using SqlSugar;
 using WIDESEA_ISerialPortRepository;
 using WIDESEA_SerialPortRepository;
@@ -22,11 +25,14 @@
         private IPutakeRepository _putakeRepository;
         private IUnitOfWorkManage _unitOfWorkManage;
         private ITorqueOpRepository _torqueOpRepository;
-        public ProcessServer(IProcessRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IPutakeRepository putakeRepository, ITorqueOpRepository torqueOpRepository) : base(BaseDal)
+        private readonly IMapper _mapper;
+
+        public ProcessServer(IProcessRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IPutakeRepository putakeRepository, ITorqueOpRepository torqueOpRepository, IMapper mapper) : base(BaseDal)
         {
             _putakeRepository = putakeRepository;
             _unitOfWorkManage = unitOfWorkManage;
             _torqueOpRepository = torqueOpRepository;
+            _mapper = mapper;
         }
 
         public override PageGridData<Dt_Process> GetPageData(PageDataOptions options)
@@ -39,9 +45,10 @@
             return base.GetPageData(options);
         }
 
-
-
-        //鑾峰彇濂楃瓛鏁伴噺
+        /// <summary>
+        /// 鑾峰彇濂楃瓛鏁伴噺
+        /// </summary>
+        /// <returns>杩斿洖鐝粍銆佹�绘楠ゃ�佸绛掓暟閲�</returns>
         public WebResponseContent GetSleeveandStep()
         {
             try
@@ -152,115 +159,160 @@
         {
             try
             {
-                var allProcesses = BaseDal.QueryData().OrderBy(x => x.SetpNum).ToList(); // 鎸� setnum 鎺掑簭
+                var allProcesses = BaseDal.QueryData().OrderBy(x => x.SetpNum).ToList(); // 鎸� SetpNum 鎺掑簭
+                Dt_Process proces = _mapper.Map<Dt_Process>(addProcessDTO);
 
-                if (addProcessDTO.id == 0) // 娣诲姞
+                #region 娣诲姞
+                if (addProcessDTO.CraftID == 0) // 娣诲姞
                 {
-                    // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 setnum
-                    if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setpNum && x.CraftType == addProcessDTO.craftstype))
-                    {
-                        return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setpNum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
-                    }
+                    //// 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 SetpNum
+                    //if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setpNum && x.CraftType == addProcessDTO.craftstype))
+                    //{
+                    //    return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setpNum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
+                    //}
+
+                    //// 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿
+                    //foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setpNum))
+                    //{
+                    //    process.SetpNum++; // 鍚庣Щ涓�浣�
+                    //    BaseDal.UpdateData(process);
+                    //}
 
                     // 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿
-                    foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setpNum))
-                    {
-                        process.SetpNum++; // 鍚庣Щ涓�浣�
-                        BaseDal.UpdateData(process);
-                    }
-                    
-                    // 鍒涘缓鏂板伐鑹烘楠�
-                    var proces = new Dt_Process
-                    {
-                        Nodal=addProcessDTO.Nodal,
-                        SetpNum = addProcessDTO.setpNum,
-                        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,
-                        //涓虹┖灏辨槸0锛屼笉涓虹┖灏辨槸1
-                        TorqueSum = (string.IsNullOrEmpty(addProcessDTO.articleone) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.articletwo) ? 0 : 1)
-                    };
-                  
+                    var processList = allProcesses.Where(x => x.SetpNum >= addProcessDTO.SetpNum).ToList();
 
+                    if (processList != null)
+                    {
+                        for (int i = 0; i < processList.Count; i++)
+                        {
+                            processList[i].SetpNum += 1;
+                        }
+                    }
+
+                    // 鍒涘缓鏂板伐鑹烘楠�
+                    
+                    proces.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.ArticleOne) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.ArticleTwo) ? 0 : 1);
+                    proces.CreateDate = DateTime.Now;
+
+                    //var proces = new Dt_Process
+                    //{
+                    //    Nodal = addProcessDTO.Nodal,
+                    //    SetpNum = addProcessDTO.setpNum,
+                    //    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,
+                    //    PointAxisXYZ = addProcessDTO.PointAxisXYZ,
+                    //    PointAxisHPB = addProcessDTO.PointAxisHPB,
+                    //    //涓虹┖灏辨槸0锛屼笉涓虹┖灏辨槸1
+                    //    TorqueSum = (string.IsNullOrEmpty(addProcessDTO.articleone) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.articletwo) ? 0 : 1)
+                    //};
+
+                    _unitOfWorkManage.BeginTran();
                     BaseDal.AddData(proces);
+                    BaseDal.UpdateData(processList);
+                    _unitOfWorkManage.CommitTran();
                     return new WebResponseContent { Status = true, Data = proces };
                 }
+                #endregion
+                #region 淇敼
                 else // 鏇存柊
                 {
-                    var existingProcess = allProcesses.FirstOrDefault(x => x.CraftID == addProcessDTO.id);
+                    var existingProcess = allProcesses.FirstOrDefault(x => x.CraftID == addProcessDTO.CraftID);
                     if (existingProcess == null)
                     {
                         return new WebResponseContent { Status = false, Message = "鏈壘鍒拌宸ヨ壓姝ラ锛屾棤娉曟洿鏂帮紒" };
                     }
 
                     int oldSetNum = existingProcess.SetpNum;
-                    int newSetNum = addProcessDTO.setpNum;
+                    int newSetNum = addProcessDTO.SetpNum;
 
-                    if (oldSetNum == newSetNum) // 濡傛灉娌℃敼椤哄簭锛岀洿鎺ユ洿鏂板叾浠栧唴瀹�
+                    if (existingProcess.SetpNum == addProcessDTO.SetpNum) // 濡傛灉娌℃敼椤哄簭锛岀洿鎺ユ洿鏂板叾浠栧唴瀹�
                     {
-                        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);
+                        proces.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.ArticleOne) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.ArticleTwo) ? 0 : 1);
+                        proces.ModifyDate = DateTime.Now;
 
-                        BaseDal.UpdateData(existingProcess);
-                        return new WebResponseContent { Status = true, Data = existingProcess };
+                        //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(proces);
+                        return new WebResponseContent { Status = true, Data = proces };
                     }
                     // 鏇存柊 TorqueSum
-                    
-
-
 
                     // 璋冩暣椤哄簭
                     if (newSetNum < oldSetNum) // 鍚戝墠绉诲姩锛屽悗缁暟鎹線鍚庣Щ
                     {
-                        foreach (var process in allProcesses.Where(x => x.SetpNum >= newSetNum && x.SetpNum < oldSetNum))
+                        var processList = allProcesses.Where(x => x.SetpNum >= newSetNum && x.SetpNum < oldSetNum).ToList();
+
+                        for (int i = 0; i < processList.Count; i++)
                         {
-                            process.SetpNum++; // 鍚庣Щ涓�浣�
-                            BaseDal.UpdateData(process);
+                            processList[i].SetpNum += 1;
                         }
+
+                        BaseDal.UpdateData(processList);
+                        //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))
+                        var processList = allProcesses.Where(x => x.SetpNum > oldSetNum && x.SetpNum <= newSetNum).ToList();
+
+                        for (int i = 0; i < processList.Count; i++)
                         {
-                            process.SetpNum--; // 鍓嶇Щ涓�浣�
-                            BaseDal.UpdateData(process);
+                            processList[i].SetpNum -= 1;
                         }
+
+                        BaseDal.UpdateData(processList);
+
+                        //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.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;
+                    proces.SetpNum = newSetNum;
+                    proces.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.ArticleOne) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.ArticleTwo) ? 0 : 1);
+                    proces.ModifyDate = DateTime.Now;
 
-                    BaseDal.UpdateData(existingProcess);
-                    return new WebResponseContent { Status = true, Data = existingProcess };
+                    //// 鏇存柊褰撳墠姝ラ鐨勬柊搴忓彿
+                    //existingProcess.SetpNum = newSetNum;
+                    //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(proces);
+                    return new WebResponseContent { Status = true, Data = proces };
                 }
+                #endregion
             }
             catch (Exception ex)
             {
@@ -273,12 +325,13 @@
         {
             try
             {
-                //鏍规嵁缁勫拰浠诲姟鍙疯幏寰梩op琛ㄥ叏閮ㄦ暟鎹�
+                Dt_Process proNow = new Dt_Process();
+                //鏍规嵁缁勫拰浠诲姟鍙疯幏寰梩orqueOp琛ㄥ叏閮ㄦ暟鎹�
                 var torp = _torqueOpRepository.QueryData(x => x.GroupOp == group && x.TakeId == takeid);
 
 
                 //鑾峰彇Modifier  ="true"  琛ㄧず鏄己鍒舵墽琛�
-                var Mod = torp.Select(x => x.Modifier).FirstOrDefault();
+                //var Mod = torp.Select(x => x.Modifier).FirstOrDefault();
 
                 //鏌ュ嚭宸ヨ壓琛�
                 var process = BaseDal.QueryData(x => x.CraftType == group);
@@ -288,28 +341,55 @@
 
 
                 //鎷垮埌宸ヨ壓琛ㄤ腑姝ラ涓�1鐨�
-                var proNoe = process.Where(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 } };
+                    proNow = process.Where(x => x.SetpNum == 1).First();
+                    return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data = new { proNow, maxproce } };
                 }
 
                 var nowNum = torp.Max(x => x.ProcessSte);//鑾峰緱褰撳墠鏈�澶ф楠�
-
+                var flag = torp.Where(a => a.ProcessSte == nowNum && a.Modifier == "true").FirstOrDefault();
                 //op.Modifier="true"  琛ㄧず鏄己鍒舵墽琛岋紝灏变笉闇�瑕佸垽鏂簲鎵殑娆℃暟锛岀洿鎺ヨ繑鍥� op.ProcessSte+1
-                if (Mod == "true")
+                //if (Mod == "true")
+                //{
+                //    var now = maxproce + 1;
+                //    return new WebResponseContent { Status = true, Data = new { proNoe, maxproce, now } };
+                //}
+                if (flag != null)
                 {
                     var now = maxproce + 1;
-                    return new WebResponseContent { Status = true, Data = new { proNoe, maxproce, now } };
+                    proNow = process.Where(x => x.SetpNum == now).First();
+                    var finish= process.Where(x => x.SetpNum > now);
+                    return new WebResponseContent { Status = true, Data = new { proNow, maxproce, now, finish } };
                 }
 
                 //濡傛灉瀛樺�艰〃涓湁鏁版嵁灏辫繑鍥炵粰浠栧綋鍓嶅伐鑹烘楠�
-                var maxpro = process.Where(x => x.SetpNum == nowNum);
-
+                var maxpro = process.Where(x => x.SetpNum == nowNum).FirstOrDefault();
+                if (maxpro != null)
+                {
+                    if (maxpro.TorqueOneQuantity + maxpro.TorqueTwoQuantity > torp.Where(a => a.ProcessSte == nowNum).Count())
+                    {
+                        proNow = maxpro;
+                        var finish = process.Where(x => x.SetpNum < nowNum);
+                        return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data = new { proNow, maxproce, finish } };
+                    }
+                    else
+                    {
+                        var now = nowNum + 1;
+                        proNow = process.Where(x => x.SetpNum == now).First();
+                        var finish = process.Where(x => x.SetpNum < now);
+                        return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data = new { proNow, maxproce, finish } };
+                    }
+                }
+                else
+                {
+                    return new WebResponseContent { Status = false, Message = "宸ヨ壓鏁版嵁鏈夎"};
+                }
 
                 //鍒ゆ柇褰撳墠姝ラ鐨勬壄鍔涙鏁版槸鍚﹀畬鎴愶紝娌″畬鎴愯繑鍥炲綋鍓嶆楠わ紝瀹屾垚杩斿洖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)
@@ -318,6 +398,12 @@
             }
         }
 
+        /// <summary>
+        /// 宸ヨ壓涓嬩竴姝ヨ烦杞�
+        /// </summary>
+        /// <param name="setpDTO">褰撳墠鐝粍鐨勪换鍔″綋鍓嶆楠�</param>
+        /// <param name="flag">鏄惁寮哄埗鎵ц锛涙槸true锛屽惁false</param>
+        /// <returns>杩斿洖1銆佸綋鍓嶆楠わ紱2銆佹渶澶ф楠わ紱3銆佸凡瀹屾垚鐨勫伐鑹�</returns>
         public WebResponseContent Nextprocess(SetpDTO setpDTO, bool flag)//寮哄埗鎵ц缁欐垜true
         {
             try
@@ -345,7 +431,7 @@
                 {
                     return new WebResponseContent { Status = true, Message = "娌℃湁瀹屾垚褰撳墠姝ラ", Data = new { nowdate, maxproce } };
                 }
-                else if (practiceCount == TargetCount || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃�
+                else if ((practiceCount == TargetCount && TargetCount == 0) || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃�
                 {
                     //寮哄埗璺宠浆涓嬩竴姝ワ紝鎻掑叆op琛ㄥ綋鍓嶆楠�
                     op.TakeId = setpDTO.takeid;
@@ -363,17 +449,18 @@
                 int num = setpDTO.setnum + 1;
 
                 //杩斿洖涓嬩竴姝ユ楠�
-                var nex = process.Where(x => x.CraftType == setpDTO.group && x.SetpNum == num).FirstOrDefault();
-
+                var nex = process.Where(x => x.SetpNum == num).FirstOrDefault();
+                var finish = process.Where(x => x.SetpNum < num).ToList();
 
                 _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, finish } };
             }
             catch (Exception ex)
             {
                 return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message };
             }
         }
+
 
         public WebResponseContent PreviousProcess(SetpDTO setpDTO)
         {
@@ -391,7 +478,8 @@
                 var maxproce = process.Max(x => x.SetpNum);
                 int num = setpDTO.setnum - 1;
                 var nex = process.Where(x => x.CraftType == setpDTO.group && x.SetpNum == num).FirstOrDefault();
-                return new WebResponseContent { Status = true, Message = $"涓婁竴姝setpDTO.setnum}", Data = new { nex, maxproce } };
+                var finish = process.Where(x => x.SetpNum < num).ToList();
+                return new WebResponseContent { Status = true, Message = $"涓婁竴姝setpDTO.setnum}", Data = new { nex, maxproce, finish } };
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3