From 935722e71cc47d8c9f3b0e911de33c7eb0cbc693 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 28 八月 2024 22:55:55 +0800 Subject: [PATCH] 优化工步实体,增加名称,状态,消息 --- Tiger.Business.MES/Transaction/CollectNode.cs | 35 ++++++++++++++++++++++------------- 1 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Tiger.Business.MES/Transaction/CollectNode.cs b/Tiger.Business.MES/Transaction/CollectNode.cs index 9e8b6a4..275cf5d 100644 --- a/Tiger.Business.MES/Transaction/CollectNode.cs +++ b/Tiger.Business.MES/Transaction/CollectNode.cs @@ -56,7 +56,7 @@ } else if (!IsFinishAllSteps) { - action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); + action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale); } } //褰撳墠宀椾綅鍦ㄥ綋鍓嶅伐鍗曚笉鏄绔欙紝鍒欐煡鎵炬潯鐮佸凡缁戝畾鐨勫伐鍗曞綋浣滃綋鍓嶅伐鍗� @@ -93,9 +93,15 @@ } //鏉$爜杩囩珯 action = NodeSubmit(action, input); - if (!IsFinishAllSteps) + if (!action.IsSuccessed && !CurWipSNs.Any()) { - action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); + var info = WoContext.GetSnOperInfo(input.SN).Data; + info.InputQty = OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty; + action.Data.OperInfo = info; + } + else if (!IsFinishAllSteps) + { + action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale); } } } @@ -156,7 +162,7 @@ //濡傛灉鎵�鏈夊伐姝ラ兘瀹屾垚 if (IsFinishAllSteps) { - result = DoIfFinishAllSteps(result); + result = DoIfFinishAllSteps(result, input.Locale); } else { @@ -382,7 +388,9 @@ CurWipSNHiss.Clear(); foreach (var wipSN in wipSNs) { - CurWipSNHiss.Add(new MES_WIP_HIS(wipSN, $"宸ュ崟[{wipSN.WORK_ORDER}]鏉$爜[{wipSN.SN}]鍦ㄥ矖浣峓{wipSN.POST_CODE}]杩囩珯宸ュ簭[{wipSN.NODE_NAME}]鎴愬姛")); + var his = new MES_WIP_HIS(wipSN, $"宸ュ崟[{wipSN.WORK_ORDER}]鏉$爜[{wipSN.SN}]鍦ㄥ矖浣峓{wipSN.POST_CODE}]杩囩珯宸ュ簭[{wipSN.NODE_NAME}]鎴愬姛"); + wipSN.History.Add(his); + CurWipSNHiss.Add(his); } //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� @@ -395,10 +403,11 @@ //鍒濆鍖栧伐姝ュ垪琛� Steps.Clear(); - var curStep = new Biz.WorkStep(IWorkStep.Types.Node, this) + var curStep = new Biz.WorkStep(IWorkStep.NodeTypes.Node, this) { Sequence = Steps.Count + 1, Node = curNode, + OperSetting = CurBatch.NodeSets.FirstOrDefault(q => q.NODE_ID == curNode.ID), DBSubmitAction = () => { //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 @@ -443,15 +452,15 @@ } //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝� - curStep.IsFinished = true; + curStep.Status = StepStatus.Finished; CurStep = curStep; } else if (!IsFinishNodeSteps) { - var curStep = Steps.Where(q => q.Type == IWorkStep.Types.Node && !q.IsFinished).OrderBy(q => q.Sequence).First(); + var curStep = Steps.Where(q => q.NodeType == IWorkStep.NodeTypes.Node && !q.IsFinished).OrderBy(q => q.Sequence).First(); //瀹屾垚褰撳墠宸ュ簭鑺傜偣宸ユ - curStep.IsFinished = true; + curStep.Status = StepStatus.Finished; CurStep = curStep; } @@ -461,7 +470,7 @@ //鏈畬鎴愭墍鏈夊伐搴忚妭鐐瑰伐姝� if (!IsFinishNodeSteps) { - var next = Steps.Where(q => q.Type == IWorkStep.Types.Node && !q.IsFinished).OrderBy(q => q.Sequence).First(); + var next = Steps.Where(q => q.NodeType == IWorkStep.NodeTypes.Node && !q.IsFinished).OrderBy(q => q.Sequence).First(); //璁剧疆鍚庣画鍙墽琛岀殑宸ユ鍒楄〃 NextSteps.Clear(); NextSteps.Add(next); @@ -489,7 +498,7 @@ if (IsFinishAllSteps) { action.Data.SetValue(CurBatch, CurStep, "", IsFinishAllSteps); - action = DoIfFinishAllSteps(action); + action = DoIfFinishAllSteps(action, input.Locale); } } catch (Exception ex) @@ -507,14 +516,14 @@ /// </summary> /// <param name="action"></param> /// <returns></returns> - public ApiAction<SubmitOutput> DoIfFinishAllSteps(ApiAction<SubmitOutput> action) + public ApiAction<SubmitOutput> DoIfFinishAllSteps(ApiAction<SubmitOutput> action, string locale) { //淇濆瓨鏁版嵁搴� SaveStepsCommitActionToDB(); //淇濆瓨鎴愬姛锛岃繑鍥炶繃绔欐秷鎭� OperInfoDic[CurBatch.Batch.BATCH_NO].InputQty += CurWipSNs.Count; - action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]); + action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], locale); action.Data.ShortMsg = new("杩囩珯鎴愬姛", 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>()); -- Gitblit v1.9.3