yanjinhui
2025-03-20 62751e74a70b6f1ca848e0f5fdb6fb8922d99f38
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/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来判断,有id就更新没有就添加
        /// </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();