From 83a7b2db0150d30576461055707367e8189ebc6e Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期三, 25 六月 2025 17:29:08 +0800 Subject: [PATCH] 交互修改 --- process/TaskProcess.cs | 128 ++++++++++++++++++++++++++++++++++++++---- 1 files changed, 114 insertions(+), 14 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 251e35e..86cec16 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -141,7 +141,17 @@ else if (state == 1004) { LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}", "瀹夊叏浜や簰"); - var wcsCode = mst.S_CODE.Replace(@"_1", "_2"); + var wcsCode = ""; + + if (mst.S_TYPE.Contains("鍏ュ簱")|| mst.S_TYPE.Contains("鍥炲簱")) + { + wcsCode = mst.S_CODE.Replace(@"_1", "_2"); + } + + if (mst.S_TYPE.Contains("鍑哄簱")) + { + wcsCode = mst.S_CODE.Replace(@"_2", "_1"); + } LogHelper.Info($"绛夊緟浜や簰锛屾煡璇㈡牎楠屼换鍔″彿={wcsCode}", "瀹夊叏浜や簰"); //绛夊緟rfid鏍¢獙 @@ -152,7 +162,16 @@ { if (rfidFlag.S_RESULT.Contains("鎴愬姛")) { - LogHelper.Info($"浠诲姟鍙�{mst.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟", "瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟鍙�{mst.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟6涓�", "瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1"); + } + else { + var startSite = LocationHelper.GetAgvSiteZc(mst.S_START_LOC); + var endSite = LocationHelper.GetAgvSiteZc(mst.S_END_LOC); + LogHelper.Info($"浠诲姟{mst.S_CODE}RFID鏍¢獙澶辫触锛屾敼鍙傛暟1涓簕startSite},鏀瑰弬鏁�涓簕endSite}锛屽弬鏁�涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(mst.S_CODE, 1, startSite); + NDCApi.ChangeOrderParam(mst.S_CODE, 2, endSite); + NDCApi.ChangeOrderParam(mst.S_CODE, 4, "0"); NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1"); } } @@ -246,9 +265,9 @@ db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); db.CommitTran(); var site = LocationHelper.GetAgvSiteZc(end.S_CODE); - LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(task.S_CODE, 2, site); - NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); + NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); return; } @@ -263,16 +282,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},娌℃壘鍒扮粓鐐�, "鏀归亾瀹夊叏浜や簰"); @@ -355,9 +383,9 @@ db.CommitTran(); var site = LocationHelper.GetAgvSiteZc(loc.S_CODE); - LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(task.S_CODE, 2, site); - NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); + NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); //} else if (workFlow.FLOWNAME.Contains("鍑哄簱")) { @@ -481,7 +509,13 @@ ndcParme.Add(new param() { name = "DATA", value = "0" }); } else { - ndcParme.Add(new param() { name = "DATA", value = "768" }); + if (work.S_TYPE.Contains("鍏ュ簱") || work.S_TYPE.Contains("鍥炲簱")) + { + ndcParme.Add(new param() { name = "DATA", value = "768" }); + } + else { + ndcParme.Add(new param() { name = "DATA", value = "0" }); + } } @@ -810,6 +844,10 @@ } db.CommitTran(); LogHelper.Info("缁戝畾瑙g粦", "缁撴潫"); + result.errMsg = "瑙g粦瀹屾垚"; + result.errCode = 0; + result.success = true; + return result; } } catch (Exception e) @@ -818,6 +856,7 @@ LogHelper.Info("鐗╂枡缁戝畾瑙g粦寮傚父:" + e.Message, "鐗╂枡缁戝畾瑙g粦"); result.errMsg = "鐗╂枡缁戝畾瑙g粦寮傚父"; result.errCode = 1; + result.success = false; return result; } return result; @@ -1371,6 +1410,8 @@ { //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅 var balanceConnectionList = LocationHelper.GetBalanceConnectionList(usableConnectionList.available); + + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍧囪 鎺ラ┏浣�+JsonConvert.SerializeObject(balanceConnectionList), "Mes浠诲姟涓嬪彂"); foreach (var item in balanceConnectionList) { if (item.loc.N_CURRENT_NUM<2) @@ -1568,6 +1609,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, "鍏朵粬閿�, 3); + } + + LogHelper.Info($"ZCSendTask鍏ュ簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂"); result.errMsg = "鍏ュ簱浣滀笟鍒涘缓鎴愬姛"; result.errCode = 0; @@ -1849,6 +1898,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; @@ -2161,13 +2218,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