From 83dbcd7c0d6afcbbd1f20dc1e7371be89ee28f0b Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期四, 10 十月 2024 17:12:34 +0800 Subject: [PATCH] 优化工序逻辑 --- Tiger.Business.MES/Transaction/PackingNode.cs | 30 +++++++++++++++++------------- 1 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs index 8304759..f179fb0 100644 --- a/Tiger.Business.MES/Transaction/PackingNode.cs +++ b/Tiger.Business.MES/Transaction/PackingNode.cs @@ -62,7 +62,6 @@ //NodeSubmit锛氫骇鍝佽繃绔欙紝姝e父浜у搧杩囩珯閫昏緫 else { - NodeCmd = "NodeSubmit"; //宸ユ鍒楄〃涓虹┖鎴栬�呭伐搴忚妭鐐瑰伐姝ユ湁鏈畬鎴愭椂锛屼紭鍏堝畬鎴愬伐搴忚妭鐐瑰伐姝� if (Steps.IsNullOrEmpty() || !IsFinishNodeSteps) { @@ -262,12 +261,14 @@ action.LocaleMsg = new("MES.Transaction.PackingNode.NodeSubmit.OperateNodeError", PostCode, CurBatch.WO.ORDER_NO); return action; } + var curNodeSetting = CurBatch.GetNodeSetting(curNode); + //褰撳伐姝ュ垪琛ㄤ负绌猴紝鍒欐墽琛屽綋鍓嶅伐搴忕殑蹇呰閫昏緫褰撲綔绗竴涓伐搴忚妭鐐癸紝瀹屾垚鍚庢寜闇�姹傚垱寤哄悗缁殑宸ユ鍒楄〃 if (Steps.IsNullOrEmpty()) { BeginAt = DateTime.Now; //鍒ゆ柇宸ュ崟瀹炴椂鐘舵�佸垽鏂槸鍚﹀彲浠ョ敓浜� - var woStatus = CurBatch.CheckCanProduce(curNode); + var woStatus = CurBatch.CheckCanProduce(curNode, curNodeSetting); if (!woStatus.IsSuccessed) { woStatus.Data.ShortMsg = new("宸ュ崟寮傚父", ShortMessage.Types.Error); @@ -328,10 +329,13 @@ return canGotoNext; } + //璁剧疆褰撳墠鎸囦护涓烘甯镐骇鍝佽繃绔� + NodeCmd = "NodeSubmit"; + //缁戝畾鏉$爜鍒板伐鍗� foreach (var wipSN in wipSNs) { - if (!CurBatch.WoSNs.Any(q => q.SN == wipSN.SN)) + if (!CurBatch.WoSNs.Any(q => q.WIP_ID == wipSN.ID)) { CurBatch.WoSNs.Add(new() { @@ -346,7 +350,7 @@ } //鏇存柊宸ュ崟鏉$爜鏄庣粏淇℃伅 - var woSNs = CurBatch.WoSNs.Where(q => wipSNs.Any(w => q.SN == w.SN)).ToList(); + var woSNs = CurBatch.WoSNs.Where(q => wipSNs.Any(w => q.WIP_ID == w.ID)).ToList(); foreach (var woSN in woSNs) { woSN.AUTH_ORG = CurBatch.WO.AUTH_ORG; @@ -378,17 +382,17 @@ wipSN.PRD_CODE = curShiftPeriod.Period.PRD_CODE; } //濡傛灉鏄姇鍏ョ珯 - if (curNode.IS_INPUT == "Y") + if (curNodeSetting.IS_INPUT == "Y") { - var woSN = woSNs.First(q => q.SN == wipSN.SN); + var woSN = woSNs.First(q => q.WIP_ID == wipSN.ID); woSN.STATUS = BIZ_MES_WO_SN.STATUSs.Inputed.GetValue(); wipSN.STATUS = MES_WIP_DATA.STATUSs.Input.GetValue(); wipSN.INLINE_DATE = DateTime.Now; } //濡傛灉鏄骇鍑虹珯 - if (curNode.IS_OUTPUT == "Y") + if (curNodeSetting.IS_OUTPUT == "Y") { - var woSN = woSNs.First(q => q.SN == wipSN.SN); + var woSN = woSNs.First(q => q.WIP_ID == wipSN.ID); woSN.STATUS = BIZ_MES_WO_SN.STATUSs.Finished.GetValue(); wipSN.STATUS = MES_WIP_DATA.STATUSs.Finished.GetValue(); wipSN.OUTLINE_DATE = DateTime.Now; @@ -458,7 +462,7 @@ var _wipSns = wipSNs.Clone(); var _wipHiss = CurWipSNHiss.Clone(); var _defect = CurDefects.Clone(); - var _curNode = curNode.Clone(); + var _curNodeSetting = curNodeSetting.Clone(); var _Batch = CurBatch.Batch.Clone(); //鍒濆鍖栧伐姝ュ垪琛� @@ -483,13 +487,13 @@ db.Storageable(_defect, UserCode).ExecuteCommand(); } //濡傛灉鏄姇鍏ョ珯 - if (_curNode.IS_INPUT == "Y") + if (_curNodeSetting.IS_INPUT == "Y") { db.Updateable<BIZ_MES_WO>().SetColumns(q => q.INPUT_QTY == q.INPUT_QTY + _woSns.Count).Where(q => q.ORDER_NO == _Batch.ORDER_NO).ExecuteCommand(); db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.INPUT_QTY == q.INPUT_QTY + _woSns.Count).Where(q => q.BATCH_NO == _Batch.BATCH_NO).ExecuteCommand(); } //濡傛灉鏄骇鍑虹珯 - if (_curNode.IS_OUTPUT == "Y") + if (_curNodeSetting.IS_OUTPUT == "Y") { db.Updateable<BIZ_MES_WO>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + _woSns.Count).Where(q => q.ORDER_NO == _Batch.ORDER_NO).ExecuteCommand(); db.Updateable<BIZ_MES_WO_BATCH>().SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY + _woSns.Count).Where(q => q.BATCH_NO == _Batch.BATCH_NO).ExecuteCommand(); @@ -600,7 +604,7 @@ //淇濆瓨鎴愬姛锛岃繑鍥炶繃绔欐秷鎭� CurOperInfo(locale).InputQty += CurWipSNs.Count; action.Data.OperInfo = SetOperNodeInfo(CurOperInfo(locale)); - action.Data.ShortMsg = new("杩囩珯鎴愬姛", ShortMessage.Types.Success); + action.Data.ShortMsg = new(CurWipSNs.Any(q => q.DFT_FLAG == "Y") ? "涓嶈壇杩囩珯" : "鑹搧杩囩珯", ShortMessage.Types.Success); //action.LocaleMsg = new($"宸ュ崟[{CurWipSN.WORK_ORDER}]鐨勬潯鐮乕{CurWipSN.SN}]鍦ㄥ矖浣峓{CurWipSN.POST_CODE}]宸ュ簭[{CurWipSN.NODE_NAME}]杩囩珯鎴愬姛锛岀姸鎬乕{CurWipSN.STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()}]"); action.LocaleMsg = new("MES.Transaction.CollectNode.ScanSn.PassSuccess", CurWipSNs.First().WORK_ORDER, CurSN, CurWipSNs.First().POST_CODE, CurWipSNs.First().NODE_NAME,CurWipSNs.First().STATUS.GetEnumDesc<MES_WIP_DATA.STATUSs>()); @@ -620,7 +624,7 @@ try { //PkgSubmit锛氭墜鍔ㄧ粨鏉熷寘瑁咃紝淇濆瓨鏆傚瓨鐨勫寘瑁呮暟鎹� - if (NodeCmd.IsNullOrEmpty("PkgSubmit") == "PkgSubmit") + if (NodeCmd.IsNullOrEmpty("PkgSubmit") == "PkgSubmit" || CurWipSNs.IsNullOrEmpty()) { if (Context.ContainsKey("CurPackage")) { -- Gitblit v1.9.3