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 | 560 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 458 insertions(+), 102 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 a17ae45..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,11 +1,16 @@ 锘縰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; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; @@ -16,142 +21,376 @@ namespace WIDESEAWCS_TaskInfoService { public class ProcessServer : ServiceBase<Dt_Process, IProcessRepository>, IProcessServer - { - + { + private IPutakeRepository _putakeRepository; private IUnitOfWorkManage _unitOfWorkManage; - public ProcessServer(IProcessRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) + private ITorqueOpRepository _torqueOpRepository; + private readonly IMapper _mapper; + + public ProcessServer(IProcessRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IPutakeRepository putakeRepository, ITorqueOpRepository torqueOpRepository, IMapper mapper) : base(BaseDal) { - _unitOfWorkManage=unitOfWorkManage; + _putakeRepository = putakeRepository; + _unitOfWorkManage = unitOfWorkManage; + _torqueOpRepository = torqueOpRepository; + _mapper = mapper; } - + public override PageGridData<Dt_Process> GetPageData(PageDataOptions options) + { + OrderByParameters = new Dictionary<string, OrderByType> + { + { nameof(Dt_Process.SetpNum), OrderByType.Asc },//鎸変粈涔堝瓧娈垫帓搴� + { nameof(Dt_Process.CraftType), OrderByType.Asc } + }; + return base.GetPageData(options); + } - public WebResponseContent GetProcess(string gruop) + /// <summary> + /// 鑾峰彇濂楃瓛鏁伴噺 + /// </summary> + /// <returns>杩斿洖鐝粍銆佹�绘楠ゃ�佸绛掓暟閲�</returns> + public WebResponseContent GetSleeveandStep() { try { - _unitOfWorkManage.BeginTran(); - var proce = BaseDal.QueryData(i => i.CraftType == gruop); - - - _unitOfWorkManage.CommitTran(); - if (proce != null) - { - return new WebResponseContent { Status = true, Data = proce }; - } - else - { - return new WebResponseContent{ Status = false, Message = "鏁版嵁涓虹┖"}; - } - - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return new WebResponseContent { Status = false, Message = "澶辫触" + ex.Message }; - } - } - - public WebResponseContent GetSleeveandStep(string gruops) - { - try - { - _unitOfWorkManage.BeginTran(); - 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(); - _unitOfWorkManage.CommitTran() ; + return new WebResponseContent { Status = true, Data = result }; } catch (Exception ex) { - _unitOfWorkManage.RollbackTran(); return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message }; } } - 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 }; - } - } + #region + //public WebResponseContent AddOrUpdateProcess(AddProcessDTO addProcessDTO) + //{ + // try + // { + // var allProcesses = BaseDal.QueryData(); // 浠呮煡璇竴娆℃墍鏈夋暟鎹� - public WebResponseContent Upprocess(PutProcessDTO addProcessDTO) + // 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 proces = BaseDal.QueryData(x => x.CraftID == addProcessDTO.id).FirstOrDefault(); - if (proces == null) + var allProcesses = BaseDal.QueryData().OrderBy(x => x.SetpNum).ToList(); // 鎸� SetpNum 鎺掑簭 + Dt_Process proces = _mapper.Map<Dt_Process>(addProcessDTO); + + #region 娣诲姞 + if (addProcessDTO.CraftID == 0) // 娣诲姞 { - return new WebResponseContent { Status = false,Message="娌℃湁鎵惧埌"}; - } - 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 }; - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message }; - } - } + //// 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 SetpNum + //if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setpNum && x.CraftType == addProcessDTO.craftstype)) + //{ + // return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setpNum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" }; + //} - public WebResponseContent Getcircuit(string groups) - { - try - { - List<Dt_Process> results = new List<Dt_Process>(); - int step = 1; + //// 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿 + //foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setpNum)) + //{ + // process.SetpNum++; // 鍚庣Щ涓�浣� + // BaseDal.UpdateData(process); + //} - while (true) - { - // 鏌ヨ褰撳墠姝ラ鐨勬暟鎹� - var circuit = BaseDal.QueryData(x => x.CraftType == groups && x.SetpNum == step) - .FirstOrDefault(); + // 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿 + var processList = allProcesses.Where(x => x.SetpNum >= addProcessDTO.SetpNum).ToList(); - // 濡傛灉鏌ヨ缁撴灉涓虹┖锛屽垯鍋滄寰幆 - if (circuit == null) + if (processList != null) { - break; + for (int i = 0; i < processList.Count; i++) + { + processList[i].SetpNum += 1; + } } - // 鍔犲叆缁撴灉鍒楄〃 - results.Add(circuit); + // 鍒涘缓鏂板伐鑹烘楠� + + proces.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.ArticleOne) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.ArticleTwo) ? 0 : 1); + proces.CreateDate = DateTime.Now; - // 閫掑 step锛岀户缁煡璇笅涓�涓楠� - step++; + //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.CraftID); + if (existingProcess == null) + { + return new WebResponseContent { Status = false, Message = "鏈壘鍒拌宸ヨ壓姝ラ锛屾棤娉曟洿鏂帮紒" }; + } + + int oldSetNum = existingProcess.SetpNum; + int newSetNum = addProcessDTO.SetpNum; + + if (existingProcess.SetpNum == addProcessDTO.SetpNum) // 濡傛灉娌℃敼椤哄簭锛岀洿鎺ユ洿鏂板叾浠栧唴瀹� + { + proces.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.ArticleOne) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.ArticleTwo) ? 0 : 1); + proces.ModifyDate = DateTime.Now; + + //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) // 鍚戝墠绉诲姩锛屽悗缁暟鎹線鍚庣Щ + { + var processList = allProcesses.Where(x => x.SetpNum >= newSetNum && x.SetpNum < oldSetNum).ToList(); + + for (int i = 0; i < processList.Count; i++) + { + 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) // 鍚戝悗绉诲姩锛屽墠闈㈡暟鎹線鍓嶇Щ + { + var processList = allProcesses.Where(x => x.SetpNum > oldSetNum && x.SetpNum <= newSetNum).ToList(); + + for (int i = 0; i < processList.Count; i++) + { + 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); + //} + } + + proces.SetpNum = newSetNum; + proces.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.ArticleOne) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.ArticleTwo) ? 0 : 1); + proces.ModifyDate = DateTime.Now; + + //// 鏇存柊褰撳墠姝ラ鐨勬柊搴忓彿 + //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) + { + return new WebResponseContent { Status = false, Message = "鎿嶄綔澶辫触锛�" + ex.Message }; + } + } + + + public WebResponseContent Getcircuit(string group, string takeid) + { + try + { + 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 process = BaseDal.QueryData(x => x.CraftType == group); + + //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠� + var maxproce = process.Max(x => x.SetpNum); + + + //鎷垮埌宸ヨ壓琛ㄤ腑姝ラ涓�1鐨� + //var proNoe = process.Where(x => x.SetpNum == 1);//鑾峰緱宸ヨ壓琛ㄤ腑鐨勭涓�姝� + if (torp.Count == 0) + { + proNow = process.Where(x => x.SetpNum == 1).First(); + return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data = new { proNow, maxproce } }; } - return new WebResponseContent { Status = true, Data = results }; + 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") + //{ + // var now = maxproce + 1; + // return new WebResponseContent { Status = true, Data = new { proNoe, maxproce, now } }; + //} + if (flag != null) + { + var now = maxproce + 1; + 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).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 } }; + } catch (Exception ex) { @@ -159,7 +398,124 @@ } } - + /// <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 + { + Dt_TorqueOp op = new Dt_TorqueOp(); + //鏌ュ嚭宸ヨ壓琛� + 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); + + var TorqueOneQuantity = nowdate.Select(x => x.TorqueOneQuantity).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 } }; + } + else if ((practiceCount == TargetCount && TargetCount == 0) || (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 = setpDTO.setnum + 1; + + //杩斿洖涓嬩竴姝ユ楠� + 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, finish } }; + } + 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(); + 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) + { + 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