From d3ae2e67d8237e8474c7b88f526619550608b933 Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期四, 13 三月 2025 21:51:20 +0800 Subject: [PATCH] 通信 --- 项目代码/WIDESEAWCS_Server 正式/SerialPortService/ProcessServer.cs | 243 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 177 insertions(+), 66 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 3ebbded..76a679e 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" @@ -4,6 +4,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; +using AutoMapper.Configuration.Conventions; using SqlSugar; using WIDESEA_ISerialPortRepository; using WIDESEA_SerialPortRepository; @@ -30,9 +31,9 @@ public override PageGridData<Dt_Process> GetPageData(PageDataOptions options) { - OrderByParameters = new Dictionary<string, OrderByType> - { - { nameof(Dt_Process.ArticleOne), OrderByType.Asc },//鎸変粈涔堝瓧娈垫帓搴� + OrderByParameters = new Dictionary<string, OrderByType> + { + { nameof(Dt_Process.SetpNum), OrderByType.Asc },//鎸変粈涔堝瓧娈垫帓搴� }; return base.GetPageData(options); } @@ -63,6 +64,7 @@ } } + //鑾峰彇濂楃瓛鏁伴噺 public WebResponseContent GetSleeveandStep(string gruops) { try @@ -86,104 +88,213 @@ } - public WebResponseContent AddProcess(AddProcessDTO addProcessDTO) - { - try - { - var proces = new Dt_Process(); - proces.Nodal = addProcessDTO.nodal; - proces.CraftType = addProcessDTO.craftstype; - proces.CraftsStep = addProcessDTO.craftsstep; - proces.CraftContent = addProcessDTO.craftcontent; - proces.TorqueSum = addProcessDTO.sleeveNum; - proces.Tools = addProcessDTO.tools; - _unitOfWorkManage.BeginTran(); - BaseDal.AddData(proces); - _unitOfWorkManage.CommitTran(); - return new WebResponseContent { Status = true, Data = proces }; - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message }; - } - } - public WebResponseContent Upprocess(PutProcessDTO addProcessDTO) + public WebResponseContent AddOrUpdateProcess(AddProcessDTO addProcessDTO) { try { - var proces = BaseDal.QueryData(x => x.CraftID == addProcessDTO.id).FirstOrDefault(); - if (proces == null) + _unitOfWorkManage.BeginTran(); // 寮�鍚簨鍔� + + // 鍒ゆ柇鏄坊鍔犺繕鏄洿鏂� + if (addProcessDTO.id == 0)//娣诲姞 { - return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌" }; + // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 setnum + bool isExist = BaseDal.QueryData(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype).Any(); + if (isExist) + { + 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, + Creater = "admin", + CreateDate = DateTime.Now + }; + + BaseDal.AddData(proces); + _unitOfWorkManage.CommitTran(); // 鎻愪氦浜嬪姟 + return new WebResponseContent { Status = true, Data = proces }; } - proces.Nodal = addProcessDTO.nodal; - proces.CraftType = addProcessDTO.craftstype; - proces.CraftsStep = addProcessDTO.craftsstep; - proces.CraftContent = addProcessDTO.craftcontent; - proces.TorqueSum = addProcessDTO.sleeveNum; - proces.Tools = addProcessDTO.tools; - _unitOfWorkManage.BeginTran(); - BaseDal.UpdateData(proces); - _unitOfWorkManage.CommitTran(); - return new WebResponseContent { Status = true, Data = proces }; + else + { + // 鏌ヨ褰撳墠瑕佹洿鏂扮殑璁板綍 + var existingProcess = BaseDal.QueryFirst(x => x.CraftID == addProcessDTO.id); + if (existingProcess == null) + { + return new WebResponseContent { Status = false, Message = "鏈壘鍒拌宸ヨ壓姝ラ锛屾棤娉曟洿鏂帮紒" }; + } + + // 鍙湁褰� setnum 鍙戠敓鍙樺寲鏃讹紝鎵嶈繘琛岄噸澶嶆�ф鏌� + if (existingProcess.Nodal != addProcessDTO.setnum) + { + bool isExist = BaseDal.QueryData(x => x.Nodal == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype && x.CraftID != addProcessDTO.id).Any(); + if (isExist) + { + return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅锛�" }; + } + } + + // 鏇存柊鏁版嵁 + 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); + _unitOfWorkManage.CommitTran(); // 鎻愪氦浜嬪姟 + + return new WebResponseContent { Status = true, Data = existingProcess }; + } } catch (Exception ex) { - _unitOfWorkManage.RollbackTran(); - return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message }; + _unitOfWorkManage.RollbackTran(); // 浜嬪姟鍥炴粴 + return new WebResponseContent { Status = false, Message = "鎿嶄綔澶辫触锛�" + ex.Message }; } } + + + + //鑾峰彇褰撳墠浠诲姟宸ヤ綔姝ラ public WebResponseContent Getcircuit(string group, string takeid) { try { - ///濡傛灉杩欎釜瀛樺�艰〃涓病鏈夋楠や竴杩欎箞鎼烇紵鎴戣繖涔堟樉绀虹粰鍓嶇鐪� - + //鏍规嵁缁勫拰浠诲姟鍙疯幏寰梩op琛ㄥ叏閮ㄦ暟鎹� + var torp = _torqueOpRepository.QueryData(x => x.GroupOp == group && x.TakeId == takeid); - // 鍏堟煡鍒拌繖鏉′换鍔� - var putake = _putakeRepository.QueryData(x => x.Njtakeid == takeid && x.Grouptype == group).OrderBy(x => x.Dispatchtime).FirstOrDefault(); - if (putake==null) - { - return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌" }; - } - //鑾峰彇鍒板綋鍓嶅畬鎴愮殑姝ラ - var nowNum = _torqueOpRepository.QueryData(x => x.GroupOp == group && x.TakeId == takeid).Max(x => x.ProcessSte); - - - //鏍规嵁鍒嗙粍鍜屾楠ゆ壘鍒拌鏉℃暟鎹� - var process = BaseDal.QueryData(x => x.CraftType == group&&x.SetpNum== nowNum).FirstOrDefault(); - + //鑾峰彇Modifier ="true" 琛ㄧず鏄己鍒舵墽琛� + var Mod = torp.Select(x => x.Modifier).FirstOrDefault(); + //鏌ュ嚭宸ヨ壓琛� + var process = BaseDal.QueryData(x => x.CraftType == group); //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠� - var maxproce = BaseDal.QueryData(x => x.CraftType == group).Max(x => x.SetpNum); + var maxproce = process.Max(x => x.SetpNum); + - //涓�鍏辫鏈夊灏戞潯鏁版嵁锛堢洰鏍囨暟閲忥級 - int TargetCount = process.TorqueOneQuantity + process.TorqueTwoQuantity; + //鎷垮埌宸ヨ壓琛ㄤ腑姝ラ涓�1鐨� + var proNoe = process.Where(x => x.SetpNum == 1);//鑾峰緱宸ヨ壓琛ㄤ腑鐨勭涓�姝� + if (torp.Count == 0) + { + return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data =new { proNoe, maxproce } }; + } + + var nowNum = torp.Max(x => x.ProcessSte);//鑾峰緱褰撳墠鏈�澶ф楠� + + //op.Modifier="true" 琛ㄧず鏄己鍒舵墽琛岋紝灏变笉闇�瑕佸垽鏂簲鎵殑娆℃暟锛岀洿鎺ヨ繑鍥� op.ProcessSte+1 + if (Mod == "true") + { + var now= maxproce + 1; + return new WebResponseContent { Status = true, Data = new { proNoe, maxproce, now } }; + } + + //濡傛灉瀛樺�艰〃涓湁鏁版嵁灏辫繑鍥炵粰浠栧綋鍓嶅伐鑹烘楠� + var maxpro = process.Where(x => x.SetpNum == nowNum); + //鍒ゆ柇褰撳墠姝ラ鐨勬壄鍔涙鏁版槸鍚﹀畬鎴愶紝娌″畬鎴愯繑鍥炲綋鍓嶆楠わ紝瀹屾垚杩斿洖op.ProcessSte+1锛岀姸鎬佸�肩粰false + + return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data =new { maxpro, maxproce } }; + + } + catch (Exception ex) + { + return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message }; + } + } + + public WebResponseContent Nextprocess(SetpDTO setpDTO,bool flag)//寮哄埗鎵ц缁欐垜true + { + try + { + Dt_TorqueOp op = new Dt_TorqueOp(); + //鏌ュ嚭宸ヨ壓琛� + var process = BaseDal.QueryData(x => x.CraftType == setpDTO.group); // 鏌ヨ褰撳墠姝ラ鐨� TorqueOp 璁板綍锛屽尮閰� ProcessSte鍜岀粍锛屼换鍔″彿锛屾鏌ユ槸鍚﹁揪鍒拌姹傦紙瀹為檯鏁伴噺锛� - int practiceCount = _torqueOpRepository.QueryData(x => x.GroupOp == group&&x.TakeId== takeid).Count(); + int practiceCount = _torqueOpRepository.QueryData(x => x.ProcessSte == setpDTO.setnum && x.GroupOp == setpDTO.group && x.TakeId == setpDTO.takeid).Count(); + //鏌ュ埌鏈夎鏉℃暟鎹簡(鏇村叿鍒嗙粍鍜屾楠ゆ壘鍒拌鏉℃暟鎹�) + var nowdate = process.Where(x => x.CraftType == setpDTO.group && x.SetpNum == setpDTO.setnum); + //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠� + var maxproce = process.Max(x => x.SetpNum); + var TorqueOneQuantity = nowdate.Select(x => x.TorqueOneQuantity).FirstOrDefault(); + var TorqueTwoQuantity= nowdate.Select(x => x.TorqueTwoQuantity).FirstOrDefault(); - if (practiceCount < TargetCount) + //鍒ゆ柇瀛樺�艰〃鐨勬暟鎹槸鍚︽弧瓒宠姝ラ闇�瑕佸嚑鏉℃暟鎹殑鏉℃暟 + int TargetCount = TorqueOneQuantity + TorqueTwoQuantity;//涓�鍏辫鏈夊灏戞潯鏁版嵁锛堢洰鏍囨暟閲忥級 + + if (practiceCount < TargetCount && !flag) { - return new WebResponseContent { Status = false, Message = "娌℃湁瀹屾垚褰撳墠姝ラ",Data= process }; + return new WebResponseContent { Status = true, Message = "娌℃湁瀹屾垚褰撳墠姝ラ", Data =new { nowdate, maxproce } }; } - if (maxproce== nowNum) + else if(practiceCount == TargetCount || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃� + { + //寮哄埗璺宠浆涓嬩竴姝ワ紝鎻掑叆op琛ㄥ綋鍓嶆楠� + op.TakeId = setpDTO.takeid; + op.GroupOp = setpDTO.group; + op.ProcessSte = setpDTO.setnum; + op.CreateDate = DateTime.Now; + op.Creater = "admin"; + op.Modifier = "true"; + } + + if (maxproce == setpDTO.setnum) { return new WebResponseContent { Status = false, Message = "浣犲畬鎴愪簡褰撳墠浣滀笟" }; } - int num = nowNum + 1; + int num = setpDTO.setnum + 1; - var nex = BaseDal.QueryFirst(x => x.CraftType == group && x.SetpNum == num); + //杩斿洖涓嬩竴姝ユ楠� + var nex = process.Where(x => x.CraftType == setpDTO.group && x.SetpNum == num).FirstOrDefault(); - return new WebResponseContent { Status = true, Data = nex }; + + _torqueOpRepository.AddData(op); + return new WebResponseContent { Status = true,Message= $"浣犲凡瀹屾垚褰撳墠绗瑊setpDTO.setnum}锛屽噯澶囩{num}姝ヤ换鍔�", Data = new { nex, maxproce } }; + } + catch (Exception ex) + { + return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message }; + } + } + + public WebResponseContent PreviousProcess(SetpDTO setpDTO) + { + try + { + //鏌ュ嚭宸ヨ壓琛� + var process = BaseDal.QueryData(x => x.CraftType == setpDTO.group); + + // 鏌ヨ褰撳墠姝ラ鐨� TorqueOp 璁板綍锛屽尮閰� ProcessSte鍜岀粍锛屼换鍔″彿锛屾鏌ユ槸鍚﹁揪鍒拌姹傦紙瀹為檯鏁伴噺锛� + int practiceCount = _torqueOpRepository.QueryData(x => x.ProcessSte == setpDTO.setnum && x.GroupOp == setpDTO.group && x.TakeId == setpDTO.takeid).Count(); + //鏌ュ埌鏈夎鏉℃暟鎹簡(鏇村叿鍒嗙粍鍜屾楠ゆ壘鍒拌鏉℃暟鎹�) + var nowdate = process.Where(x => x.CraftType == setpDTO.group && x.SetpNum == setpDTO.setnum); + + //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠� + 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 } }; } catch (Exception ex) { -- Gitblit v1.9.3