From a7d56a5843eafae7ff40bd858978cd8a39021bdb Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期四, 01 八月 2024 22:06:23 +0800 Subject: [PATCH] 重置工序 --- Tiger.Business/MES/Biz.WorkBatch.cs | 72 +++++++++++++++++------------------ 1 files changed, 35 insertions(+), 37 deletions(-) diff --git a/Tiger.Business/MES/Biz.WorkBatch.cs b/Tiger.Business/MES/Biz.WorkBatch.cs index 458f609..0fc4b63 100644 --- a/Tiger.Business/MES/Biz.WorkBatch.cs +++ b/Tiger.Business/MES/Biz.WorkBatch.cs @@ -220,13 +220,13 @@ /// <summary> /// 鏍规嵁浼犲叆鐨勬潯鐮佽繃绔欎俊鎭拰涓嬩竴绔欑殑鐩爣宸ュ簭锛屽垽鏂潯鐮佹槸鍚﹁兘杩涘叆涓嬩竴绔� /// </summary> - /// <param name="input"></param> - /// <param name="wipSN"></param> - /// <param name="nextNode"></param> + /// <param name="input">鏈鎻愪氦鐨勬暟鎹�</param> + /// <param name="wipSN">褰撳墠鐨勬潯鐮佽繃绔欒褰�</param> + /// <param name="nextNode">瑕佽繘鍏ョ殑鐩爣宸ュ簭</param> /// <returns></returns> public ApiAction<SubmitOutput> CanGotoNext(SubmitInput input, MES_WIP_DATA wipSN, MES_WO_NODE nextNode) { - var action = new ApiAction<SubmitOutput>(); + var action = new ApiAction<SubmitOutput>(new SubmitOutput()); //鏉$爜鍦ㄦ湰宸ュ崟绗竴娆¤繃绔� if (wipSN.NODE_ID.IsNullOrEmpty()) @@ -242,7 +242,7 @@ action.Data.CurWO = WO.ORDER_NO; action.Data.CurBatch = Batch.BATCH_NO; var nextList = Nodes.Where(q => q.IS_FIRST_NODE == "Y"); - action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); + action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, nextNode.NODE_NAME, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); return action; } } @@ -251,42 +251,40 @@ { var curNode = Nodes.First(q => q.ID == wipSN.NODE_ID); var curSetting = NodeSets.FirstOrDefault(q => q.NODE_ID == curNode.ID); - //杩涘叆缁翠慨锛氬鏋滅洰鏍囧伐搴忔槸缁翠慨宸ュ簭鍒欏垽鏂綋鍓嶆潯鐮佸湪鏈伐鍗曟湁娌℃湁鏈淮淇殑涓嶈壇璁板綍涓斿綋鍓嶅伐搴忚妭鐐规湁娌℃湁杩炵嚎鍒扮淮淇伐搴忥紝鏈夊垯鍏佽锛屾病鏈夊垯鎶ラ敊 - if (nextNode.Operation.OPER_TYPE == MES_OPERATION.OPER_TYPEs.Repair.GetValue()) + //杩涘叆缁翠慨锛氬鏋滅洰鏍囧伐搴忔槸缁翠慨宸ュ簭鍒欏垽鏂綋鍓嶆潯鐮佸湪鏈伐鍗曟湁鏈淮淇殑涓嶈壇璁板綍涓斿綋鍓嶅伐搴忚妭鐐规湁杩炵嚎鍒扮淮淇伐搴忥紝鍒欏厑璁歌繘鍏ョ淮淇伐搴� + if (nextNode.Operation.OPER_TYPE == MES_OPERATION.OPER_TYPEs.Repair.GetValue() + && wipSN.Defects.Any(q => q.WORK_ORDER == WO.ORDER_NO && q.STATUS < MES_WIP_DFT.STATUSs.Resolved.GetValue()) + && Edges.Any(q => q.SRC_NODE == curNode.ID && q.TGT_NODE == nextNode.ID)) { - //if (nextNode.IS_FIRST_NODE == "Y") - //{ - // action.IsSuccessed = true; - //} - //else - //{ - // action.IsSuccessed = false; - // action.Data.CurWO = WO.ORDER_NO; - // action.Data.CurBatch = Batch.BATCH_NO; - // var nextList = Nodes.Where(q => q.IS_FIRST_NODE == "Y"); - // action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); - // return action; - //} + action.IsSuccessed = true; + return action; } //缁翠慨鍥炴祦锛氬鏋滄潯鐮佺殑褰撳墠宸ュ簭鏄淮淇伐搴忥紝鍒欒涓烘槸缁翠慨鍥炴祦 else if (curNode.Operation.OPER_TYPE == MES_OPERATION.OPER_TYPEs.Repair.GetValue()) { - //if (nextNode.IS_FIRST_NODE == "Y") - //{ - // action.IsSuccessed = true; - //} - //else - //{ - // action.IsSuccessed = false; - // action.Data.CurWO = WO.ORDER_NO; - // action.Data.CurBatch = Batch.BATCH_NO; - // var nextList = Nodes.Where(q => q.IS_FIRST_NODE == "Y"); - // action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); - // return action; - //} + //鏌ユ壘鎵�鏈夊彲浠ュ洖娴佺殑宸ュ簭 + var reflowNodes = Nodes.Where(q => Edges.Any(e => e.SRC_NODE == curNode.ID && e.TGT_NODE == q.ID) + && NodeSets.Any(s => s.NODE_ID == q.ID && s.IS_ACTIVE == "Y")).ToList(); + + //鍙洖娴佺殑宸ュ簭鍖呭惈鐩爣宸ュ簭涓旀潯鐮佸湪缁翠慨绔欓�夋嫨鐨勫洖娴佸伐搴忎负绌烘垨鑰呯瓑浜庣洰鏍囧伐搴忥紝鍒欏厑璁歌繘绔� + if (reflowNodes.Any(q => q.ID == nextNode.ID) && (wipSN.REFLOW_NODE.IsNullOrEmpty() || wipSN.REFLOW_NODE == nextNode.NODE_NAME)) + { + action.IsSuccessed = true; + return action; + } + else + { + action.IsSuccessed = false; + action.Data.CurWO = WO.ORDER_NO; + action.Data.CurBatch = Batch.BATCH_NO; + var nextList = reflowNodes.Where(q => wipSN.REFLOW_NODE.IsNullOrEmpty() || wipSN.REFLOW_NODE == q.NODE_NAME); + action.LocaleMsg = new("MES.WorkBatch.ReflowToNodeException", nextNode.NODE_NAME, wipSN.SN, curNode.NODE_NAME, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); + return action; + } } - //涓嶈壇鍝佸叆绔欙細濡傛灉浜у搧鏈変笉鑹褰曚笖鐩爣宸ュ簭涓嶅厑璁镐笉鑹搧鍏ョ珯锛屽垯鎶ラ敊 - else if (wipSN.Defects.Any(q => q.STATUS < MES_WIP_DFT.STATUSs.Resolved.GetValue()) && curSetting.ALLOW_DFT_IN != "Y") + //涓嶈壇鍝佸叆绔欙細濡傛灉浜у搧鏈変笉鑹褰曚笖鐩爣宸ュ簭涓嶆槸缁翠慨宸ュ簭涓斾笉鍏佽涓嶈壇鍝佸叆绔欙紝鍒欐姤閿� + else if (wipSN.Defects.Any(q => q.WORK_ORDER == WO.ORDER_NO && q.STATUS < MES_WIP_DFT.STATUSs.Resolved.GetValue()) + && curSetting.ALLOW_DFT_IN != "Y" && nextNode.Operation.OPER_TYPE != MES_OPERATION.OPER_TYPEs.Repair.GetValue()) { action.IsSuccessed = false; action.Data.CurWO = WO.ORDER_NO; @@ -313,7 +311,7 @@ action.Data.CurWO = WO.ORDER_NO; action.Data.CurBatch = Batch.BATCH_NO; var nextList = nextNodes.Where(q => NodeSets.Any(s => s.NODE_ID == q.ID && s.IS_ACTIVE == "Y" && s.CAN_SKIP != "Y")); - action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); + action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, nextNode.NODE_NAME, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); return action; } //濡傛灉褰撳墠宸ュ簭娌℃湁蹇呴』鎵ц鐨勫悗缁伐搴忥紝鍒欏湪鍓嶇疆宸ュ簭鏌ユ壘杩樻湁娌℃湁鍚庣画宸ュ簭娌″畬鎴愮殑宸ュ簭锛屾湁鍒欏皾璇曟墽琛� @@ -343,7 +341,7 @@ action.Data.CurWO = WO.ORDER_NO; action.Data.CurBatch = Batch.BATCH_NO; var nextList = nextNodes.Where(q => NodeSets.Any(s => s.NODE_ID == q.ID && s.IS_ACTIVE == "Y")); - action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); + action.LocaleMsg = new("MES.WorkBatch.GotoNextNodeException", wipSN.SN, nextNode.NODE_NAME, string.Join(", ", nextList.Select(q => q.NODE_NAME + (q.CAN_SKIP == "Y" ? $"({T(L("MES.WorkBatch.Optional"), input.Locale)})" : "")))); return action; } } -- Gitblit v1.9.3