From 976d3ae1547b896cc5c7875408c09616d5c2ee55 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 26 十一月 2024 20:51:17 +0800
Subject: [PATCH] 箱数更新

---
 Tiger.Business.MES/Transaction/YadaPacking.cs |   90 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 81 insertions(+), 9 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/YadaPacking.cs b/Tiger.Business.MES/Transaction/YadaPacking.cs
index 79d769a..5f40414 100644
--- a/Tiger.Business.MES/Transaction/YadaPacking.cs
+++ b/Tiger.Business.MES/Transaction/YadaPacking.cs
@@ -11,6 +11,8 @@
 using Tiger.Model;
 using Tiger.Model.Entitys.MES.Position;
 using Tiger.Business.MES.WorkAction;
+using Tiger.Model.MES.Yada;
+using System.Data;
 
 namespace Tiger.Business.MES.Transaction
 {
@@ -37,6 +39,8 @@
         public PackingAction TempPkgAction { get; set; }
         public bool IsPrintCustomerLabel { get; set; }
         public string ShippingOrder { get; set; }
+        public DateTime curtime = DateTime.Now;
+        public DateTime prevtime = DateTime.Now;
         #endregion Propertys & Variables
 
         #region Functions
@@ -47,6 +51,7 @@
         /// <returns></returns>
         public async Task<ApiAction<SubmitOutput>> Submit(SubmitInput input)
         {
+            curtime = prevtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 1 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
             var action = new ApiAction<SubmitOutput>(new SubmitOutput());
             try
             {
@@ -64,10 +69,11 @@
                 {
                     IsPrintCustomerLabel = input.Options["IsPrintCustomerLabel"].ToBoolean();
                 }
-                if (input.Options.ContainsKey("ShippingOrder"))
-                {
-                    ShippingOrder = IsPrintCustomerLabel ? input.Options["ShippingOrder"].ToString() : "";
-                }
+          
+                //if (input.Options.ContainsKey("ShippingOrder"))
+                //{
+                //    ShippingOrder = IsPrintCustomerLabel ? input.Options["ShippingOrder"].ToString() : "";
+                //}
                 //PkgSubmit锛氭墜鍔ㄧ粨鏉熷寘瑁咃紝鎵嬪姩淇濆瓨鏆傚瓨鐨勫寘瑁呮暟鎹�
                 if (NodeCmd == "PkgSubmit")
                 {
@@ -88,13 +94,13 @@
                         var wosns = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER && q.BATCH_NO == s.BATCH_NO))
                                                 .ByAuth(input.AuthOption)//.Where((q, s) => s.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue())
                                                 .Where((q, s) => s.SN == input.SN || s.FLOW_SN == input.SN || s.TRAY_SN == input.SN).Select((q, s) => new { Batch = q, SN = s }).ToList();
-
+                        curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 2 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                         //鍏堝垽鏂綋鍓嶅伐鍗曚笉涓虹┖涓斿綋鍓嶅矖浣嶅湪褰撳墠宸ュ崟鏄笉鏄绔欙紝濡傛灉鏄垯涓嶅厑璁稿彉鏇村綋鍓嶅伐鍗曪紝灏濊瘯鎶婃潯鐮佺粦瀹氬埌褰撳墠宸ュ崟
                         if (!CurBatch.IsNullOrEmpty() && CurBatch.IsFirstNode(PostCode))
                         {
                             //鏇存柊CurBatch
                             CurBatch?.Update();
-
+                            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 3 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                             var wosn = wosns.FirstOrDefault(q => q.Batch.ORDER_NO == CurBatch.WO.ORDER_NO && (q.SN.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue() || q.SN.STATUS == BIZ_MES_WO_SN.STATUSs.Scrap.GetValue()));
                             if (!wosn.IsNullOrEmpty())
                             {
@@ -108,6 +114,7 @@
                             {
                                 //鎻愪氦鏁版嵁
                                 action = NodeSubmit(action, input);
+                                curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 4 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                                 //鏇存柊宸ュ簭淇℃伅
                                 if (!action.IsSuccessed)
                                 {
@@ -228,20 +235,23 @@
                     {
                         //鏇存柊CurBatch
                         CurBatch?.Update();
-
+                        curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 5 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                         var submitStep = Steps.Where(q => q.ID == input.CurStepID && !q.IsFinished).FirstOrDefault();
                         //濡傛灉瀹㈡埛绔繑鍥炵殑褰撳墠宸ユID鎵句笉鍒版湭瀹屾垚鐨勮涓哄伐姝ワ紝鍒欑洿鎺ュ紑濮嬩笅涓�涓涓哄伐姝�
                         if (submitStep.IsNullOrEmpty())
                         {
                             action = BeginNextActionStep(input);
+                            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 6 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                         }
                         else
                         {
                             action = submitStep.Submit(input);
+                            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 7 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                             //濡傛灉褰撳墠宸ユ宸插畬鎴愶紝寮�濮嬫墽琛屼笅涓�宸ユ
                             if (action.IsSuccessed && submitStep.IsFinished)
                             {
                                 action = BeginNextActionStep(input);
+                                curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 8 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                             }
                             //濡傛灉褰撳墠宸ユ鏈畬鎴�
                             else
@@ -286,6 +296,7 @@
                 //action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氭彁浜ゆ搷浣滄暟鎹紓甯�");
                 action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.SubmitException"));
             }
+            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 9 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
             return action;
         }
 
@@ -297,6 +308,7 @@
         /// <returns></returns>
         public ApiAction<SubmitOutput> NodeSubmit(ApiAction<SubmitOutput> action, SubmitInput input)
         {
+            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 10 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
             var curNode = CurBatch.GetNode(PostCode);
             try
             {
@@ -380,7 +392,46 @@
 
                     //璁剧疆褰撳墠鎸囦护涓烘甯镐骇鍝佽繃绔�
                     NodeCmd = "NodeSubmit";
+                    curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 11 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
 
+                    //鑾峰彇鍑鸿揣鐘舵��
+                    DbClient db = Biz.DataSource["YadaU9C"].Client;
+                    var ship = db.Queryable<mes_ShipList>().Where(q => q.MoDoc == CurBatch.WO.ORDER_NO && q.Status == 2 && SqlFunc.DateIsSame(q.BusinessDate, DateTime.Now)).First();
+                    int CurShipQty = 0;
+                    int WaitShipmentCarton = 0;
+                    if (ship.IsNullOrEmpty()) { IsPrintCustomerLabel = false; } else
+                    {
+                        CurShipQty = ship.ShipQty;
+                        SugarParameter[] pars = Biz.Db.Ado.GetParameters(new { BATCH = CurBatch.Batch.BATCH_NO, NodeIdOrName = curNode.NODE_NAME });
+                        var list = Biz.Db.Ado.UseStoredProcedure().GetDataTable("SP_MES_GET_NODE_BATCH_COUNT", pars).AsEnumerable().ToList();
+                        if (!list.IsNullOrEmpty())
+                        {
+                            var batchCount = list.Where(q => q["ProdDate"].ToString() == "Whole").FirstOrDefault();
+                            WaitShipmentCarton = batchCount["WaitShipment"].ToInt32();
+                            IsPrintCustomerLabel = batchCount.IsNullOrEmpty() ? false : batchCount["WaitShipment"].ToInt32() >= ship.ShipQty ? false : true;
+                        }
+                    }
+                    ShippingOrder = IsPrintCustomerLabel ? ship?.ShipDoc ?? "" : "";
+                    //缂撳瓨鍑鸿揣鏁伴噺
+                    if (Context.ContainsKey("CurShipQty"))
+                    {
+                        Context["CurShipQty"] = CurShipQty;
+                    }
+                    else
+                    {
+                        Context.Add("CurShipQty", CurShipQty);
+                    }
+                    //缂撳瓨鍑鸿揣绠辨暟
+                    if (Context.ContainsKey("CurWaitShipmentCarton"))
+                    {
+                        Context["CurWaitShipmentCarton"] = WaitShipmentCarton;
+                    }
+                    else
+                    {
+                        Context.Add("CurWaitShipmentCarton", WaitShipmentCarton);
+                    }
+
+                    curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 12 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                     //缁戝畾鏉$爜鍒板伐鍗�
                     foreach (var wipSN in wipSNs)
                     {
@@ -524,6 +575,7 @@
                     var _curNodeSetting = curNodeSetting.Clone();
                     var _Batch = CurBatch.Batch.Clone();
 
+                    curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 13 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
                     //鍒濆鍖栧伐姝ュ垪琛�
                     Steps.Clear();
                     var curStep = new WorkStep(IWorkStep.NodeTypes.Node, this)
@@ -647,6 +699,7 @@
                 //action.CatchExceptionWithLog(ex, $"{curNode.NODE_NAME}锛氬伐搴忚妭鐐瑰伐姝ユ彁浜ゆ暟鎹紓甯革紝璇锋鏌ュ伐搴忚妭鐐硅缃�");
                 action.CatchExceptionWithLog(ex, Biz.L("MES.Transaction.PackingNode.NodeSubmitException", curNode.NODE_NAME));
             }
+            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 13.1 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
             return action;
         }
 
@@ -660,6 +713,7 @@
             var curPkg = Context.ContainsKey("CurPackage") ? Context["CurPackage"] as WipPkg : null;
             var operInfo = SetOperNodeInfo(CurOperInfo(locale));
             Action endAction = null;
+            curtime = DateTime.Now;  Logger.Console.Info($"{CurSN} : ***** 14 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
 
             //濡傛灉褰撳墠鏉$爜宸茬粡璧板埌娴佺▼缁堢偣鍒欒褰曟潯鐮佸畬宸�
             if (operInfo.IsReachedEndNode)
@@ -727,7 +781,7 @@
 
             //淇濆瓨鏁版嵁搴�
             SaveStepsCommitActionToDB(endAction);
-
+            
             //淇濆瓨鎴愬姛锛岃繑鍥炶繃绔欐秷鎭�
             operInfo.InputQty += CurWipSNs.Count;
             action.Data.Data = new PackingActionOutput() { PkgInfo = curPkg };
@@ -744,7 +798,7 @@
 
             //閲嶇疆宸ュ簭
             ResetNode();
-
+            curtime = DateTime.Now; Logger.Console.Info($"{CurSN} : ***** 15 : {(curtime - prevtime).TotalSeconds}s", ConsoleColor.Green); prevtime = curtime;
             return action;
         }
 
@@ -908,6 +962,24 @@
             return action;
         }
 
+        /// <summary>
+        /// 鑾峰彇鏄惁鎵撳嵃瀹㈡埛鏍囩杩樻槸鍏ュ簱鏍囩
+        /// </summary>
+        /// <returns></returns>
+        public async Task<ApiAction<ShipingInfo>> GetIsCustomerLabelAndShipQty()
+        {
+            var action = new ApiAction<ShipingInfo>();
+            try
+            {
+                action.Data = new ShipingInfo() { IsPrintCustomerLabel= IsPrintCustomerLabel,ShipQty = Context["CurShipQty"].ToInt32() };
+            }
+            catch (Exception ex)
+            {
+                action.CatchExceptionWithLog(ex, $"鍖呰宸ュ簭锛氳幏鍙栨槸鍚︽墦鍗板鎴锋爣绛捐繕鏄叆搴撴爣绛惧紓甯�");
+            }
+            return action;
+        }
+
         #endregion Functions
 
         /// <summary>

--
Gitblit v1.9.3