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/WorkAction/ThreeInOne.cs                      |    7 +-
 Tiger.Business.MES/WorkAction/VerifyItem.cs                      |    5 +
 Tiger.Business.MES/Transaction/CollectNode.cs                    |   16 ++--
 Tiger.Business.MES/WorkAction/Assembly.cs                        |    5 +
 Tiger.Business.MES/WorkAction/Weighing.cs                        |    5 +
 Tiger.IBusiness/Common/IStep.cs                                  |   30 +++++++++-
 Tiger.Business.MES/Transaction/PackingNode.cs                    |   18 +++---
 Tiger.Business.MES/Transaction/Position.cs                       |    4 
 Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs |    3 
 Tiger.Business/MES/Biz.WorkStep.cs                               |   28 ++++++--
 Tiger.Business.MES/Transaction/TestNode.cs                       |   16 ++--
 Tiger.Business.MES/WorkAction/IPQC.cs                            |    5 +
 Tiger.Business.MES/WorkAction/PackingAction.cs                   |    9 +-
 Tiger.Business.MES/WorkAction/PrintLabel.cs                      |    5 +
 Tiger.IBusiness/MES/IWorkAction.cs                               |    2 
 Tiger.Business.MES/WorkAction/WipExtInfo.cs                      |    5 +
 16 files changed, 104 insertions(+), 59 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/CollectNode.cs b/Tiger.Business.MES/Transaction/CollectNode.cs
index bb5973e..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);
                         }
                     }
                     //褰撳墠宀椾綅鍦ㄥ綋鍓嶅伐鍗曚笉鏄绔欙紝鍒欐煡鎵炬潯鐮佸凡缁戝畾鐨勫伐鍗曞綋浣滃綋鍓嶅伐鍗�
@@ -101,7 +101,7 @@
                                 }
                                 else if (!IsFinishAllSteps)
                                 {
-                                    action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]);
+                                    action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale);
                                 }
                             }
                         }
@@ -162,7 +162,7 @@
                         //濡傛灉鎵�鏈夊伐姝ラ兘瀹屾垚
                         if (IsFinishAllSteps)
                         {
-                            result = DoIfFinishAllSteps(result); 
+                            result = DoIfFinishAllSteps(result, input.Locale); 
                         }
                         else
                         {
@@ -452,7 +452,7 @@
                     }
 
                     //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝�
-                    curStep.IsFinished = true;
+                    curStep.Status = StepStatus.Finished;
                     CurStep = curStep;
                 }
                 else if (!IsFinishNodeSteps)
@@ -460,7 +460,7 @@
                     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;
                 }
 
@@ -498,7 +498,7 @@
                 if (IsFinishAllSteps)
                 {
                     action.Data.SetValue(CurBatch, CurStep, "", IsFinishAllSteps);
-                    action = DoIfFinishAllSteps(action);
+                    action = DoIfFinishAllSteps(action, input.Locale);
                 }
             }
             catch (Exception ex)
@@ -516,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>());
diff --git a/Tiger.Business.MES/Transaction/PackingNode.cs b/Tiger.Business.MES/Transaction/PackingNode.cs
index 3af03ea..4584680 100644
--- a/Tiger.Business.MES/Transaction/PackingNode.cs
+++ b/Tiger.Business.MES/Transaction/PackingNode.cs
@@ -79,7 +79,7 @@
                             }
                             else if (!IsFinishAllSteps)
                             {
-                                action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]);
+                                action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale);
                             }
                         }
                         //褰撳墠宀椾綅鍦ㄥ綋鍓嶅伐鍗曚笉鏄绔欙紝鍒欐煡鎵炬潯鐮佸凡缁戝畾鐨勫伐鍗曞綋浣滃綋鍓嶅伐鍗�
@@ -133,7 +133,7 @@
                                     }
                                     else if (!IsFinishAllSteps)
                                     {
-                                        action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]);
+                                        action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale);
                                     }
                                 }
                             }
@@ -194,7 +194,7 @@
                             //濡傛灉鎵�鏈夊伐姝ラ兘瀹屾垚
                             if (IsFinishAllSteps)
                             {
-                                result = DoIfFinishAllSteps(result);
+                                result = DoIfFinishAllSteps(result, input.Locale);
                             }
                             else
                             {
@@ -484,15 +484,15 @@
                     }
 
                     //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝�
-                    curStep.IsFinished = true;
-					CurStep = curStep;
+                    curStep.Status = StepStatus.Finished;
+                    CurStep = curStep;
                 } 
                 else if (!IsFinishNodeSteps)
                 {
                     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;
                 }
 
@@ -530,7 +530,7 @@
                 if (IsFinishAllSteps)
                 {
                     action.Data.SetValue(CurBatch, CurStep, "", IsFinishAllSteps);
-                    action = DoIfFinishAllSteps(action);
+                    action = DoIfFinishAllSteps(action, input.Locale);
                 }
             }
             catch (Exception ex)
@@ -548,14 +548,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>());
diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index 676be4b..e718347 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -192,13 +192,13 @@
         /// <summary>
         /// 璁剧疆褰撳墠鏉$爜鐨勫伐搴忎俊鎭�
         /// </summary>
-        public OperInfo SetOperNodeInfo(OperInfo info)
+        public OperInfo SetOperNodeInfo(OperInfo info, string locale)
         {
             if (CurWipSNs.Any())
             {
                 info.CurNode = CurWipSNs.First().NODE_NAME;
                 info.NextNode = string.Join(",", CurBatch.GetNextNodes(CurWipSNs.First()).Select(q => q.NODE_NAME));
-                info.StepsInfo = Steps.Select(q => q.GetInfo()).ToList();
+                info.StepsInfo = Steps.Select(q => q.GetInfo(locale)).ToList();
             }
             else
             {
diff --git a/Tiger.Business.MES/Transaction/TestNode.cs b/Tiger.Business.MES/Transaction/TestNode.cs
index 3a9e2e2..f46b261 100644
--- a/Tiger.Business.MES/Transaction/TestNode.cs
+++ b/Tiger.Business.MES/Transaction/TestNode.cs
@@ -57,7 +57,7 @@
                         }
                         else if (!IsFinishAllSteps)
                         {
-                            action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]);
+                            action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale);
                         }
                     }
                     //褰撳墠宀椾綅鍦ㄥ綋鍓嶅伐鍗曚笉鏄绔欙紝鍒欐煡鎵炬潯鐮佸凡缁戝畾鐨勫伐鍗曞綋浣滃綋鍓嶅伐鍗�
@@ -102,7 +102,7 @@
                                 }
                                 else if (!IsFinishAllSteps)
                                 {
-                                    action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO]);
+                                    action.Data.OperInfo = SetOperNodeInfo(OperInfoDic[CurBatch.Batch.BATCH_NO], input.Locale);
                                 }
                             }
                         }
@@ -163,7 +163,7 @@
                         //濡傛灉鎵�鏈夊伐姝ラ兘瀹屾垚
                         if (IsFinishAllSteps)
                         {
-                            result = DoIfFinishAllSteps(result);
+                            result = DoIfFinishAllSteps(result, input.Locale);
                         }
                         else
                         {
@@ -452,7 +452,7 @@
                     }
 
                     //瀹屾垚绗竴涓伐搴忚妭鐐瑰伐姝�
-                    curStep.IsFinished = true;
+                    curStep.Status = StepStatus.Finished;
                     CurStep = curStep;
                 }
                 else if (!IsFinishNodeSteps)
@@ -460,7 +460,7 @@
                     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;
                 }
 
@@ -498,7 +498,7 @@
                 if (IsFinishAllSteps)
                 {
                     action.Data.SetValue(CurBatch, CurStep, "", IsFinishAllSteps);
-                    action = DoIfFinishAllSteps(action);
+                    action = DoIfFinishAllSteps(action, input.Locale);
                 }
             }
             catch (Exception ex)
@@ -516,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>());
diff --git a/Tiger.Business.MES/WorkAction/Assembly.cs b/Tiger.Business.MES/WorkAction/Assembly.cs
index 25ea331..0ac02f5 100644
--- a/Tiger.Business.MES/WorkAction/Assembly.cs
+++ b/Tiger.Business.MES/WorkAction/Assembly.cs
@@ -247,7 +247,7 @@
                         //涓婃枡瀹屾垚
                         if (CurAssembly.IsFinished)
                         {
-                            action = End();
+                            action = End(input);
                         }
                         return action;
                     }
@@ -274,7 +274,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -340,6 +340,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("涓婃枡瀹屾垚", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"浠ヤ笅鐗╂枡涓婃枡瀹屾垚锛歿string.Join("锛�", CurAssembly.Items.Select(q => $"{q.ItemInfo.ITEM_NAME}({q.ItemInfo.ITEM_CODE})"))}");
             action.LocaleMsg = new("MES.WorkAction.Assembly.LoadFinish", string.Join("锛�", CurAssembly.Items.Select(q => $"{q.ItemInfo.ITEM_NAME}({q.ItemInfo.ITEM_CODE})")));
diff --git a/Tiger.Business.MES/WorkAction/IPQC.cs b/Tiger.Business.MES/WorkAction/IPQC.cs
index 199d8d4..d092fe8 100644
--- a/Tiger.Business.MES/WorkAction/IPQC.cs
+++ b/Tiger.Business.MES/WorkAction/IPQC.cs
@@ -80,7 +80,7 @@
                 //琛屼负鎵ц瀹屾垚
                 if (false)
                 {
-                	action = End();
+                	action = End(input);
                 }
             }
             //鎻愪氦鏁版嵁鎵ц澶辫触
@@ -103,7 +103,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -165,6 +165,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("娴嬭瘯瀹屾垚", ShortMessage.Types.Success);
             action.LocaleMsg = new($"娴嬭瘯缁撴潫");
             //action.LocaleMsg = new("MES.WorkAction.IPQC.Finish");
diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs
index 7a1566f..7a4421c 100644
--- a/Tiger.Business.MES/WorkAction/PackingAction.cs
+++ b/Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -305,7 +305,7 @@
                             //鏈�澶栧眰鍖呰宸插鐞嗗畬鎴愬垯鐩存帴缁撴潫琛屼负
                             if (CurPkg.Item.PKG_LEVEL == FinishLevel)
                             {
-                                action = End();
+                                action = End(input);
                             }
                             //鏈�澶栧眰鍖呰鏈墦鍗版壂鎻忓垯缁х画
                             else
@@ -373,7 +373,7 @@
                         }
                         else
                         {
-                            action = End();
+                            action = End(input);
                         }
                     }
                     break;
@@ -605,7 +605,7 @@
                         //褰撳墠鍖呰灞傜骇鐨勬槑缁嗘暟閲忔湭杈惧埌鍖呰鏁伴噺锛屽垯瀹屾垚鏈鎵弿锛岀瓑寰呬笅涓骇鍝佽繘绔�
                         else
                         {
-                            action = End();
+                            action = End(input);
                         }
                     }
                     //鏁版嵁寮傚父
@@ -674,7 +674,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -791,6 +791,7 @@
             }
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("鍖呰瀹屾垚", ShortMessage.Types.Success);
             
             return action;
diff --git a/Tiger.Business.MES/WorkAction/PrintLabel.cs b/Tiger.Business.MES/WorkAction/PrintLabel.cs
index a3f2941..d4b91f5 100644
--- a/Tiger.Business.MES/WorkAction/PrintLabel.cs
+++ b/Tiger.Business.MES/WorkAction/PrintLabel.cs
@@ -83,7 +83,7 @@
             //鎻愪氦鏁版嵁鎵ц鎴愬姛
             if (input.Data.ToBoolean())
             {
-                action = End();
+                action = End(input);
             }
             //鎻愪氦鏁版嵁鎵ц澶辫触
             else
@@ -104,7 +104,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -163,6 +163,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("鎵撳嵃瀹屾垚", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"鏍囩{Label.LABEL_NAME}[{Label.LABEL_CODE}]鎵撳嵃鎴愬姛", Label.LABEL_NAME);
             action.LocaleMsg = new("MES.WorkAction.PrintLabel.PrintSuccess", Label.LABEL_NAME, Label.LABEL_CODE);
diff --git a/Tiger.Business.MES/WorkAction/ThreeInOne.cs b/Tiger.Business.MES/WorkAction/ThreeInOne.cs
index 072cad6..04bc7e3 100644
--- a/Tiger.Business.MES/WorkAction/ThreeInOne.cs
+++ b/Tiger.Business.MES/WorkAction/ThreeInOne.cs
@@ -90,7 +90,7 @@
                     NeedScan = false,
                     Label = "",
                 };
-                action = End();
+                action = End(input);
             }
             //鍘傚唴鏉$爜鏈粦瀹氬鎴锋潯鐮�
             else
@@ -177,7 +177,7 @@
                 CurCSN.FLOW_SN = CurPosition.CurWipSNs.First().SN;
                 CurCSN.WORK_ORDER = CurPosition.WorkBatch.WO.ORDER_NO;
                 CurCSN.ITEM_CODE = CurPosition.WorkBatch.WO.ITEM_CODE;
-                action = End();
+                action = End(input);
             }
 
             return action;
@@ -186,7 +186,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -247,6 +247,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("瀹㈡埛鏉$爜宸茬粦瀹�", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"鍘傚唴鏉$爜[{0}]宸茬粦瀹氬鎴锋潯鐮乕{1}]瀹屾垚", Label.LABEL_NAME);
             action.LocaleMsg = new("MES.WorkAction.ThreeInOne.BindingComplete", CurCSN.FLOW_SN, CurCSN.CUST_SN);
diff --git a/Tiger.Business.MES/WorkAction/VerifyItem.cs b/Tiger.Business.MES/WorkAction/VerifyItem.cs
index 2abb1b8..1e9f7d2 100644
--- a/Tiger.Business.MES/WorkAction/VerifyItem.cs
+++ b/Tiger.Business.MES/WorkAction/VerifyItem.cs
@@ -114,7 +114,7 @@
                 //楠岃瘉閫氳繃鍒欎繚瀛�
                 if (isOK)
                 {
-                    action = End();
+                    action = End(input);
                 }
 
                 //閮芥病鏈夌墿鏂欓獙璇侀�氳繃锛屽垯杩斿洖閿欒淇℃伅
@@ -135,7 +135,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -192,6 +192,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("楠岃瘉閫氳繃", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"浜у搧[{CurPosition.CurSN}]楠岃瘉閫氳繃");
             action.LocaleMsg = new("MES.WorkAction.VerifyItem.VerifySuccess", CurPosition.CurSN);
diff --git a/Tiger.Business.MES/WorkAction/Weighing.cs b/Tiger.Business.MES/WorkAction/Weighing.cs
index 3b0fac9..ce49c60 100644
--- a/Tiger.Business.MES/WorkAction/Weighing.cs
+++ b/Tiger.Business.MES/WorkAction/Weighing.cs
@@ -108,7 +108,7 @@
             }
             else
             {
-                action = End();
+                action = End(input);
             }
             return action;
         }
@@ -134,7 +134,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -193,6 +193,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("绉伴噸瀹屾垚", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"鏉$爜[{CurPosition.CurSN}]绉伴噸鏁版嵁[{CurPkg.WEIGHT} {CurPkg.WEIGHT_UNIT}]淇濆瓨鎴愬姛");
             action.LocaleMsg = new("MES.WorkAction.Weighing.SaveSuccess", CurPosition.CurSN, CurPkg.WEIGHT, CurPkg.WEIGHT_UNIT);
diff --git a/Tiger.Business.MES/WorkAction/WipExtInfo.cs b/Tiger.Business.MES/WorkAction/WipExtInfo.cs
index 14a059c..e8df4f9 100644
--- a/Tiger.Business.MES/WorkAction/WipExtInfo.cs
+++ b/Tiger.Business.MES/WorkAction/WipExtInfo.cs
@@ -133,7 +133,7 @@
                 if (isOK)
                 {
                     CurWipExt.GetType().GetProperty($"FIELD_{ExtInfo.SEQ.ToString("00")}")?.SetValue(CurWipExt, input.SN);
-                    action = End();
+                    action = End(input);
                 }
 
                 //閮芥病鏈夌墿鏂欓獙璇侀�氳繃锛屽垯杩斿洖閿欒淇℃伅
@@ -154,7 +154,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End()
+        public ApiAction<SubmitOutput> End(SubmitInput input)
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
@@ -214,6 +214,7 @@
             };
 
             IsFinished = true;
+            CurStep.Status = StepStatus.Finished;
             action.Data.ShortMsg = new("缁戝畾瀹屾垚", ShortMessage.Types.Success);
             //action.LocaleMsg = new($"浜у搧[{CurPosition.CurWipSN.SN}]缁戝畾[{ExtInfo.FIELD_NAME}]鏍囩鏉$爜[{CurWipExt.GetType().GetProperty($"FIELD_{ExtInfo.SEQ.ToString("00")}")?.GetValue(CurWipExt)?.ToString()}]淇濆瓨鎴愬姛");
             action.LocaleMsg = new("MES.WorkAction.WipExtInfo.SaveSuccess", CurPosition.CurSN, ExtInfo.FIELD_NAME, CurWipExt.GetType().GetProperty($"FIELD_{ExtInfo.SEQ.ToString("00")}")?.GetValue(CurWipExt)?.ToString());
diff --git a/Tiger.Business/MES/Biz.WorkStep.cs b/Tiger.Business/MES/Biz.WorkStep.cs
index 467f105..0771409 100644
--- a/Tiger.Business/MES/Biz.WorkStep.cs
+++ b/Tiger.Business/MES/Biz.WorkStep.cs
@@ -30,6 +30,7 @@
 
             #region Propertys & Variables
             public string ID { get; set; } = Guid.NewGuid().ToString("N");
+            public string Name { get; set; }
             public IWorkStep.NodeTypes NodeType { get; set; }
             public MES_WO_NODE Node { get; set; }
             public MES_WO_OPER OperSetting { get; set; }
@@ -40,12 +41,22 @@
             public int Sequence { get; set; }
             public List<string> PrepNodeIDs { get; set; } = new();
             public string NodeID => NodeType == IWorkStep.NodeTypes.Action ? NodeAct.ID : Node.ID;
-            private bool _IsFinished = false;
-            public bool IsFinished
+            //private bool _IsFinished = false;
+            //public bool IsFinished
+            //{
+            //    get => NodeType == IWorkStep.NodeTypes.Action ? CurAction.IsFinished : _IsFinished; 
+            //    set { _IsFinished = value; }
+            //}
+            public StepStatus Status { get; set; } = StepStatus.Normal;
+            public bool IsFinished => Status == StepStatus.Finished;
+            private Locale _Message;
+            public Locale Message
             {
-                get => NodeType == IWorkStep.NodeTypes.Action ? CurAction.IsFinished : _IsFinished; 
-                set { _IsFinished = value; }
+                get => _Message;
+                set { _MsgHistory.Add(_Message = value); }
             }
+            private List<Locale> _MsgHistory = new();
+            public List<Locale> MsgHistory => _MsgHistory;
             public Action DBSubmitAction { get; set; } = () => { };
             #endregion
 
@@ -93,16 +104,16 @@
             /// 缁撴潫宸ユ鎵ц
             /// </summary>
             /// <returns></returns>
-            public ApiAction<SubmitOutput> End()
+            public ApiAction<SubmitOutput> End(SubmitInput input)
             {
-                return CurAction.End();
+                return CurAction.End(input);
             }
 
             /// <summary>
             /// 鑾峰彇褰撳墠宸ユ鐨勪俊鎭�
             /// </summary>
             /// <returns></returns>
-            public WorkStepInfo GetInfo()
+            public WorkStepInfo GetInfo(string locale)
             {
                 return new WorkStepInfo() { 
                     ID = ID,
@@ -113,7 +124,8 @@
                     OperSetting = OperSetting,
                     NodeAct = NodeAct,
                     ActSetting = ActSetting,
-                    IsFinished = IsFinished,
+                    Status = Status.ToString(),
+                    Message = Biz.T(Message, locale),
                 };
             }
             #endregion
diff --git a/Tiger.IBusiness/Common/IStep.cs b/Tiger.IBusiness/Common/IStep.cs
index e86ba8a..16655e8 100644
--- a/Tiger.IBusiness/Common/IStep.cs
+++ b/Tiger.IBusiness/Common/IStep.cs
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using Rhea.Common;
 using System;
+using System.ComponentModel;
 using Tiger.Model;
 using Tiger.Model.Entitys.MES.Position;
 
@@ -17,13 +18,25 @@
         /// </summary>
         public string ID { get; set; }
         /// <summary>
+        /// 姝ラ鍚嶇О
+        /// </summary>
+        public string Name { get; set; }
+        /// <summary>
         /// 姝ラ搴忓彿
         /// </summary>
         public int Sequence { get; set; }
         /// <summary>
-        /// 姝ラ鏄惁瀹屾垚
+        /// 姝ラ鐘舵��
         /// </summary>
-        public abstract bool IsFinished { get; set; }
+        public StepStatus Status { get; set; }
+        /// <summary>
+        /// 姝ラ娑堟伅
+        /// </summary>
+        public Locale Message { get; set; }
+        /// <summary>
+        /// 姝ラ娑堟伅鍘嗗彶
+        /// </summary>
+        public List<Locale> MsgHistory { get; }
         #endregion Propertys & Variables
 
         #region Functions
@@ -42,8 +55,19 @@
         /// 缁撴潫鎵ц
         /// </summary>
         /// <returns></returns>
-        public abstract ApiAction<OutputT> End();
+        public abstract ApiAction<OutputT> End(InputT input);
         #endregion Functions
     }
 
+    public enum StepStatus
+    {
+        [Description("姝e父")]
+        Normal = 0,
+        [Description("閿欒")]
+        Error = 1,
+        [Description("璀﹀憡")]
+        Warning = 2,
+        [Description("瀹屾垚")]
+        Finished = 3,
+    }
 }
diff --git a/Tiger.IBusiness/MES/IWorkAction.cs b/Tiger.IBusiness/MES/IWorkAction.cs
index 965bedc..b530d7c 100644
--- a/Tiger.IBusiness/MES/IWorkAction.cs
+++ b/Tiger.IBusiness/MES/IWorkAction.cs
@@ -44,7 +44,7 @@
         /// 缁撴潫鎵ц宸ュ簭琛屼负
         /// </summary>
         /// <returns></returns>
-        public ApiAction<SubmitOutput> End();
+        public ApiAction<SubmitOutput> End(SubmitInput input);
         #endregion Functions
     }
 }
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
index b55ebf6..aae3cde 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
@@ -256,7 +256,8 @@
         public MES_WO_OPER OperSetting { get; set; }
         public MES_WO_NODE_ACT NodeAct { get; set; }
         public MES_WO_ACTION ActSetting { get; set; }
-        public bool IsFinished { get; set; }
+        public string Status { get; set; }
+        public string Message { get; set; }
     }
 
 }

--
Gitblit v1.9.3