From 112c9bd20afed95d582b7eb227075ab8d10cdd12 Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期二, 24 六月 2025 17:29:28 +0800 Subject: [PATCH] 金坛优化 --- process/TaskProcess.cs | 97 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 90 insertions(+), 7 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index b601426..5006ef2 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -263,16 +263,25 @@ var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First(); if (rowdwa == null) { - LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰"); } else { - LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰"); var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC); + List<Location> endList; + if (!string.IsNullOrEmpty(workFlow.ZONECODE)) + { + endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } + else + { + endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); + } - var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); + var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); - LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾锛屾柊缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}锛屽綋鍓嶅贩閬撲笉鍙敤锛岄渶瑕佹敼閬擄紝鏂扮粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰"); if (end == null) { LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "鏀归亾瀹夊叏浜や簰"); @@ -441,6 +450,23 @@ LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}", "NDC"); + + if (mst.S_TYPE.Contains("鍑哄簱")) + { + var wcsTask = TaskHelper.GetTaskByWork("wcs", mst.S_OP_CODE); + if (wcsTask == null) { + LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}瀵瑰簲鐨勫嚭搴撲换鍔�, "NDC"); + return false; + } + + if (wcsTask.S_B_STATE=="鏈墽琛�) + { + LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽搴旂殑Wcs鍑哄簱浠诲姟鏈墽琛岋紝鏆備笉鎺ㄩ�", "NDC"); + return false; + } + } + + start = LocationHelper.GetAgvSiteZc(mst.S_START_LOC); end = LocationHelper.GetAgvSiteZc(mst.S_END_LOC); @@ -456,6 +482,7 @@ if (work==null) { LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}", "NDC"); + return false; } if (string.IsNullOrEmpty(work.CONNECTION)) @@ -792,6 +819,10 @@ } db.CommitTran(); LogHelper.Info("缁戝畾瑙g粦", "缁撴潫"); + result.errMsg = "瑙g粦瀹屾垚"; + result.errCode = 0; + result.success = true; + return result; } } catch (Exception e) @@ -800,6 +831,7 @@ LogHelper.Info("鐗╂枡缁戝畾瑙g粦寮傚父:" + e.Message, "鐗╂枡缁戝畾瑙g粦"); result.errMsg = "鐗╂枡缁戝畾瑙g粦寮傚父"; result.errCode = 1; + result.success = false; return result; } return result; @@ -1831,6 +1863,14 @@ //鍒涘缓浣滀笟 if (WMSHelper.CreateWmsWork(operation)) { + if (connection!="") + { + LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); + LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); + LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1); + } + + LogHelper.Info($"ZCSendTask鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂"); result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛"; result.errCode = 0; @@ -2143,13 +2183,56 @@ } - - + + internal static void inPri(WMSTask mst) + { + LogHelper.Info($"浠诲姟{mst.S_CODE}杩涘叆inpri", "鍏ュ簱浼樺厛绾�); + var inprilist = TaskHelper.GetInPri(); + var db = new SqlHelper<object>().GetInstance(); + + foreach (var item in inprilist) + { + + LogHelper.Info("鍏ュ簱浼樺厛绾ц褰曚俊鎭�+JsonConvert.SerializeObject(item), "鍏ュ簱浼樺厛绾�); + + if (item.Type=="0" && mst.S_TYPE.Contains("绌烘墭鍑�)) + { + if (mst.S_END_LOC.Contains(item.OutEndLoc)) + { + + var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "宸叉帹閫� && a.S_SCHEDULE_TYPE.Contains("agv") && !a.S_TYPE.Contains("绌烘墭") && (a.S_TYPE.Contains("鍏ュ簱")|| a.S_TYPE.Contains("鍥炲簱")) && a.S_START_LOC.Contains(item.InStartLoc)).First(); + + LogHelper.Info($"鏌ユ壘璧风偣{item.InStartLoc}婊℃墭鍏ュ簱浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task), "鍏ュ簱浼樺厛绾�); + if (task != null) + { + NDCApi.ChangeOrderPri(task.S_CODE, item.Pri); + } + + } + } + + + if (item.Type == "1" && !mst.S_TYPE.Contains("绌烘墭") && mst.S_TYPE.Contains("鍑哄簱")) + { + if (mst.S_END_LOC.Contains(item.OutEndLoc)) + { + var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "宸叉帹閫� && a.S_SCHEDULE_TYPE.Contains("agv") && a.S_TYPE.Contains("绌烘墭鍏ュ簱") && a.S_START_LOC.Contains(item.InStartLoc)).First(); + LogHelper.Info($"鏌ユ壘璧风偣{item.InStartLoc}绌烘墭鍏ュ簱浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task), "鍏ュ簱浼樺厛绾�); + if (task != null) + { + NDCApi.ChangeOrderPri(task.S_CODE, item.Pri); + } + } + } + + } + LogHelper.Info($"浠诲姟{mst.S_CODE}锛岀粨鏉焛npri", "鍏ュ簱浼樺厛绾�); + } - + public class signalInfo -- Gitblit v1.9.1