| | |
| | | using System.Text; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using AutoMapper.Configuration.Conventions; |
| | | using SqlSugar; |
| | | using WIDESEA_ISerialPortRepository; |
| | | using WIDESEA_SerialPortRepository; |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | //è·åå¥çæ°é |
| | | public WebResponseContent GetSleeveandStep(string gruops) |
| | | { |
| | | try |
| | |
| | | } |
| | | |
| | | |
| | | 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 |
| | | { |
| | | ///妿è¿ä¸ªåå¼è¡¨ä¸æ²¡ææ¥éª¤ä¸è¿ä¹æï¼æè¿ä¹æ¾ç¤ºç»å端ç |
| | | |
| | | //æ ¹æ®ç»åä»»å¡å·è·å¾top表å
¨é¨æ°æ® |
| | | 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))//å¼ºå¶æ§è¡ åç«¯ç»æä¸ä¸ªflag=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) |
| | | { |