From b0dc8869680168a0c8fda011f8ae2492d843c159 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 06 八月 2024 12:02:48 +0800
Subject: [PATCH] 已完成所有工步更新

---
 Tiger.Business.MES/WorkAction/PackingAction.cs |  202 +++++++++++++++++++++++++++----------------------
 1 files changed, 111 insertions(+), 91 deletions(-)

diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs
index 23cc2a3..d5b882d 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;
 
@@ -26,8 +27,8 @@
         public WipPkgItem CurPkgItem { 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
 
@@ -55,12 +56,13 @@
             	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 codes = (Setting.OPTION_1?? "").JsonToObject<List<WipPkgItem>>();
+            foreach (var code in codes)
             {
-                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 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);
             }
+            LabelPV = Biz.Db.Queryable<BAS_LABEL_PV>().ToList();
             //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓紝鏈夊垯鑾峰彇褰撳墠鐨勫寘瑁呰褰�
             if (CurPosition.Context.ContainsKey("CurPackage") && !CurPosition.Context["CurPackage"].IsNullOrEmpty())
             {
@@ -80,7 +82,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;
@@ -95,7 +97,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())
                         {
@@ -104,7 +106,11 @@
                         child = item;
                     }
                 }
-                CurPkg.Item.Items.Add(child);
+                if (!child.IsNullOrEmpty())
+                {
+                    CurPkg.Item.Items.Add(child);
+                }
+                
             }
         }
 
@@ -118,14 +124,14 @@
             //琛屼负璁惧畾鐨凮PTION_1鏄涓�灞傚寘瑁呯殑鏍囩妯℃澘浠g爜锛屽鏋滀负绌哄垯涓嶉渶瑕佹墦鍗�
             if (LabelDic[min.PKG_LEVEL].IsNullOrEmpty())
             {
-                var msg = new Locale("MES.WorkAction.PackingAction.BeginMsg", min.PKG_LEVEL, min.PkgType.PKG_NAME, CurPosition.CurWipSN.SN);
+                var msg = new Locale("MES.WorkAction.PackingAction.BeginMsg", min.PKG_LEVEL, min.PkgType.PKG_NAME, CurPosition.CurSN);
                 //var msg = new Locale($"宸叉壂鎻忕{dtl.PKG_LEVEL}灞傚寘瑁匸{dtl.PkgType.PKG_NAME}]鐨勬爣绛炬潯鐮乕{CurPosition.CurWipSN.SN}]");
                 return msg;
             }
             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;
             }
         }
@@ -140,7 +146,7 @@
             action.LocaleMsg = GetBeginMsg();
 
             var min = PkgRule.Details.OrderBy(q => q.PKG_LEVEL).First();
-            //琛屼负璁惧畾鐨凮PTION_1-9鏄寘瑁呬笉鍚屽眰绾х殑鏍囩妯℃澘浠g爜锛屽鏋滀负绌哄垯涓嶉渶瑕佹墦鍗�
+            //鏍规嵁鍖呰涓嶅悓灞傜骇鐨勬爣绛炬ā鏉夸唬鐮侊紝濡傛灉涓虹┖鍒欎笉闇�瑕佹墦鍗�
             if (LabelDic[min.PKG_LEVEL].IsNullOrEmpty())
             {
                 input.Data = new PackingActionInput()
@@ -148,7 +154,7 @@
                     ExecCode = "Scan",
                     IsFinish = true,
                     PkgLevel = min.PKG_LEVEL,
-                    PkgSN = CurPosition.CurWipSN.SN,
+                    PkgSN = CurPosition.CurSN,
                 }.ToJson();
                 action = Submit(input);
             }
@@ -164,8 +170,8 @@
                 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);
             }
 
             //濡傛灉杩斿洖鎴愬姛鍒欒涓哄綋鍓嶈涓哄彲浠ュ紑濮嬫墽琛岋紝鍚﹀垯杩斿洖澶辫触
@@ -232,16 +238,16 @@
                             {
                                 PrintTimes++;
                                 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);
+                                //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
                             {
                                 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);
+                                //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();
                             }
                         }
@@ -295,8 +301,8 @@
                             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);
+                            //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;
@@ -331,7 +337,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()
                         {
@@ -339,20 +345,20 @@
                             AUTH_PROD = CurPosition.CurLine.LINE_CODE,
                             SN = pInput.PkgSN,
                             PKG_TYPE = dtl.PkgType.PKG_NAME,
-                            ITEM_CODE = CurPosition.CurWipSN.ITEM_CODE,
-                            QTY = CurPosition.CurWipSN.QTY,
+                            ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE,
+                            QTY = CurPosition.CurWipSNs.First().QTY,
                             UNIT = dtl.PkgType.PKG_NAME,
-                            WORK_ORDER = CurPosition.CurWipSN.WORK_ORDER,
-                            BATCH_NO = CurPosition.CurWipSN.BATCH_NO,
-                            ROT_CODE = CurPosition.CurWipSN.ROT_CODE,
-                            NODE_ID = CurPosition.CurWipSN.NODE_ID,
-                            NODE_NAME = CurPosition.CurWipSN.NODE_NAME,
-                            FTY_CODE = CurPosition.CurWipSN.FTY_CODE,
-                            WS_CODE = CurPosition.CurWipSN.WS_CODE,
-                            LINE_CODE = CurPosition.CurWipSN.LINE_CODE,
-                            POST_CODE = CurPosition.CurWipSN.POST_CODE,
-                            OPER_CODE = CurPosition.CurWipSN.OPER_CODE,
-                            SEGMENT = CurPosition.CurWipSN.SEGMENT,
+                            WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER,
+                            BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO,
+                            ROT_CODE = CurPosition.CurWipSNs.First().ROT_CODE,
+                            NODE_ID = CurPosition.CurWipSNs.First().NODE_ID,
+                            NODE_NAME = CurPosition.CurWipSNs.First().NODE_NAME,
+                            FTY_CODE = CurPosition.CurWipSNs.First().FTY_CODE,
+                            WS_CODE = CurPosition.CurWipSNs.First().WS_CODE,
+                            LINE_CODE = CurPosition.CurWipSNs.First().LINE_CODE,
+                            POST_CODE = CurPosition.CurWipSNs.First().POST_CODE,
+                            OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE,
+                            SEGMENT = CurPosition.CurWipSNs.First().SEGMENT,
                         }
                     };
                     FinishLevel++;
@@ -371,20 +377,20 @@
                             AUTH_PROD = CurPosition.CurLine.LINE_CODE,
                             SN = pInput.PkgSN,
                             PKG_TYPE = dtl.PkgType.PKG_NAME,
-                            ITEM_CODE = CurPosition.CurWipSN.ITEM_CODE,
+                            ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE,
                             QTY = CurPkgItem.Items.Sum(q => q.Package.QTY),
                             UNIT = dtl.PkgType.PKG_NAME,
-                            WORK_ORDER = CurPosition.CurWipSN.WORK_ORDER,
-                            BATCH_NO = CurPosition.CurWipSN.BATCH_NO,
-                            ROT_CODE = CurPosition.CurWipSN.ROT_CODE,
-                            NODE_ID = CurPosition.CurWipSN.NODE_ID,
-                            NODE_NAME = CurPosition.CurWipSN.NODE_NAME,
-                            FTY_CODE = CurPosition.CurWipSN.FTY_CODE,
-                            WS_CODE = CurPosition.CurWipSN.WS_CODE,
-                            LINE_CODE = CurPosition.CurWipSN.LINE_CODE,
-                            POST_CODE = CurPosition.CurWipSN.POST_CODE,
-                            OPER_CODE = CurPosition.CurWipSN.OPER_CODE,
-                            SEGMENT = CurPosition.CurWipSN.SEGMENT,
+                            WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER,
+                            BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO,
+                            ROT_CODE = CurPosition.CurWipSNs.First().ROT_CODE,
+                            NODE_ID = CurPosition.CurWipSNs.First().NODE_ID,
+                            NODE_NAME = CurPosition.CurWipSNs.First().NODE_NAME,
+                            FTY_CODE = CurPosition.CurWipSNs.First().FTY_CODE,
+                            WS_CODE = CurPosition.CurWipSNs.First().WS_CODE,
+                            LINE_CODE = CurPosition.CurWipSNs.First().LINE_CODE,
+                            POST_CODE = CurPosition.CurWipSNs.First().POST_CODE,
+                            OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE,
+                            SEGMENT = CurPosition.CurWipSNs.First().SEGMENT,
                         };
                         FinishLevel++;
                         //瀹屾垚鍖呰鐨勫眰绾у皬浜庢渶澶栧眰鍖呰灞傜骇
@@ -417,7 +423,7 @@
                                     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);
                             }
@@ -456,8 +462,8 @@
                                 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);                
                             }
                         }
                         //褰撳墠鍖呰灞傜骇鐨勬槑缁嗘暟閲忔湭杈惧埌鍖呰鏁伴噺锛屽垯瀹屾垚鏈鎵弿锛岀瓑寰呬笅涓骇鍝佽繘绔�
@@ -517,9 +523,6 @@
                 throw dbTran.ErrorException;
             }
 
-            //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰�
-            CurPosition.Context.Remove("CurPackage");
-
             var data = new PackingActionOutput() { PkgInfo = CurPkg };
             data.ExecCode = "Complete";
             data.PkgLevel = CurPkg.Item.PKG_LEVEL;
@@ -546,58 +549,75 @@
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
 
             //璁板綍琛屼负鎿嶄綔璁板綍
-            var wipAct = new MES_WIP_ACT()
+            var wipActs = new List<MES_WIP_ACT>();
+            foreach (var wipSn in CurPosition.CurWipSNs)
             {
-                AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG,
-                AUTH_PROD = CurPosition.CurLine.LINE_CODE,
-                HIS_ID = CurPosition.CurWipSNHis.ID,
-                SN = CurPosition.CurWipSN.SN,
-                STATUS = CurPosition.CurWipSN.STATUS,
-                ITEM_CODE = CurPosition.CurWipSN.ITEM_CODE,
-                WORK_ORDER = CurPosition.CurWipSN.WORK_ORDER,
-                BATCH_NO = CurPosition.CurWipSN.BATCH_NO,
-                ROT_CODE = CurPosition.CurWipSN.ROT_CODE,
-                NODE_ID = CurPosition.CurWipSN.NODE_ID,
-                NODE_NAME = CurPosition.CurWipSN.NODE_NAME,
-                ACT_ID = NodeAct.ID,
-                ACT_NAME = NodeAct.ACT_NAME,
-                FTY_CODE = CurPosition.CurWipSN.FTY_CODE,
-                WS_CODE = CurPosition.CurWipSN.WS_CODE,
-                LINE_CODE = CurPosition.CurWipSN.LINE_CODE,
-                POST_CODE = CurPosition.CurWipSN.POST_CODE,
-                OPER_CODE = CurPosition.CurWipSN.OPER_CODE,
-                SEGMENT = CurPosition.CurWipSN.SEGMENT,
-                TRAY_SN = CurPosition.CurWipSN.TRAY_SN,
-                OPERATION_TIME = DateTime.Now,
-                SFTS_CODE = CurPosition.CurWipSN.SFTS_CODE,
-                SFT_CODE = CurPosition.CurWipSN.SFT_CODE,
-                PRD_CODE = CurPosition.CurWipSN.PRD_CODE,
-                ACT_TYPE = NodeAct.ACT_TYPE,
-                ACT_SN = CurPosition.CurWipSN.SN,
-                ACT_RESULT = "Y",
-                TRACE_INFO = $"浜у搧鏉$爜[{CurPosition.CurWipSN.SN}]鍖呰瀹屾垚",
-            };
+                var wipAct = new MES_WIP_ACT()
+                {
+                    AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG,
+                    AUTH_PROD = CurPosition.CurLine.LINE_CODE,
+                    HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID,
+                    SN = wipSn.SN,
+                    STATUS = wipSn.STATUS,
+                    ITEM_CODE = wipSn.ITEM_CODE,
+                    WORK_ORDER = wipSn.WORK_ORDER,
+                    BATCH_NO = wipSn.BATCH_NO,
+                    ROT_CODE = wipSn.ROT_CODE,
+                    NODE_ID = wipSn.NODE_ID,
+                    NODE_NAME = wipSn.NODE_NAME,
+                    ACT_ID = NodeAct.ID,
+                    ACT_NAME = NodeAct.ACT_NAME,
+                    FTY_CODE = wipSn.FTY_CODE,
+                    WS_CODE = wipSn.WS_CODE,
+                    LINE_CODE = wipSn.LINE_CODE,
+                    POST_CODE = wipSn.POST_CODE,
+                    OPER_CODE = wipSn.OPER_CODE,
+                    SEGMENT = wipSn.SEGMENT,
+                    TRAY_SN = wipSn.TRAY_SN,
+                    OPERATION_TIME = DateTime.Now,
+                    SFTS_CODE = wipSn.SFTS_CODE,
+                    SFT_CODE = wipSn.SFT_CODE,
+                    PRD_CODE = wipSn.PRD_CODE,
+                    ACT_TYPE = NodeAct.ACT_TYPE,
+                    ACT_SN = wipSn.SN,
+                    ACT_RESULT = "Y",
+                    TRACE_INFO = $"浜у搧鏉$爜[{string.Join("锛�", CurPosition.CurSN)}]鍖呰瀹屾垚",
+                };
+                wipActs.Add(wipAct);
+            }
 
             //淇濆瓨鏁版嵁
             CurStep.DBSubmitAction = () =>
             {
                 var db = CurPosition.GetCommitDB();
-                db.Storageable(wipAct, CurPosition.UserCode).ExecuteCommand();
+                db.Storageable(wipActs, CurPosition.UserCode).ExecuteCommand();
             };
 
-            //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓�
-            if (CurPosition.Context.ContainsKey("CurPackage"))
+            if (CurPkg.IsFinished)
             {
-                CurPosition.Context["CurPackage"] = CurPkg;
+                //鏈�澶栧眰鍖呰宸茬粡瀹屾垚鍖呰锛屽垯鎶婂伐搴忎腑鏆傚瓨鏍囪璁句负false锛岀粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
+                CurPosition.NeedTemporaryStoreDBCommitAction = false;
+                //鍒犻櫎宸ュ簭涓婁笅鏂囦腑鐨勫寘瑁呰褰�
+                CurPosition.Context.Remove("CurPackage");
             }
             else
             {
-                CurPosition.Context.Add("CurPackage", CurPkg);
+                //鏈�澶栧眰鍖呰鏈畬鎴愬寘瑁咃紝鍒欐妸宸ュ簭涓殏瀛樻爣璁拌涓簍rue锛屽緟鍏ㄩ儴鍖呰瀹屾垚鍐嶇粺涓�鎻愪氦鍖呰鍐呬骇鍝佺殑杩囩珯璁板綍
+                CurPosition.NeedTemporaryStoreDBCommitAction = true;
+                //濡傛灉宸ュ簭涓婁笅鏂囦腑娌℃湁鍖呰璁板綍鍒欐柊寤轰竴涓�
+                if (CurPosition.Context.ContainsKey("CurPackage"))
+                {
+                    CurPosition.Context["CurPackage"] = CurPkg;
+                }
+                else
+                {
+                    CurPosition.Context.Add("CurPackage", CurPkg);
+                }
             }
 
             IsFinished = true;
-            action.LocaleMsg = new($"浜у搧鏉$爜[{CurPosition.CurWipSN.SN}]鍖呰瀹屾垚");
-            action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurWipSN.SN);
+            action.LocaleMsg = new($"浜у搧鏉$爜[{CurPosition.CurSN}]鍖呰瀹屾垚");
+            action.LocaleMsg = new("MES.WorkAction.PackingAction.PackingSuccess", CurPosition.CurSN);
             return action;
         }
 

--
Gitblit v1.9.3