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