From b4bd82fdbace031a81ab40963c8344d5eaa4a772 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期三, 21 八月 2024 17:19:44 +0800
Subject: [PATCH] 增加雅达三码合一行为,用于厂内条码绑定并打印客户条码

---
 Tiger.Business.MES/Transaction/Position.cs |   73 ++++++++++++++++++------------------
 1 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index 6e26cf6..a932e37 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -17,7 +17,7 @@
     /// <summary>
     /// MES宀椾綅浜嬪姟
     /// </summary>
-    public class Position : MESTransactionBase, IPosition, ICloneable
+    public class Position : MESTransactionBase, IPosition
     {
         public IPosition Init(string id, string apiHost, string userCode, string postCode)
         {
@@ -56,7 +56,7 @@
         public WorkBatch CurBatch { get; set; }
         public IWorkBatch WorkBatch => CurBatch;
         public List<MES_WIP_DATA> CurWipSNs { get; set; } = new();
-        public string CurSN => CurWipSNs.Any() ? (CurWipSNs.First().TRAY_SN.IsNullOrEmpty() ? CurWipSNs.First().SN : CurWipSNs.First().TRAY_SN) : "";
+        public string CurSN => (CurWipSNs.Any() ? (CurWipSNs.First().TRAY_SN.IsNullOrEmpty() ? CurWipSNs.First().SN : CurWipSNs.First().TRAY_SN) : "");
         public List<MES_WIP_HIS> CurWipSNHiss { get; set; } = new();
         public List<MES_WIP_DFT> CurDefects { get; set; } = new();
         public Dictionary<string, object> Context { get; set; } = new();
@@ -71,9 +71,10 @@
         /// 鏄惁闇�瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽緟闇�瑕佺殑鏃跺�欏啀鎻愪氦
         /// </summary>
         public bool NeedTemporaryStoreDBCommitAction { get; set; } = false;
-        protected List<Action> DBCommitList { get; set; } = new();
+        protected Dictionary<string, List<Action>> DBCommitList { get; set; } = new();
         protected List<Position> NodeCommitList { get; set; } = new();
-
+        protected Dictionary<string, OperInfo> OperInfoDic { get; set; } = new();
+        protected OperInfo CurOperInfo { get; set; }
         #endregion Propertys & Variables
 
         #region Functions
@@ -125,6 +126,11 @@
                     WoContext.WoBatchDic.Add(wb.Batch.BATCH_NO, wb);
                 }
                 CurBatch = WoContext.GetBatch(input.OrderNo, CurLine.LINE_CODE);
+                if (!OperInfoDic.ContainsKey(CurBatch.Batch.BATCH_NO))
+                {
+                    OperInfoDic.Add(CurBatch.Batch.BATCH_NO, new());
+                }
+                
                 action.Data = new { WorkOrder = CurBatch.WO, Bacth = CurBatch.Batch };
             }
             catch (Exception ex)
@@ -181,6 +187,24 @@
             CurWipSNHiss.Clear();
             CurStep = null;
             CurDefects.Clear();
+        }
+
+        /// <summary>
+        /// 璁剧疆褰撳墠鏉$爜鐨勫伐搴忎俊鎭�
+        /// </summary>
+        public OperInfo SetOperNodeInfo(OperInfo info)
+        {
+            if (CurWipSNs.Any())
+            {
+                info.CurNode = CurWipSNs.First().NODE_NAME;
+                info.NextNode = string.Join(",", CurBatch.GetNextNodes(CurWipSNs.First()).Select(q => q.NODE_NAME));
+            }
+            else
+            {
+                info.CurNode = "   鈥�   ";
+                info.NextNode = "   鈥�   ";
+            }
+            return info;
         }
 
         /// <summary>
@@ -330,25 +354,18 @@
             return result;
         }
 
-        public object Clone()
-        {
-            var newObject = this.MemberwiseClone() as Position;
-            newObject.Steps = Steps.Clone();
-            newObject.CurWipSNs = CurWipSNs.Clone();
-
-            return newObject;
-        }
-
         /// <summary>
         /// 淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版暟鎹簱
         /// </summary>
         protected void SaveStepsCommitActionToDB()
         {
             //淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛�
+            var commitList = new List<Action>();
             foreach (var step in Steps.OrderBy(q => q.Sequence))
             {
-                DBCommitList.Add(step.DBSubmitAction);
+                commitList.Add(step.DBSubmitAction);
             }
+            DBCommitList.Add(CurSN, commitList);
             //濡傛灉涓嶉渶瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽垯鎶婃彁浜ゆ搷浣滃垪琛ㄦ彁浜ゅ埌鏁版嵁搴�
             if (!NeedTemporaryStoreDBCommitAction)
             {
@@ -358,9 +375,12 @@
                 var dbTran = GetCommitDB().UseTran(() =>
                 {
                     //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁
-                    foreach (var action in DBCommitList)
+                    foreach (var wipSn in DBCommitList.Keys)
                     {
-                        action.Invoke();
+                        foreach (var action in DBCommitList[wipSn])
+                        {
+                            action.Invoke();
+                        }
                     }
                 });
                 if (dbTran.IsSuccess)
@@ -374,25 +394,6 @@
                     throw dbTran.ErrorException;
                 }
             }
-
-
-            //if (NeedTemporaryStoreDBCommitAction)
-            //{
-
-
-            //    NodeCommitList.Add(this.Clone() as Position);
-            //}
-            //else
-            //{
-            //    //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛�
-            //    foreach (var item in NodeCommitList)
-            //    {
-            //        item?.DoSaveToDB();
-            //        item?.Dispose();
-            //    }
-            //    DoSaveToDB();
-            //    NodeCommitList.Clear();
-            //}
         }
 
         protected void DoSaveToDB()
@@ -503,7 +504,7 @@
                             switch (pv.VAR_METHOD)
                             {
                                 case "GetCartonGenerate":
-                                    return Biz.CodeRule[lv.BARCODE_RULE].Generate($"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString();
+                                    return Biz.CodeRule[lv.BARCODE_RULE ?? ""]?.Generate($"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? "";
                                 default:
                                     return "";
                             }

--
Gitblit v1.9.3