From 3a56820d028e98ac3c4bd315aa76181d7d6720cd Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期一, 28 七月 2025 17:29:57 +0800 Subject: [PATCH] 金坛二合一出库修改 --- api/MoboxController.cs | 412 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 378 insertions(+), 34 deletions(-) diff --git a/api/MoboxController.cs b/api/MoboxController.cs index dc3b880..b9cbb86 100644 --- a/api/MoboxController.cs +++ b/api/MoboxController.cs @@ -5,6 +5,7 @@ using HH.WCS.ZhongCeJinTan.util; using HH.WCS.ZhongCeJinTan.wms; using Newtonsoft.Json; +using System; using System.Linq; using System.Threading.Tasks; using System.Web.Http; @@ -22,41 +23,386 @@ //[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) + { + if (wcsTask1.S_B_STATE != "鍙栨秷" && wcsTask1.S_B_STATE != "瀹屾垚") + { + TaskHelper.Fail(wcsTask1); + } + TaskProcess.OperateStatus(wcsTask1, 7); + } + } + 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"); + + LogHelper.Info($"鏌ヨ浠诲姟{wmsTask.S_CODE}锛屾槸鍚﹀彇璐у畬鎴愶細" + JsonConvert.SerializeObject(ac4), "Mobox鍙栨秷"); + 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_B_STATE == "鍙栨秷"|| transportTask.S_B_STATE == "瀹屾垚") + { + result.resultCode = 1; + result.resultMsg = $"{model.TaskNo},閫氱煡Wcs鍙栨秷浠诲姟澶辫触锛屼换鍔$姸鎬亄transportTask.S_B_STATE}"; + LogHelper.Info($"CancelWcsTask杩斿洖:" + JsonConvert.SerializeObject(result), "Mobox鍙栨秷"); + return result; + } + if (transportTask.S_B_STATE == "鏈墽琛�) + { + 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()); + + LogHelper.Info($"CancelWcsTask鍙栨秷{model.TaskNo}锛岃В閿�, "瑙i攣"); + 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; + } + + internal static Result cancelTask1(MoboxTaskBase model) + { + var result = new Result(); + LogHelper.Info("cancelTask1鍙栨秷浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(model), "鍙栨秷"); + if (model == null) + { + result.errMsg = "鍙傛暟涓簄ull"; + result.errCode = 1; + result.success = false; + return result; + } + + try + { + var task = TaskHelper.GetTaskByWorkNo(model.TaskNo, "agv"); + + var wcsTask = TaskHelper.GetTaskByWorkNo(model.TaskNo, "wcs"); + + if (task != null) + { + LogHelper.Info($"cancelTask1鍙栨秷agv浠诲姟{task.S_CODE}锛�, "鍙栨秷"); + if (task.S_B_STATE.Trim() == "鏈墽琛�) + { + //鏈墽琛岀洿鎺ヤ慨鏀圭姸鎬佷负鍙栨秷 + TaskHelper.opMesTask(task, 3); + TaskHelper.Fail(task); + TaskProcess.CacheBitCancelUpdate(task); + + if (task.S_TYPE.Contains("鍏ュ簱") || task.S_TYPE.Contains("鍥炲簱")) + { + ContainerHelper.delCntr(task.S_CNTR_CODE); + ContainerHelper.delCntrItem(task.S_CNTR_CODE); + + } + result.errCode = 0; + result.errMsg = "鍙栨秷鎴愬姛"; + result.success = true; + } + else if (task.S_B_STATE.Trim() != "鍙栨秷" && 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(); + + + if (qhflag != null) + { + LogHelper.Info($"璇ヤ换鍔task.S_CODE}宸茬粡鍙栬揣瀹屾垚", "鍙栨秷"); + result.errCode = 1; + result.errMsg = "浠诲姟宸茬粡鍙栬揣瀹屾垚锛屼笉鍏佽鍙栨秷"; + result.success = false; + return result; + } + if (task.S_TYPE.Contains("鍏ュ簱") || task.S_TYPE.Contains("鍥炲簱")) + { + ContainerHelper.delCntr(task.S_CNTR_CODE); + ContainerHelper.delCntrItem(task.S_CNTR_CODE); + ContainerHelper.delCntrLoc(task.S_CNTR_CODE); + } + + TaskHelper.opMesTask(task, 3); + //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv + TaskHelper.Fail(task); + + NDCApi.CancelOrder(task.S_CODE.Trim()); + TaskProcess.CacheBitCancelUpdate(task); + + result.errCode = 0; + result.errMsg = "鍙栨秷鎴愬姛"; + result.success = true; + } + else + { + result.errCode = 1; + result.errMsg = "浠诲姟宸茬粡缁撴潫"; + result.success = false; + } + } + else + { + result.errCode = 1; + result.errMsg = $"{model.TaskNo}浠诲姟涓嶅瓨鍦�; + result.success = false; + return result; + } + + if (wcsTask != null) + { + LogHelper.Info($"cancelTask1鍙栨秷Wcs浠诲姟{wcsTask.S_CODE}", "鍙栨秷"); + if (wcsTask.S_B_STATE.Trim() == "鏈墽琛�) + { + //鏈墽琛岀洿鎺ヤ慨鏀圭姸鎬佷负鍙栨秷 + if (wcsTask.S_TYPE.Contains("鍏ュ簱") || wcsTask.S_TYPE.Contains("鍥炲簱")) + { + ContainerHelper.delCntr(wcsTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(wcsTask.S_CNTR_CODE); + } + TaskHelper.Fail(wcsTask); + TaskProcess.OperateStatus(wcsTask, 7); + result.errCode = 0; + result.errMsg = "鍙栨秷鎴愬姛"; + result.success = true; + return result; + } + else if (wcsTask.S_B_STATE.Trim() != "鍙栨秷" && wcsTask.S_B_STATE.Trim() != "澶辫触" && wcsTask.S_B_STATE.Trim() != "瀹屾垚") + { + var db = new SqlHelper<object>().GetInstance(); + var qhflag = db.Queryable<WmsTaskAction>().Where(a => a.S_TASK_CODE == wcsTask.S_CODE && a.S_ACTION == "5").First(); + + LogHelper.Info($"璇ヤ换鍔wcsTask.S_CODE}鍔ㄤ綔淇℃伅" + JsonConvert.SerializeObject(qhflag), "鍙栨秷"); + if (qhflag != null) + { + LogHelper.Info($"璇ヤ换鍔wcsTask.S_CODE}宸茬粡鍙栬揣瀹屾垚", "鍙栨秷"); + result.errCode = 1; + result.errMsg = "浠诲姟宸茬粡鍙栬揣瀹屾垚锛屼笉鍏佽鍙栨秷"; + result.success = false; + return result; + } + + if (wcsTask.S_TYPE.Contains("鍏ュ簱") || wcsTask.S_TYPE.Contains("鍥炲簱")) + { + ContainerHelper.delCntr(wcsTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(wcsTask.S_CNTR_CODE); + ContainerHelper.delCntrLoc(wcsTask.S_CNTR_CODE); + } + WcsTask.WcsCancellTask(wcsTask); + TaskHelper.Fail(wcsTask); + TaskProcess.OperateStatus(wcsTask, 7); + result.errCode = 0; + result.errMsg = "鍙栨秷鎴愬姛"; + result.success = true; + } + } + } + catch (Exception ex) + { + + LogHelper.Info("cancelTask1鍙栨秷浠诲姟寮傚父锛� + ex.Message, "鍙栨秷"); + result.errCode = 1; + result.errMsg = "鍙栨秷浠诲姟寮傚父"; + return result; + } + return result; } @@ -85,12 +431,11 @@ WmsTaskAction ac4 = TaskHelper.GetActionRecord(task.S_CODE, "4"); if (ac4 != null) { - LogHelper.Info("CompleteTask agv浠诲姟宸茬粡鍙栬揣瀹屾垚,浠诲姟寮哄埗瀹屾垚澶勭悊", "寮哄埗瀹屾垚"); - TaskHelper.UpdateStatus(task, "鍗歌揣瀹屾垚"); - LocationHelper.UnLockLoc(task.S_END_LOC); + + //LocationHelper.UnLockLoc(task.S_END_LOC); TaskProcess.OperateStatus(task, 6); //濡傛灉鏄簩娈典换鍔″垯涓嬪彂绔嬪簱浠诲姟 @@ -104,7 +449,6 @@ } else { - LogHelper.Info("CompleteTask agv浠诲姟娌℃湁鍙栬揣瀹屾垚,浠诲姟鍙栨秷澶勭悊", "寮哄埗瀹屾垚"); var cancle = new cancleTaskParme(); cancle.task_no = task.S_CODE; @@ -115,9 +459,9 @@ if (task.S_SCHEDULE_TYPE.Contains("wcs")) { LogHelper.Info("CompleteTask wcs浠诲姟寮哄埗瀹屾垚澶勭悊", "寮哄埗瀹屾垚"); - LocationHelper.UnLockLoc(task.S_START_LOC); + //LocationHelper.UnLockLoc(task.S_START_LOC); TaskProcess.OperateStatus(task, 4); - LocationHelper.UnLockLoc(task.S_END_LOC); + //LocationHelper.UnLockLoc(task.S_END_LOC); TaskProcess.OperateStatus(task, 6); TaskHelper.End(task); LocationHelper.CreateUpAndDown(task); -- Gitblit v1.9.1