From 1319cb7072623dff12369a889af766db2d166def Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期一, 28 七月 2025 17:58:47 +0800
Subject: [PATCH] 叠盘机优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs |   89 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
index e0d65e5..186c504 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
@@ -15,6 +15,7 @@
 using System.Diagnostics.Eventing.Reader;
 using System.IdentityModel.Protocols.WSTrust;
 using System.Linq;
+using System.Net.NetworkInformation;
 using System.Security.Cryptography;
 using System.Threading;
 using System.Threading.Tasks;
@@ -79,6 +80,17 @@
             {
                 //鏍规嵁瀹㈡埛鐜板満瑕佹眰锛屽鏋滃彇璐у畬鎴愪换鍔″け璐ヤ汉宸ユ媺鍒扮粓鐐癸紝鎴戜滑灏卞綋鍗歌揣瀹屾垚澶勭悊锛涘鏋滄槸浜哄伐鎷夎蛋鍒板叾瀹冨尯鍩燂紝鎴戜滑灏辫В閿佺粓鐐癸紝鍒犻櫎鎵樼洏銆�                 //缁堢偣缁戝畾
+                //鐗╂枡鍒颁綅閫氱煡
+                if (mst.S_TYPE == "鍑哄钩搴� || mst.S_TYPE == "浣欐枡杩斿洖")
+                {
+                    string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
+                    TaskProcess.MESIteminfoback(mst, urlitem);
+                }
+                if ((mst.S_NOTE == "鍑哄簱" || mst.S_NOTE == "寮傚父搴撳尯鍏ュ簱") && !string.IsNullOrEmpty(mst.S_MES_NO))
+                {
+                    string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
+                    TaskProcess.MESIteminfoback(mst, urlitem);
+                }
                 CacheBitUpdate(mst, false);
                 LocationHelper.UnLockLoc(mst.S_END_LOC);
             }
@@ -96,7 +108,7 @@
         /// <param name="model">璇锋眰鍙傛暟</param>
         /// <param name="url">鍦板潃</param>
         /// <param name="TN_Task">浠诲姟</param>
-        internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task)
+        internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task, string name)
         {
             try
             {
@@ -156,6 +168,7 @@
                             //浜曟澗鍙犵洏鏈哄畨鍏ㄤ氦浜�                             if (TN_Task.S_NOTE == "绌烘墭鍥炲簱")
                             {
+                                LogHelper.Info($"-------鍙犵洏鏈哄畨鍏ㄨ姹�-----");
                                 var Device = Settings.deviceInfos.Where(a => a.TN_Location == TN_Task.S_START_LOC).FirstOrDefault();
                                 if (Device != null)
                                 {
@@ -184,7 +197,7 @@
                             }
                             else
                             {
-                                if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state))
+                                if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state, name))
                                 {
                                     // NDCHelper.ChangeParam(TN_Task.S_CODE.Trim(), 1101, 18);
                                     NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1");
@@ -208,9 +221,20 @@
                         }
                         if (TN_Task.S_NOTE == "绌烘墭鍥炲簱")
                         {
+                            LogHelper.Info($"-------鍙犵洏鏈哄畨鍏ㄨ姹�-----");
                             var Device = Settings.deviceInfos.Where(a => a.TN_Location == TN_Task.S_START_LOC).FirstOrDefault();
                             if (Device != null)
                             {
+                                if (!S7Helper.WriteDpj(Device.address, 1002, 0))
+                                {
+                                    Task.Run(() =>
+                                    {
+                                        while (!S7Helper.WriteDpj(Device.address, 1002, 0))
+                                        {
+                                            Thread.Sleep(1000);
+                                        }
+                                    });
+                                }
                                 //鍐欏叆澶辫触閲嶆柊鍐欏叆
                                 if (!S7Helper.WriteDpj(Device.address, 1001, 1))
                                 {
@@ -222,16 +246,7 @@
                                         }
                                     });
                                 }
-                                if (!S7Helper.WriteDpj(Device.address, 1002, 0))
-                                {
-                                    Task.Run(() =>
-                                    {
-                                        while (!S7Helper.WriteDpj(Device.address, 1002, 0))
-                                        {
-                                            Thread.Sleep(1000);
-                                        }
-                                    });
-                                }
+                               
                             }
                             else
                             {
@@ -287,7 +302,7 @@
                         }
                         else
                         {
-                            if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state))
+                            if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state, name))
                             {
                                 NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1");
                             }
@@ -341,7 +356,6 @@
             }
             catch (Exception ex)
             {
-
                 LogHelper.Info($"OperateReq Error ==銆媨ex.ToString()}");
             }
 
@@ -358,7 +372,7 @@
         /// <param name="type"></param>
         /// <param name="taskStatus"></param>
         /// <returns></returns>
-        internal static bool OperateReqByPost(string url, string tasknum, string ordernum, string station, int type, int taskStatus)
+        internal static bool OperateReqByPost(string url, string tasknum, string ordernum, string station, int type, int taskStatus, string name)
         {
             bool permit = false;
             try
@@ -383,6 +397,7 @@
                     LogHelper.Info($"瀹夊叏璇锋眰澶辫触=>msg:{result.msg}");
                     ApiHelper.AddErrorInfo("瀹夊叏浜や簰澶辫触", result.msg, "", tasknum);
                 }
+                ApiHelper.AddInfo(name, "瀹夊叏璇锋眰", date, JsonConvert.SerializeObject(result), "Post", url);
                 return permit;
             }
             catch (Exception)
@@ -433,6 +448,7 @@
                     LogHelper.Info($"瀹夊叏璇锋眰澶辫触=>msg:{result.err_msg}");
                     ApiHelper.AddErrorInfo("瀹夊叏浜や簰澶辫触", result.err_msg, "", no);
                 }
+                ApiHelper.AddInfo("YCL", "瀹夊叏璇锋眰", date, JsonConvert.SerializeObject(result), "Post", url);
                 return permit;
             }
             catch (Exception)
@@ -671,7 +687,22 @@
             //  }
             return result;
         }
-
+        /// <summary>
+        /// 绌烘墭绛夊緟浠诲姟 瓒呮椂5鍒嗙粍鐩存帴鎺ㄩ�
+        /// </summary>
+        /// <param name="mst"></param>
+        /// <returns></returns>
+        internal static void WaitSend(WCSTask mst)
+        {
+            // 璁$畻涓庡綋鍓嶆椂闂寸殑宸�
+            TimeSpan timeDifference = DateTime.Now - mst.T_CREATE;
+            if (timeDifference.TotalMinutes > 5)
+            {
+                var db = new SqlHelper<WCSTask>().GetInstance();
+                mst.S_B_STATE = "绛夊緟";
+                db.Updateable(mst).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand();
+            }
+        }
         /// <summary>
         /// 浠诲姟鐘舵�鍥炴姤
         /// </summary>
@@ -679,7 +710,7 @@
         /// <param name="orderNum">鍗曞彿</param>
         /// <param name="taskStatus">浠诲姟鐘舵�</param>
         /// <param name="url">涓婃姤鎺ュ彛</param>
-        public static void Reportback(string taskNum, string orderNum, int taskStatus, string url)
+        public static void Reportback(string taskNum, string orderNum, int taskStatus, string url, string ly)
         {
             LogHelper.Info($"------------寮�浠诲姟鍥炴姤-----------");
             try
@@ -709,6 +740,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.msg}");
                 }
+                ApiHelper.AddInfo(ly, "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -762,6 +794,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=");
                 }
+                ApiHelper.AddInfo("Wms", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -807,6 +840,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.err_msg}");
                 }
+                ApiHelper.AddInfo("YCL", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -858,7 +892,14 @@
                 StatusArrive statusArrive = new StatusArrive();
                 statusarrive.UseToken = "iFQ5fExGrLYLXliHYWzs";
                 statusArrive.TaskNumber = mst.S_EQ_NO;
-                statusArrive.LocationNum = mst.S_END_LOC;
+                if (status == 1 || status == 3 || status == 4)
+                {
+                    statusArrive.LocationNum = mst.S_START_LOC;
+                }
+                else
+                {
+                    statusArrive.LocationNum = mst.S_END_LOC;
+                }
                 statusArrive.Time = DateTime.Now.ToString();
                 statusArrive.Status = status.ToString();
                 statusArrive.Rfid = mst.S_CNTR_CODE;
@@ -885,6 +926,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.imsg}");
                 }
+                ApiHelper.AddInfo("Mes", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -916,6 +958,7 @@
                 //绮夋枡鍥炲簱涓嶉渶瑕佸洖鎶�                 if (cntritem != null && mst.S_TYPE == "浣欐枡杩斿洖" && cntritem.S_ITEM_CODE.StartsWith("4X"))
                 {
+                    LogHelper.Info("绮夋枡鍥炲簱涓嶉渶瑕佸埌浣嶅彂閫佺墿鏂欏埌浣�);
                     return;
                 }
                 //鑾峰彇鏃堕棿鎴�@@ -937,13 +980,18 @@
                 {
                     string curBagNum = null;
                     string weightBag = null;
-                    if (cntritem.F_QTY > 0)
+                    string initBagNum = null;
+                    if ((int)cntritem.F_QTY > 0)
                     {
                         curBagNum = cntritem.F_QTY.ToString();
                     }
                     if (!string.IsNullOrEmpty(cntritem.F_WEIGHT1) && int.Parse(cntritem.F_WEIGHT1) > 0)
                     {
                         weightBag = cntritem.F_WEIGHT1;
+                    }
+                    if (!string.IsNullOrEmpty(cntritem.F_QTY1) && int.Parse(cntritem.F_QTY1) > 0)
+                    {
+                        initBagNum = cntritem.F_QTY1;
                     }
                     list.Add(new MesItemBackInfoModel()
                     {
@@ -961,7 +1009,7 @@
                         WmsLot = cntritem.WmsLot,
                         WeightBag = weightBag,
                         CurBagNum = curBagNum,
-                        InitBagNum = cntritem.F_QTY1
+                        InitBagNum = initBagNum
                     });
 
 
@@ -987,6 +1035,7 @@
                 {
                     LogHelper.Info($"鐗╂枡鍒颁綅鍥炴姤澶辫触=>msg:{result.imsg}");
                 }
+                ApiHelper.AddInfo("Mes", "鐗╂枡鍒颁綅鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.1