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 | 91 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 76 insertions(+), 15 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 2be6a68..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 @@ -96,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 { @@ -184,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"); @@ -287,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"); } @@ -341,7 +342,6 @@ } catch (Exception ex) { - LogHelper.Info($"OperateReq Error ==銆媨ex.ToString()}"); } @@ -358,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 @@ -383,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) @@ -433,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) @@ -487,7 +489,7 @@ { var mst2 = mstbyEqno.Where(a => a.S_TYPE == "鐢垫1").First(); if (mst2 == null) - { + { return result; } else @@ -563,17 +565,17 @@ var start = "0"; var end = "0"; var taskType = mst.S_TYPE.Trim(); var list = db.Queryable<Location>().ToList().Count; - //LogHelper.Info($"鏌ヨ鍏ㄩ儴璐т綅鏁版嵁{list}"); + // 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)) + 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) @@ -671,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> @@ -679,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 @@ -709,6 +726,7 @@ { LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.msg}"); } + ApiHelper.AddInfo(ly, "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url); } catch (Exception ex) { @@ -762,6 +780,7 @@ { LogHelper.Info($"浠诲姟鍥炴姤澶辫触="); } + ApiHelper.AddInfo("Wms", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url); } catch (Exception ex) { @@ -807,6 +826,7 @@ { LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.err_msg}"); } + ApiHelper.AddInfo("YCL", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url); } catch (Exception ex) { @@ -831,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 == "绮夋枡") { @@ -846,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; @@ -866,6 +905,7 @@ { LogHelper.Info($"浠诲姟鍥炴姤澶辫触=>msg:{result.imsg}"); } + ApiHelper.AddInfo("Mes", "浠诲姟鐘舵�鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url); } catch (Exception ex) { @@ -897,6 +937,7 @@ //绮夋枡鍥炲簱涓嶉渶瑕佸洖鎶� if (cntritem != null && mst.S_TYPE == "浣欐枡杩斿洖" && cntritem.S_ITEM_CODE.StartsWith("4X")) { + LogHelper.Info("绮夋枡鍥炲簱涓嶉渶瑕佸埌浣嶅彂閫佺墿鏂欏埌浣�); return; } //鑾峰彇鏃堕棿鎴�@@ -916,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, @@ -928,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 }); @@ -954,6 +1014,7 @@ { LogHelper.Info($"鐗╂枡鍒颁綅鍥炴姤澶辫触=>msg:{result.imsg}"); } + ApiHelper.AddInfo("Mes", "鐗╂枡鍒颁綅鍥炴姤", date, JsonConvert.SerializeObject(result), "Post", url); } catch (Exception ex) { -- Gitblit v1.9.1