From 95c865c03a9cb128af51ac4b7d7f9d7149441efd Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期一, 07 七月 2025 17:30:35 +0800
Subject: [PATCH] agv效率开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs |   98 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 82 insertions(+), 16 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 528b307..fe3d3c1 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;
@@ -47,7 +48,7 @@
                 else
                 {
                     LogHelper.Info($"浠诲姟{mst.S_CODE} 鎵樼洏涓虹┖ ,鍙В閿佽揣浣�);
-                    LocationHelper.UnlockLoc(mst.S_START_LOC);
+                    LocationHelper.UnlockLocDeleteCntrs(mst.S_START_LOC);
                 }
             }
             else
@@ -84,13 +85,10 @@
             }
             else
             {
-
                 //璧风偣缁堢偣瑙i攣
                 LocationHelper.UnLockLoc(mst.S_START_LOC);
                 LocationHelper.UnLockLoc(mst.S_END_LOC);
-
             }
-
         }
 
         /// <summary>
@@ -99,7 +97,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
             {
@@ -187,7 +185,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");
@@ -290,7 +288,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");
                             }
@@ -344,7 +342,6 @@
             }
             catch (Exception ex)
             {
-
                 LogHelper.Info($"OperateReq Error ==銆媨ex.ToString()}");
             }
 
@@ -361,7 +358,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
@@ -386,6 +383,7 @@
                     LogHelper.Info($"瀹夊叏璇锋眰澶辫触=>msg:{result.msg}");
                     ApiHelper.AddErrorInfo("瀹夊叏浜や簰澶辫触", result.msg, "", tasknum);
                 }
+                ApiHelper.AddInfo(name, "瀹夊叏璇锋眰", date, JsonConvert.SerializeObject(result), "Post", url);
                 return permit;
             }
             catch (Exception)
@@ -436,6 +434,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)
@@ -461,7 +460,7 @@
             if (taskLimit != null)
             {
                 Console.WriteLine($"浠诲姟锛歿mst.S_CODE},璧风偣浠撳簱锛歿mst.S_START_WH}宸茬粡绂佺敤鎺ㄩ�");
-                return result;
+                return false;
             }
 
             var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO == mst.S_EQ_NO).ToList();
@@ -490,7 +489,7 @@
                 {
                     var mst2 = mstbyEqno.Where(a => a.S_TYPE == "鐢垫1").First();
                     if (mst2 == null)
-                    { 
+                    {
                         return result;
                     }
                     else
@@ -561,14 +560,22 @@
         internal static bool SendTask(WCSTask mst)
         {
 
-
+            var db = new SqlHelper<object>().GetInstance();
             var result = false;
             var start = "0"; var end = "0";
             var taskType = mst.S_TYPE.Trim();
+            var list = db.Queryable<Location>().ToList().Count;
+
             // if (mst.N_B_STATE == 0) {
             if (mst.N_SCHEDULE_TYPE == 1)
             {
                 LogHelper.Info($"浠诲姟鎺ㄩ�鏁版嵁锛歿JsonConvert.SerializeObject(mst)}");
+                if (string.IsNullOrEmpty(mst.S_START_LOC) || string.IsNullOrEmpty(mst.S_END_LOC))
+                {
+                    LogHelper.Info($"浠诲姟{mst.S_CODE},璧风偣缁堢偣鏈夌┖鍙傛暟锛屼笉鎺ㄩ�浠诲姟");
+                }
+
+
                 start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                 end = LocationHelper.GetAgvSite(mst.S_END_LOC);
                 //if (mst.N_START_LAYER > 1)
@@ -666,7 +673,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>
@@ -674,7 +696,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
@@ -704,6 +726,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.msg}");
                 }
+                ApiHelper.AddInfo(ly, "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -757,6 +780,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=");
                 }
+                ApiHelper.AddInfo("Wms", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.err_msg}");
                 }
+                ApiHelper.AddInfo("YCL", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -826,7 +851,24 @@
                 //鑾峰彇鏃堕棿鎴�                 var time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                 statusarrive.RequestId = "鏉弶AGV" + time;
-
+                string info = "";
+                switch (status)
+                {
+                    case 1:
+                        info = "agv宸叉帴鍙楀師鏂欏簱涓嬪彂鐨勪换鍔�;
+                        break;
+                    case 4:
+                        info = "agv宸插彇璐у畬鎴�;
+                        break;
+                    case 6:
+                        info = "agv宸插嵏璐у埌鎸囧畾浣嶇疆";
+                        break;
+                    case 2:
+                        info = "agv宸插畬鎴愰�鏂欎换鍔�;
+                        break;
+                }
+                string message = "1";
+                if (status == 7) { message = "agv浠诲姟宸插彇娑�; }
                 int flag = 0;
                 if (mst.S_NOTE == "绮夋枡")
                 {
@@ -841,6 +883,8 @@
                 statusArrive.Status = status.ToString();
                 statusArrive.Rfid = mst.S_CNTR_CODE;
                 statusArrive.Flag = flag;
+                statusArrive.Info = info;
+                statusArrive.Message = message;
 
                 //statusArrives.Add(statusArrive);
                 statusarrive.data = statusArrive;
@@ -861,6 +905,7 @@
                 {
                     LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.imsg}");
                 }
+                ApiHelper.AddInfo("Mes", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {
@@ -892,6 +937,7 @@
                 //绮夋枡鍥炲簱涓嶉渶瑕佸洖鎶�                 if (cntritem != null && mst.S_TYPE == "浣欐枡杩斿洖" && cntritem.S_ITEM_CODE.StartsWith("4X"))
                 {
+                    LogHelper.Info("绮夋枡鍥炲簱涓嶉渶瑕佸埌浣嶅彂閫佺墿鏂欏埌浣�);
                     return;
                 }
                 //鑾峰彇鏃堕棿鎴�@@ -911,8 +957,24 @@
 
                 if (cntritem != null)
                 {
+                    string curBagNum = null;
+                    string weightBag = null;
+                    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()
                     {
+
                         LotNumber = cntritem.S_BATCH_NO,
                         PartNumber = cntritem.S_ITEM_CODE,
                         Subpool = cntritem.Subpool,
@@ -923,7 +985,10 @@
                         Rfid = cntritem.S_CNTR_CODE,
                         Qty = cntritem.F_WEIGHT,
                         PartLevel = cntritem.LEV,
-                        WmsLot = cntritem.WmsLot
+                        WmsLot = cntritem.WmsLot,
+                        WeightBag = weightBag,
+                        CurBagNum = curBagNum,
+                        InitBagNum = initBagNum
                     });
 
 
@@ -949,6 +1014,7 @@
                 {
                     LogHelper.Info($"鐗╂枡鍒颁綅鍥炴姤澶辫触=>msg:{result.imsg}");
                 }
+                ApiHelper.AddInfo("Mes", "鐗╂枡鍒颁綅鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url);
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.1