From 60cbd8c8e6472c129c440fe37040d1dc3e99f877 Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期四, 24 七月 2025 17:28:34 +0800 Subject: [PATCH] 新增外形检测失败退库 --- api/MoboxController.cs | 247 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 219 insertions(+), 28 deletions(-) diff --git a/api/MoboxController.cs b/api/MoboxController.cs index 82c18fe..227a20b 100644 --- a/api/MoboxController.cs +++ b/api/MoboxController.cs @@ -23,41 +23,232 @@ //[Route("CancelTask")] public SimpleResult CancelTask(MoboxTaskBase model) { var result=new SimpleResult(); - var task=TaskHelper.GetTask(model.TaskNo); - if (task != null) { - if (task.S_B_STATE.Trim() == "鏈墽琛�) { - //鏈墽琛岀洿鎺ヤ慨鏀圭姸鎬佷负鍙栨秷 - - LogHelper.Info($"mobox鍙栨秷agv浠诲姟{task.S_CODE}锛�, "鍙栨秷"); - TaskHelper.Fail(task); - TaskProcess.CacheBitCancelUpdate(task); - TaskHelper.opMesTask(task, 3); - } - else if(task.S_B_STATE.Trim() != "鍙栨秷"&& task.S_B_STATE.Trim() != "瀹屾垚") { - var db = new SqlHelper<object>().GetInstance(); - var qhflag = db.Queryable<WmsTaskAction>().Where(a => a.S_TASK_CODE == task.S_CODE && a.S_ACTION == "4").First(); + LogHelper.Info($"CancelTask鍙栨秷:鍙傛暟"+JsonConvert.SerializeObject(model), "Mobox鍙栨秷"); + if (model==null) + { + result.resultCode = 1; + result.resultMsg = "鍙傛暟涓簄ull"; + LogHelper.Info($"CancelTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + if (string.IsNullOrEmpty(model.TaskNo)) + { + result.resultCode = 1; + result.resultMsg = "浠诲姟鍙蜂负绌�; + LogHelper.Info($"CancelTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + - - if (qhflag != null) - { - LogHelper.Info($"mobox鍙栨秷锛岃浠诲姟{task.S_CODE}宸茬粡鍙栬揣瀹屾垚,锛屼笉鍏佽鍙栨秷", "鍙栨秷"); - return result; - } - TaskHelper.opMesTask(task, 3); - //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv - TaskHelper.Fail(task); - NDCApi.CancelOrder(task.S_CODE.Trim()); - TaskProcess.CacheBitCancelUpdate(task); - } - else { + var wmsTask = TaskHelper.GetTaskByNoType(model.TaskNo, "agv"); + if (wmsTask != null) { + if (wmsTask.S_TYPE == "鍙栨秷" || wmsTask.S_TYPE == "瀹屾垚") + { result.resultCode = 1; - result.resultMsg = "浠诲姟宸茬粨鏉�; + result.resultMsg = $"{model.TaskNo},鍙栨秷agv浠诲姟澶辫触锛屼换鍔$姸鎬亄wmsTask.S_TYPE}"; + LogHelper.Info($"CancelTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; } + + var wcsTask1 = TaskHelper.GetTaskByWorkNo(wmsTask.S_OP_CODE, "wcs"); + + WmsTaskAction ac6 = TaskHelper.GetActionRecord(wmsTask.S_CODE, "6"); + TaskProcess.OperateStatus(wmsTask, 7); + if (wmsTask.S_TYPE != "鏈墽琛�) { + NDCApi.CancelOrder(wmsTask.S_CODE.Trim()); + + LogHelper.Info($"浠诲姟{wmsTask.S_CODE}锛屽彇娑堥�鐭ュ皬杞�, "Mobox鍙栨秷"); + } + + + if (ac6 == null) + { + TaskHelper.Fail(wmsTask); + //鍏ュ簱鎴栬�鍥炲簱浠诲姟鍙栨秷鍒犻櫎鎵樼洏鐗╂枡 + if (wmsTask.S_TYPE.Contains("鍏ュ簱") || wmsTask.S_TYPE.Contains("鍥炲簱") || LocationHelper.GetErroArea(wmsTask.S_END_AREA)) + { + ContainerHelper.delCntr(wmsTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(wmsTask.S_CNTR_CODE); + ContainerHelper.delCntrLoc(wmsTask.S_CNTR_CODE); + } + if (!LocationHelper.GetErroArea(wmsTask.S_END_AREA)) + { + TaskHelper.opMesTask(wmsTask, 3); + } + + if (wcsTask1 != null) + { + TaskProcess.OperateStatus(wcsTask1, 7); + TaskHelper.Fail(wcsTask1); + } + } + else + { + //鏀跺埌6寮哄埗瀹屾垚 + TaskHelper.End(wmsTask); + } + + if (wcsTask1 != null) + { + if (wmsTask.S_TYPE.Contains("鍑哄簱")) + { + var ac1101 = TaskHelper.GetWcsSafety(wmsTask.S_CODE, "1101"); + var ac1102 = TaskHelper.GetWcsSafety(wmsTask.S_CODE, "1102"); + if ((ac1101 != null)) + { + if (ac1102 == null) + { + //agv鎵ц閫氱煡 wcs鍙栨秷 + WcsTask.WcsCallback(wmsTask, 7, wmsTask.S_EQ_NO.ToString()); + } + } + } + else + { + var ac1103 = TaskHelper.GetWcsSafety(wmsTask.S_CODE, "1103"); + var ac1104 = TaskHelper.GetWcsSafety(wmsTask.S_CODE, "1104"); + + if ((ac1103 != null)) + { + if (ac1104 == null) + { + //agv鎵ц閫氱煡 wcs鍙栨秷 + WcsTask.WcsCallback(wmsTask, 7, wmsTask.S_EQ_NO.ToString()); + } + } + } + } + + + if (wmsTask.S_TYPE.Contains("鍑哄簱")) + { + //鍑哄簱鍙栨秷鍒ゆ柇鎺ラ┏浣嶆槸鍚︽湁璐э紝鏈夎揣闇�瑙g粦 + var wmsWork = TaskHelper.GetWmsWork(wmsTask.S_OP_CODE); + if (wmsWork != null) + { + if (!string.IsNullOrEmpty(wmsWork.CONNECTION)) + { + var agvTask = LocationHelper.GetConnectionTask(wmsWork.CONNECTION, "agv", wmsTask.T_CREATE); + LogHelper.Info($"鍙栨秷浠诲姟{wmsTask.S_CODE}锛屽綋鍓嶆帴椹充綅{wmsWork.CONNECTION}锛岀涓�釜agv浠诲姟淇℃伅" + JsonConvert.SerializeObject(agvTask), "Mobox鍙栨秷"); + if (agvTask != null) + { + WmsTaskAction qh = TaskHelper.GetActionRecord(agvTask.S_CODE, "4"); + //宸茬粡鍙栬揣瀹屾垚 + if (qh != null) + { + if (WcsTask.WcsCvstate(wmsTask)) + { + LogHelper.Info($"Wcs绔嬪簱鎺ラ┏浣嶆湁璐э紝瑙g粦璐т綅:{wmsTask.S_END_LOC}", "Mobox鍙栨秷"); + ContainerHelper.delCntr(wmsTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(wmsTask.S_CNTR_CODE); + } + } + } + else { + WmsTaskAction ac4 = TaskHelper.GetActionRecord(wmsTask.S_CODE, "4"); + if (ac4 != null) + { + ContainerHelper.delCntr(wmsTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(wmsTask.S_CNTR_CODE); + ContainerHelper.delCntrLoc(wmsTask.S_CNTR_CODE); + } + } + } + } + } + + result.resultCode = 0; + result.resultMsg = $"{model.TaskNo},agv浠诲姟鍙栨秷鎴愬姛"; } else { result.resultCode = 1; - result.resultMsg = "浠诲姟涓嶅瓨鍦�; + result.resultMsg = $"{model.TaskNo},agv浠诲姟涓嶅瓨鍦�; } + + LogHelper.Info($"CancelTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + + [HttpPost] + //[Route("CancelWcsTask")] + public SimpleResult CancelWcsTask(MoboxTaskBase model) + { + var result = new SimpleResult(); + + LogHelper.Info($"CancelWcsTask鍙栨秷:鍙傛暟" + JsonConvert.SerializeObject(model), "Mobox鍙栨秷"); + if (model == null) + { + result.resultCode = 1; + result.resultMsg = "鍙傛暟涓簄ull"; + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + if (string.IsNullOrEmpty(model.TaskNo)) + { + result.resultCode = 1; + result.resultMsg = "浠诲姟鍙蜂负绌�; + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + + var transportTask = TaskHelper.GetTaskByNoType(model.TaskNo,"wcs"); + if (transportTask != null) + { + if (transportTask.S_TYPE == "鍙栨秷"|| transportTask.S_TYPE == "瀹屾垚") + { + result.resultCode = 1; + result.resultMsg = $"{model.TaskNo},閫氱煡Wcs鍙栨秷浠诲姟澶辫触锛屼换鍔$姸鎬亄transportTask.S_TYPE}"; + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + if (transportTask.S_TYPE == "鏈墽琛�) + { + TaskHelper.Fail(transportTask); + TaskProcess.OperateStatus(transportTask, 7); + result.resultCode = 0; + result.resultMsg = $"{model.TaskNo},wcs浠诲姟鍙栨秷鎴愬姛"; + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + + if (WcsTask.WcsCancellTask(transportTask)) + { + TaskHelper.Fail(transportTask); + TaskProcess.OperateStatus(transportTask, 7); + + if (transportTask.S_TYPE.Contains("鍑哄簱")) + { + var agvTask1 = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); + if (agvTask1 != null) + { + TaskHelper.Fail(agvTask1); + NDCApi.CancelOrder(agvTask1.S_CODE.Trim()); + TaskProcess.CacheBitCancelUpdate(agvTask1); + } + } + else + { + ContainerHelper.delCntr(transportTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE); + } + + result.resultCode = 0; + result.resultMsg = $"{model.TaskNo},wcs浠诲姟鍙栨秷鎴愬姛"; + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + else { + LogHelper.Info($"閫氱煡Wcs鍙栨秷浠诲姟澶辫触", "Wcs浠诲姟鎵ц閫氱煡"); + result.resultCode = 1; + result.resultMsg = $"{model.TaskNo},閫氱煡Wcs鍙栨秷浠诲姟澶辫触"; + } + } + else + { + result.resultCode = 1; + result.resultMsg = $"{model.TaskNo},wcs浠诲姟涓嶅瓨鍦�; + } + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); return result; } -- Gitblit v1.9.1