From f9ee14fbfe22a0a56350580838bb6e4b57f829dc Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期二, 29 七月 2025 17:28:13 +0800 Subject: [PATCH] 等待交互修改 --- dispatch/WcsTask.cs | 169 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 137 insertions(+), 32 deletions(-) diff --git a/dispatch/WcsTask.cs b/dispatch/WcsTask.cs index dd2fd43..566ac59 100644 --- a/dispatch/WcsTask.cs +++ b/dispatch/WcsTask.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Reflection; using System.Text; +using System.Threading; using System.Threading.Tasks; using System.Web.Services.Description; using Top.Api; @@ -53,18 +54,14 @@ isFu = "1"; } } - var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); - - - - if (workFlow != null) - { - if (workFlow.INOROUT.Contains("鍏ュ簱")) + + + if (mst.S_TYPE.Contains("鍏ュ簱")|| mst.S_TYPE.Contains("鍥炲簱")) { Type = "1"; } - if (workFlow.INOROUT.Contains("鍑哄簱")) + if (mst.S_TYPE.Contains("鍑哄簱")) { Type = "2"; var count = TaskHelper.GetConnectionTask(mst.S_END_LOC); @@ -75,7 +72,7 @@ } - } + if (mst.S_CNTR_CODE.Contains("KJZ")) { @@ -292,8 +289,6 @@ { //浣滀笟娴佺▼ WorkFlow workFlow =null; - - var item = new MesReturnItem(); @@ -589,13 +584,9 @@ default: break; } - - return false; } - - ///// <summary> @@ -645,10 +636,8 @@ //浠诲姟瀹屾垚 case "2": LogHelper.Info($"浠诲姟{taskNo}瀹屾垚", "Wcs浠诲姟鎵ц閫氱煡"); - LocationHelper.UnLockLoc(transportTask.S_START_LOC); - TaskProcess.OperateStatus(transportTask, 4); - LocationHelper.UnLockLoc(transportTask.S_END_LOC); TaskProcess.OperateStatus(transportTask, 6); + LocationHelper.UnLockLoc(transportTask.S_END_LOC); TaskHelper.End(transportTask); LocationHelper.CreateUpAndDown(transportTask); break; @@ -670,10 +659,20 @@ RfidChek.S_OLDTRAY_CODE = transportTask.S_CNTR_CODE; RfidChek.S_JBWBIT = transportTask.S_START_LOC; + var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); + if (agvTask==null) + { + LogHelper.Info($"RFID鏍¢獙澶辫触锛屾病鎵惧埌瀵瑰簲{transportTask.S_OP_CODE}鐨刟gv浠诲姟", "Wcs浠诲姟鎵ц閫氱煡"); + throw new Exception($"RFID鏍¢獙澶辫触,娌℃壘鍒板搴攞transportTask.S_OP_CODE}鐨刟gv浠诲姟"); + } + if (model.code=="0") { LogHelper.Info($"RFID鏍¢獙鐮佹垚鍔�, "Wcs浠诲姟鎵ц閫氱煡"); RfidChek.S_RESULT = "RFID鏍¢獙鎴愬姛"; + LogHelper.Info($"浠诲姟鍙�{agvTask.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟6涓�,4涓�", "瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(agvTask.S_CODE, 4, "0"); + NDCApi.ChangeOrderParam(agvTask.S_CODE, 6, "1"); } if (model.code == "1") { @@ -682,18 +681,9 @@ RfidChek.S_RESULT = "RFID鏍¢獙澶辫触"; if (WcsCancellTask(transportTask)) { - TaskHelper.Fail(transportTask); TaskProcess.OperateStatus(transportTask, 7); - var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); - - if (agvTask == null) - { - LogHelper.Info($"RFID鏍¢獙澶辫触锛屾病鎵惧埌瀵瑰簲{transportTask.S_OP_CODE}鐨刟gv浠诲姟", "Wcs浠诲姟鎵ц閫氱煡"); - throw new Exception($"RFID鏍¢獙澶辫触,娌℃壘鍒板搴攞transportTask.S_OP_CODE}鐨刟gv浠诲姟"); - } - WmsTaskAction ac7 = TaskHelper.GetActionRecord(agvTask.S_CODE, "7"); if (ac7!=null) { @@ -738,6 +728,16 @@ } newDb.CommitTran(); + var startSite = LocationHelper.GetAgvSiteZc(agvTask.S_END_LOC); + var endSite = LocationHelper.GetAgvSiteZc(end.S_CODE); + LogHelper.Info($"浠诲姟{agvTask.S_CODE}RFID鏍¢獙澶辫触锛屾敼鍙傛暟1涓簕startSite},鏀瑰弬鏁�涓簕endSite}锛屽弬鏁�涓�锛�涓�", "瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(agvTask.S_CODE, 1, startSite); + NDCApi.ChangeOrderParam(agvTask.S_CODE, 2, endSite); + NDCApi.ChangeOrderParam(agvTask.S_CODE, 4, "0"); + Thread.Sleep(1000); + NDCApi.ChangeOrderParam(agvTask.S_CODE, 6, "2"); + + var agvTask1 = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); TaskHelper.opMesTask(agvTask1, 3); ContainerHelper.delCntr(transportTask.S_CNTR_CODE); @@ -749,8 +749,108 @@ } } - if (model.code == "2") { - + if (model.code == "2") { + + TaskHelper.Fail(transportTask); + TaskProcess.OperateStatus(transportTask, 7); + + if (!WcsCancellTask(transportTask)) { + LogHelper.Info($"澶栧舰妫�祴澶辫触锛岄�鐭cs鍙栨秷浠诲姟澶辫触", "Wcs浠诲姟鎵ц閫氱煡"); + throw new Exception($"澶栧舰妫�祴澶辫触锛岄�鐭cs鍙栨秷浠诲姟澶辫触"); + } + + var work = TaskHelper.GetWmsWork(transportTask.S_OP_CODE); + if (work==null) + { + LogHelper.Info($"鏈煡璇㈠埌{transportTask.S_OP_CODE}瀵瑰簲鐨勪綔涓�, "Wcs浠诲姟鎵ц閫氱煡"); + throw new Exception("鏈煡璇㈠埌瀵瑰簲鐨勪綔涓�); + } + + var workFlow = TaskHelper.selectWorkFlowByType(work.N_TYPE.ToString(), work.TOOLSTYPE); + + if (workFlow == null) + { + LogHelper.Info($"澶栧舰妫�祴澶辫触锛屾病鎵惧埌瀵瑰簲浣滀笟娴佺▼", "Wcs浠诲姟鎵ц閫氱煡"); + throw new Exception($"澶栧舰妫�祴澶辫触,娌℃壘鍒板搴斾綔涓氭祦绋�); + } + //鏌ユ壘缁堢偣 + var endList = LocationHelper.GetAllLocList1(workFlow.ERRORAREA); + + //var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ERRORAREA,workFlow.ROADWAY); + var end = LocationHelper.FindEndcolByLoc(endList, workFlow.ERRORAREA); + LogHelper.Info($"澶栧舰妫�祴澶辫触澶辫触涓嬪彂寮傚父缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Wcs浠诲姟鎵ц閫氱煡"); + + + if (end == null) + { + LogHelper.Info($"澶栧舰妫�祴澶辫触澶辫触涓嬪彂浠诲姟澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ERRORAREA},娌℃壘鍒扮粓鐐�, "Wcs浠诲姟鎵ц閫氱煡"); + throw new Exception($"澶栧舰妫�祴澶辫触澶辫触缁堢偣搴撳尯{workFlow.ERRORAREA},娌℃壘鍒扮粓鐐�); + } + + LocationHelper.LockLoc(end.S_CODE, "鍏ュ簱閿�, 1); + + + var connectionLoc = LocationHelper.GetLoc(work.CONNECTION.Replace("R", "C")); + + if (connectionLoc==null) + { + LogHelper.Info($"鏈煡璇㈠埌{work.CONNECTION.Replace("R", "C")}瀵瑰簲鐨勬帴椹充綅", "Wcs浠诲姟鎵ц閫氱煡"); + throw new Exception("鏈煡璇㈠埌瀵瑰簲鐨勫嚭搴撴帴椹充綅"); + } + + var connection = connectionLoc.S_CODE; + + var operation = new WmsWork + { + // 浣滀笟鍙�+ S_CODE = TaskHelper.GenerateTaskNo(), + // 浣滀笟绫诲瀷 + N_TYPE = 99, + // 浣滀笟绫诲瀷 + S_TYPE = work.S_TYPE.Replace("鍏�,"鍑�), + // 璧风偣璐т綅 + S_START_LOC = work.CONNECTION, + // 璧风偣搴撳尯缂栫爜 + S_START_AREA = work.CONNECTION_AREA, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = work.CONNECTION_AREA, + //鎺ラ┏浣�+ CONNECTION = connection, + //鎺ラ┏搴撳尯鍚嶇О + CONNECTION_AREA = connectionLoc.S_AREA_Name, + // 缁堢偣璐т綅 + S_END_LOC = end.S_CODE, + // 缁堢偣搴撳尯缂栫爜 + S_END_AREA = end.S_AREA_CODE, + //缁堢偣搴撳尯鍚嶇О + S_END_AREA_NAME = end.S_AREA_Name, + // 瀹瑰櫒缂栫爜 + S_CNTR_CODE = work.S_CNTR_CODE, + // 浣滀笟瀹氫箟鍚嶇О + S_OP_DEF_NAME = workFlow.FLOWNAME, + //浼樺厛绾�+ N_PRIORITY = work.N_PRIORITY, + //宸ヨ绫诲瀷 + TOOLSTYPE = work.TOOLSTYPE + }; + + //鍒涘缓浣滀笟 + 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($"寮傚父鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂"); + } + else + { + LogHelper.Info($"寮傚父鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触", "Mes浠诲姟涓嬪彂"); + throw new Exception($"寮傚父鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触"); + } } @@ -766,7 +866,7 @@ //鍙栬揣瀹屾垚 case "5": TaskHelper.UpdateStatus(transportTask, "鍙栬揣瀹屾垚"); - LocationHelper.UnBindingLoc(transportTask.S_START_LOC, transportTask.S_CNTR_CODE.Split(',').ToList()); + TaskProcess.OperateStatus(transportTask, 4); break; //7鍙栨秷 @@ -782,6 +882,8 @@ { TaskHelper.Fail(agvTask1); NDCApi.CancelOrder(agvTask1.S_CODE.Trim()); + + LogHelper.Info($"Wcs浠诲姟鎵ц閫氱煡锛屼换鍔″彿{transportTask.S_CODE}鍙栨秷,瑙i攣", "瑙i攣"); TaskProcess.CacheBitCancelUpdate(agvTask1); } } @@ -1254,8 +1356,9 @@ { LogHelper.Info($"浠诲姟鍙穥task.S_CODE},鍙栨秷浠诲姟鎴愬姛锛岃捣鐐箋task.S_START_LOC}璁句负寮傚父", "鍙栬揣鏃犺揣"); TaskHelper.Fail(task); + TaskProcess.OperateStatus(task, 7); - LocationHelper.updateLocLock(task.S_START_LOC, 3, "鍏朵粬閿�); + LocationHelper.updateLocLock(task.S_START_LOC, 3, "鍏跺畠閿�); var agvTask = TaskHelper.GetTaskByWorkNo(task.S_OP_CODE, "agv"); if (agvTask != null) { @@ -1264,6 +1367,8 @@ NDCApi.CancelOrder(agvTask.S_CODE.Trim()); } TaskHelper.Fail(agvTask); + + LogHelper.Info($"鍙栬揣鏃犺揣锛屼换鍔″彿{task.S_CODE}鍙栨秷,瑙i攣", "瑙i攣"); TaskProcess.CacheBitCancelUpdate(agvTask); } } @@ -1329,7 +1434,7 @@ { newDb.BeginTran(); endLoc.N_LOCK_STATE = 3; - endLoc.S_LOCK_STATE = "鍏朵粬閿�; + endLoc.S_LOCK_STATE = "鍏跺畠閿�; newDb.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); task.S_END_LOC = end.S_CODE; newDb.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); -- Gitblit v1.9.1