From e14fe1c9f7753de8bad65b193843748429d6dde1 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期日, 04 八月 2024 17:54:53 +0800
Subject: [PATCH] 修改包装行为的打印模板获取方法

---
 Tiger.Business.MES/WorkAction/PackingAction.cs |  160 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 121 insertions(+), 39 deletions(-)

diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs
index 312c526..094982a 100644
--- a/Tiger.Business.MES/WorkAction/PackingAction.cs
+++ b/Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -6,6 +6,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using Tiger.IBusiness;
+using Tiger.IBusiness.MES.WorkAction;
 using Tiger.Model;
 using Tiger.Model.Entitys.MES.Position;
 
@@ -24,10 +25,10 @@
         public BAS_PKG_RULE PkgRule { get; set; }
         public WipPkg CurPkg { get; set; }
         public WipPkgItem CurPkgItem { get; set; }
-        public PackingActionOutput CurPrint { get; set; }
+        public PackingActionOutput CurCmd { get; set; }
         public int PrintTimes = 0;
-        public Dictionary<int, BAS_LABEL_TEMP> LabelDic { get; set; }
-        public List<BAS_LABEL_PV> LabelPV { get; set; }
+        public Dictionary<int, BAS_LABEL_TEMP> LabelDic { get; set; }    = new();
+        public List<BAS_LABEL_PV> LabelPV { get; set; } = new();
         public int FinishLevel = 0;
         #endregion Propertys & Variables
 
@@ -44,14 +45,28 @@
             NodeAct = nodeAct;
             Setting = setting;
             #endregion
-
-            PkgRule = Biz.Db.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == setting.PKG_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First();
-            //鏍规嵁琛屼负璁剧疆鑾峰彇澶氬眰鍖呰鐨勬爣绛炬墦鍗版ā鏉垮瓧鍏�
-            for (int i = 1; i < 10; i++)
+            //鎵嬪姩缁撴潫鍖呰涓撶敤锛屼复鏃舵墽琛岃涓�
+            if (setting.IsNullOrEmpty())
             {
-                var code = Setting.GetType().GetProperty($"OPTION_{i}")?.GetValue(Setting).ToString() ?? "";
-                var label = code.IsNullOrEmpty() ? null : Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == code).IncludesAllFirstLayer().First();
-                LabelDic.Add(i, label);
+                PkgRule = Biz.Db.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == setting.PKG_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First();
+            } 
+            //姝e父鏉$爜杩囩珯鎵ц鍖呰琛屼负
+            else
+            {
+            	PkgRule = Biz.Db.Queryable<BAS_PKG_RULE>().Where(q => q.RULE_CODE == setting.PKG_CODE).IncludesAllFirstLayer().IncludesAllSecondLayer(q => q.Details).First();
+            }
+            //鏍规嵁琛屼负璁剧疆鑾峰彇澶氬眰鍖呰鐨勬爣绛炬墦鍗版ā鏉垮瓧鍏�
+            //for (int i = 1; i < 10; i++)
+            //{
+            //    var code = Setting.GetType().GetProperty($"OPTION_{i}")?.GetValue(Setting)?.ToString() ?? "";
+            //    var label = code.IsNullOrEmpty() ? null : Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == code).IncludesAllFirstLayer().First();
+            //    LabelDic.Add(i, label);
+            //}
+            var codes = (Setting.OPTION_1?? "").JsonToObject<List<WipPkgItem>>();
+            foreach (var code in codes)
+            {
+                var label = code.LABEL_CODE.IsNullOrEmpty() ? null : Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == code.LABEL_CODE).IncludesAllFirstLayer().First();
+                LabelDic.Add(code.PKG_LEVEL, label);
             }
             //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈夊垯鑾峰彇褰撳墠鐨勫寘瑁呰褰�
             if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty())
@@ -72,7 +87,7 @@
                         IS_MIN_PKG = max.PkgType.IS_MIN_PKG,
                         PKG_LEVEL = max.PKG_LEVEL,
                         PKG_QTY = max.PKG_QTY,
-                        LABEL_CODE = LabelDic[max.PKG_LEVEL].LABEL_CODE,
+                        LABEL_CODE = LabelDic[max.PKG_LEVEL]?.LABEL_CODE,
                     }
                 };
                 WipPkgItem child = null;
@@ -87,7 +102,7 @@
                             IS_MIN_PKG = dtl.PkgType.IS_MIN_PKG,
                             PKG_LEVEL = dtl.PKG_LEVEL,
                             PKG_QTY = dtl.PKG_QTY,
-                            LABEL_CODE = LabelDic[dtl.PKG_LEVEL].LABEL_CODE,
+                            LABEL_CODE = LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE,
                         };
                         if (!child.IsNullOrEmpty())
                         {
@@ -96,7 +111,11 @@
                         child = item;
                     }
                 }
-                CurPkg.Item.Items.Add(child);
+                if (!child.IsNullOrEmpty())
+                {
+                    CurPkg.Item.Items.Add(child);
+                }
+                
             }
         }
 
@@ -116,8 +135,8 @@
             }
             else
             {
-                var msg = new Locale("MES.WorkAction.PackingAction.BeginPrint", min.PKG_LEVEL, min.PkgType.PKG_NAME, LabelDic[min.PKG_LEVEL].LABEL_CODE, LabelDic[min.PKG_LEVEL].LABEL_NAME);
-                //var msg = new Locale($"寮�濮嬫墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL].LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]");
+                var msg = new Locale("MES.WorkAction.PackingAction.BeginPrint", min.PKG_LEVEL, min.PkgType.PKG_NAME, LabelDic[min.PKG_LEVEL]?.LABEL_CODE, LabelDic[min.PKG_LEVEL].LABEL_NAME);
+                //var msg = new Locale($"寮�濮嬫墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]");
                 return msg;
             }
         }
@@ -153,11 +172,11 @@
                 data.ExecCode = "Print";
                 data.PkgLevel = min.PKG_LEVEL;
                 data.PrintLable = LabelDic[min.PKG_LEVEL];
-                CurPrint = data;
+                CurCmd = data;
                 PrintTimes++;
                 action.Data.Data = data;
-                //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL].LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]");
-                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, min.PKG_LEVEL, min.PkgType.PKG_NAME, LabelDic[min.PKG_LEVEL].LABEL_CODE, LabelDic[min.PKG_LEVEL].LABEL_NAME);
+                //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]");
+                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, min.PKG_LEVEL, min.PkgType.PKG_NAME, LabelDic[min.PKG_LEVEL]?.LABEL_CODE, LabelDic[min.PKG_LEVEL].LABEL_NAME);
             }
 
             //濡傛灉杩斿洖鎴愬姛鍒欒涓哄綋鍓嶈涓哄彲浠ュ紑濮嬫墽琛岋紝鍚﹀垯杩斿洖澶辫触
@@ -173,15 +192,18 @@
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
-            var pInput = input.Data?.JsonToObject<PackingActionInput>();
-            switch (pInput.ExecCode)
+            var pInput = input?.Data?.JsonToObject<PackingActionInput>();
+            switch (pInput?.ExecCode)
             {
                 //Scan锛氭壂鐮侊紝鎵弿褰撳墠鍖呰灞傜骇鐨勬潯鐮�
                 case "Scan":
+                    if (CurCmd.IsNullOrEmpty() || CurCmd.ExecCode == "Scan" || (CurCmd.ExecCode == "Print" && CurCmd.PkgLevel == pInput.PkgLevel))
                     {
                         //瀹㈡埛绔壂鎻忔垚鍔�
                         if (pInput.IsFinish)
                         {
+                            CurCmd = null;
+                            PrintTimes = 0;
                             action = SavePkgData(input, action);
                         }
                         //瀹㈡埛绔壂鎻忓け璐�
@@ -197,16 +219,18 @@
                     break;
                 //Print锛氭墦鍗帮紝鎵撳嵃褰撳墠鍖呰灞傜骇鐨勬爣绛�
                 case "Print":
+                    if (CurCmd.ExecCode == "Print")
                     {
                         var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == pInput.PkgLevel);
                         //瀹㈡埛绔畬鎴愭墦鍗�
                         if (pInput.IsFinish)
                         {
-                            CurPrint = null;
+                            CurCmd = null;
                             PrintTimes = 0;
                             var data = new PackingActionOutput() { PkgInfo = CurPkg };
                             data.ExecCode = "Scan";
                             data.PkgLevel = dtl.PKG_LEVEL;
+                            CurCmd = data;
                             action.Data.Data = data;
                             //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�");
                             action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
@@ -215,29 +239,76 @@
                         else
                         {
                             //濡傛灉鎵撳嵃澶辫触鍒欏皾璇曚笁娆¢噸鏂版墦鍗帮紝濡傛灉閮藉け璐ュ垯閲嶇疆宸ュ簭
-                            if (PrintTimes < 3 && !CurPrint.IsNullOrEmpty())
+                            if (PrintTimes < 3 && !CurCmd.IsNullOrEmpty())
                             {
                                 PrintTimes++;
-                                action.Data.Data = CurPrint;
-                                //action.LocaleMsg = new Locale($"寮�濮媨PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL].LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
-                                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL].LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);
+                                action.Data.Data = CurCmd;
+                                //action.LocaleMsg = new Locale($"寮�濮媨PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
+                                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);
                             }
                             else
                             {
-                                CurPrint = null;
+                                CurCmd = null;
                                 PrintTimes = 0;
                                 action.IsSuccessed = false;
-                                //action.LocaleMsg = new($"灏濊瘯绗瑊PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL].LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]澶辫触锛屽伐搴忓凡閲嶇疆锛岃閲嶆柊鎵弿杩涚珯浜у搧鏉$爜");
-                                action.LocaleMsg = new("MES.WorkAction.PackingAction.PrintFail3Times", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL].LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);
-                                CurPosition.ResetSteps();
+                                //action.LocaleMsg = new($"灏濊瘯绗瑊PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]澶辫触锛屽伐搴忓凡閲嶇疆锛岃閲嶆柊鎵弿杩涚珯浜у搧鏉$爜");
+                                action.LocaleMsg = new("MES.WorkAction.PackingAction.PrintFail3Times", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);
+                                CurPosition.ResetNode();
                             }
                         }
                     }
                     break;
                 // Complete锛氬畬鎴愶紝瀹屾垚鍏ㄩ儴鍖呰鍚庣粨鏉熻涓�
                 case "Complete":
+                    if (CurCmd.ExecCode == "Complete")
                     {
+                        CurCmd = null;
+                        PrintTimes = 0;
                         action = End();
+                    }
+                    break;
+                // 鎵嬪姩缁撴潫鍖呰锛屼繚瀛樻殏瀛樼殑鍖呰鏁版嵁
+                case null:
+                    {
+                        CurCmd = null;
+                        PrintTimes = 0;
+                        FinishLevel = 1;
+                        WipPkgItem curItem = CurPkg.Item;
+                        while (curItem.PKG_LEVEL > 2)
+                        {
+                            var next = curItem.Items.FirstOrDefault(q => !q.IsFinished);
+                            curItem = next;
+                        }
+                        CurPkgItem = curItem;
+
+                        //鎵嬪姩缁撴潫鍖呰榛樿浠庣浜屽眰鍖呰寮�濮嬮獙璇�
+                        var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == 2);
+                        //琛屼负璁惧畾鐨凮PTION_1-9鏄寘瑁呬笉鍚屽眰绾х殑鏍囩妯℃澘浠g爜锛屽鏋滀负绌哄垯涓嶉渶瑕佹墦鍗�
+                        if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
+                        {
+                            var data = new PackingActionOutput() { PkgInfo = CurPkg };
+                            data.ExecCode = "Scan";
+                            data.PkgLevel = dtl.PKG_LEVEL;
+                            CurCmd = data;
+                            action.Data.Data = data;
+                            //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�");
+                            action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
+                        }
+                        else
+                        {
+                            //璁剧疆鎵撳嵃鍙橀噺鍊�
+                            LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]);
+
+                            var data = new PackingActionOutput() { PkgInfo = CurPkg };
+                            data.ExecCode = "Print";
+                            data.PkgLevel = dtl.PKG_LEVEL;
+                            data.PrintLable = LabelDic[dtl.PKG_LEVEL];
+                            CurCmd = data;
+                            PrintTimes++;
+                            action.Data.Data = data;
+                            //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{min.PKG_LEVEL}灞傚寘瑁匸{min.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[min.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[min.PKG_LEVEL].LABEL_NAME}]");
+                            action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);
+                        }
                     }
                     break;
                 default:
@@ -247,7 +318,7 @@
             //濡傛灉琛屼负璁剧疆涓哄嚭閿欓渶瑕侀噸缃伐搴忔搷浣�
             if (!action.IsSuccessed && NodeAct.NEED_RESET == "Y")
             {
-                CurPosition.ResetSteps();
+                CurPosition.ResetNode();
             }
             return action;
         }
@@ -271,7 +342,7 @@
                         IS_MIN_PKG = dtl.PkgType.IS_MIN_PKG,
                         PKG_LEVEL = dtl.PKG_LEVEL,
                         PKG_QTY = dtl.PKG_QTY,
-                        LABEL_CODE = LabelDic[dtl.PKG_LEVEL].LABEL_CODE,
+                        LABEL_CODE = LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE,
                         IsFinished = true,
                         Package = new()
                         {
@@ -357,18 +428,21 @@
                                     IS_MIN_PKG = nextDtl.PkgType.IS_MIN_PKG,
                                     PKG_LEVEL = nextDtl.PKG_LEVEL,
                                     PKG_QTY = nextDtl.PKG_QTY,
-                                    LABEL_CODE = LabelDic[nextDtl.PKG_LEVEL].LABEL_CODE,
+                                    LABEL_CODE = LabelDic[nextDtl.PKG_LEVEL]?.LABEL_CODE,
                                 };
                                 curItem.Items.Add(next);
                             }
                             curItem = next;
                         }
                         //娣诲姞褰撳墠鐨勫寘瑁呮槑缁嗗埌涓婁竴灞傚寘瑁呯殑鏄庣粏鍒楄〃
-                        curItem.Items.Add(CurPkgItem);
+                        if (!curItem.Items.Contains(CurPkgItem))
+                        {
+                        	curItem.Items.Add(CurPkgItem);
+                        }
                         CurPkgItem = curItem;
 
                         //娣诲姞鏄庣粏鍚庡垽鏂綋鍓嶅寘瑁呭眰绾х殑鏄庣粏鏁伴噺鏄惁绛変簬鍖呰鏁伴噺锛岃嫢鐩哥瓑鍒欐爣璁板綋鍓嶅寘瑁呭眰绾т负瀹屾垚骞跺皾璇曟墦鍗版爣绛�
-                        if (CurPkgItem.Items.Count == CurPkgItem.PKG_QTY)
+                        if (CurPkgItem.Items.Count(q => q.IsFinished) == CurPkgItem.PKG_QTY || CurStep.IsNullOrEmpty())
                         {
                             //琛屼负璁惧畾鐨凮PTION_1-9鏄寘瑁呬笉鍚屽眰绾х殑鏍囩妯℃澘浠g爜锛屽鏋滀负绌哄垯涓嶉渶瑕佹墦鍗�
                             if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
@@ -376,6 +450,7 @@
                                 var data = new PackingActionOutput() { PkgInfo = CurPkg };
                                 data.ExecCode = "Scan";
                                 data.PkgLevel = dtl.PKG_LEVEL;
+                                CurCmd = data;
                                 action.Data.Data = data;
                                 //action.LocaleMsg = new($"璇锋壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮�");
                                 action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseScanLabel", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
@@ -389,11 +464,11 @@
                                 data.ExecCode = "Print";
                                 data.PkgLevel = dtl.PKG_LEVEL;
                                 data.PrintLable = LabelDic[dtl.PKG_LEVEL];
-                                CurPrint = data;
+                                CurCmd = data;
                                 PrintTimes++;
                                 action.Data.Data = data;
-                                //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL].LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
-                                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL].LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);                
+                                //action.LocaleMsg = new Locale($"寮�濮嬬{PrintTimes}娆℃墦鍗扮{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛綶{LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE}: {LabelDic[dtl.PKG_LEVEL].LABEL_NAME}]");
+                                action.LocaleMsg = new Locale("MES.WorkAction.PackingAction.BeginPrint", PrintTimes, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE, LabelDic[dtl.PKG_LEVEL].LABEL_NAME);                
                             }
                         }
                         //褰撳墠鍖呰灞傜骇鐨勬槑缁嗘暟閲忔湭杈惧埌鍖呰鏁伴噺锛屽垯瀹屾垚鏈鎵弿锛岀瓑寰呬笅涓骇鍝佽繘绔�
@@ -409,7 +484,7 @@
                         action.IsSuccessed = false;
                         //action.LocaleMsg = new($"瀹㈡埛绔彁浜ょ殑鍖呰灞傜骇[{pdtl.PKG_LEVEL}]({pdtl.PkgType.PKG_NAME})鏁版嵁涓嶆槸姝e湪澶勭悊鐨勫寘瑁呭眰绾{dtl.PKG_LEVEL}]({dtl.PkgType.PKG_NAME})锛屽伐搴忓凡閲嶇疆锛岃閲嶆柊鎵弿杩涚珯浜у搧鏉$爜");
                         action.LocaleMsg = new("MES.WorkAction.PackingAction.SaveLevelNotMatchException", pdtl.PKG_LEVEL, pdtl.PkgType.PKG_NAME, dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME);
-                        CurPosition.ResetSteps();
+                        CurPosition.ResetNode();
                     }
                 }
             }
@@ -420,7 +495,7 @@
                 action.IsSuccessed = false;
                 //action.LocaleMsg = new($"鎵弿绗瑊dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮乕{input.SN}]鍚庝繚瀛樻暟鎹け璐ワ紝宸ュ簭宸查噸缃紝璇烽噸鏂版壂鎻忚繘绔欎骇鍝佹潯鐮�");
                 action.LocaleMsg = new("MES.WorkAction.PackingAction.SavePkgDataException", dtl.PKG_LEVEL, dtl.PkgType.PKG_NAME, input.SN);
-                CurPosition.ResetSteps();
+                CurPosition.ResetNode();
             }
             return action;
         }
@@ -459,10 +534,17 @@
             var data = new PackingActionOutput() { PkgInfo = CurPkg };
             data.ExecCode = "Complete";
             data.PkgLevel = CurPkg.Item.PKG_LEVEL;
+            CurCmd = data;
             action.Data.Data = data;
             //action.LocaleMsg = new($"绗瑊CurPkg.Item.PKG_LEVEL}灞傚寘瑁匸{CurPkg.Item.PKG_NAME}]宸茬粡鍏ㄩ儴瀹屾垚锛屼繚瀛樺寘瑁呮暟鎹�");
             action.LocaleMsg = new("MES.WorkAction.PackingAction.PackageComplete", CurPkg.Item.PKG_LEVEL, CurPkg.Item.PKG_NAME);
 
+            //鎵嬪姩缁撴潫鍖呰鍒欐爣璁拌涓哄畬鎴�
+            if (CurStep.IsNullOrEmpty())
+            {
+                IsFinished = true;
+            }
+
             return action;
         }
 

--
Gitblit v1.9.3