From 17e3ef45fe0a6b6f8a147b50740834ac734f9317 Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期二, 15 七月 2025 17:30:13 +0800 Subject: [PATCH] 1111 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 163 insertions(+), 11 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs index bfc9635..9cb6594 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs @@ -1,5 +1,6 @@ 锘縰sing HH.WCS.DaYang.dispatch; using HH.WCS.DaYang.process; +using HH.WCS.DaYang.util; using HH.WCS.DaYang.wms; using System; using System.Collections.Generic; @@ -22,6 +23,11 @@ var TN_Task = WCSHelper.GetTask(model.No); if (TN_Task != null) { + if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2)) + { + LogHelper.Info($"浠诲姟{TN_Task.S_CODE}宸茬粡瀹屾垚锛屼笉鎺ュ彈鐘舵�澶勭悊"); + return; + } if (model.State <= 7) { @@ -42,7 +48,7 @@ //{ // WMSHelper.DeletetWHInventory(TN_Task); //} - // WMSHelper.DeleteAZLInventory(TN_Task); + // WMSHelper.DeleteAZLInventory(TN_Task); break; case 5: WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣"); @@ -50,22 +56,45 @@ case 6: WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚"); TaskProcess.OperateStatus(TN_Task, 6); - //if (TN_Task.S_TYPE == "鍏ュ簱") - //{ - // WMSHelper.AddWHInventory(TN_Task); - //} - // WMSHelper.AddAZLInventory(TN_Task); + if (TN_Task.S_TYPE == "鐗╂枡鍏ュ簱") + { + //鍏ュ簱瀹屾垚 淇敼鍏ュ簱鏃堕棿 + var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE); + if (cntrItme != null) + { + ContainerHelper.UpdateInTime(cntrItme); + } + else + { + LogHelper.Info($"浠诲姟{TN_Task.S_CODE}锛屽嵏璐у畬鎴愶紝骞舵棤鎵樼洏鐗╂枡缁戝畾鍏崇郴"); + } + } break; #endregion case 2: WCSHelper.End(TN_Task); + //鏌ヨ褰撳墠浠诲姟鏄惁瀛樺湪浣滀笟锛屽鏋滄湁浣滀笟鍒欏畬鎴愪綔涓�+ if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE)) + { + var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 1, 2 }); + if (NowmsTask == null) + { + var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); + if (WmsTask == null) + { + WmsTask.N_B_STATE = 3; + WMSHelper.UpdateTaskState(WmsTask); + } + + } + } break; case 7: TaskProcess.OperateStatus(TN_Task, 7); WCSHelper.Fail(TN_Task); break; } - WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData); + WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData, "agv"); //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus } else @@ -80,6 +109,133 @@ } } + public static Result<Empty> NotifyTaskStatus(NotifyTaskStatusModel model) + { + Result<Empty> result = new Result<Empty>() { Code = 1, Msg = "鍙嶉鎴愬姛" }; + + try + { + var TN_Task = WCSHelper.GetTask(model.TaskNo); + if (TN_Task != null) + { + if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2)) + { + + result.Code = 2; + result.Msg = $"浠诲姟{TN_Task.S_CODE}宸茬粡瀹屾垚锛屼笉鎺ュ彈鐘舵�澶勭悊"; + LogHelper.Info($"NotifyTaskStatus:{result.Msg}"); + return result; + } + if (model.Status <= 7) + { + //鏈変换鍔″彿璇锋眰 + switch (model.Status) + { + case 1: + WCSHelper.Begin(TN_Task); + break; + #region MyRegion + case 3: + WCSHelper.UpdateStatus(TN_Task, "寮�鍙栬揣"); + break; + case 4: + WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚"); + TaskProcess.OperateStatus(TN_Task, 4); + if (TN_Task.S_START_AREA== "YCLLKQ") + { + WMSHelper.OnShelves(TN_Task,2); + } + break; + case 5: + WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣"); + break; + case 6: + WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚"); + TaskProcess.OperateStatus(TN_Task, 6); + + if (TN_Task.S_TYPE== "鍙犵洏鏈哄懠鍙┖鎵�) + { + var db = new SqlHelper<object>().GetInstance(); + + var containern = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == TN_Task.S_CNTR_CODE).First(); + if (containern != null) + { + containern.S_SOURCE = "1"; + db.Updateable<Container>(containern).UpdateColumns(a => new { a.S_SOURCE }).ExecuteCommand(); + } + } + if (TN_Task.S_END_AREA == "YCLLKQ") + { + //涓婁笅鏋惰褰�+ WMSHelper.OnShelves(TN_Task, 1); + //鍏ュ簱瀹屾垚 淇敼鍏ュ簱鏃堕棿 + var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE); + if (cntrItme != null) + { + ContainerHelper.UpdateInTime(cntrItme); + } + else + { + LogHelper.Info($"浠诲姟{TN_Task.S_CODE}锛屽嵏璐у畬鎴愶紝骞舵棤鎵樼洏鐗╂枡缁戝畾鍏崇郴"); + } + } + break; + #endregion + case 2: + WCSHelper.End(TN_Task); + //鏌ヨ褰撳墠浠诲姟鏄惁瀛樺湪浣滀笟锛屽鏋滄湁浣滀笟鍒欏畬鎴愪綔涓�+ if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE)) + { + var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 0, 1, 2 }); + if (NowmsTask == null) + { + var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); + if (WmsTask != null) + { + WmsTask.N_B_STATE = 3; + WMSHelper.UpdateTaskState(WmsTask); + } + + } + } + if (TN_Task.S_TYPE == "鎸囧畾鍑哄簱") + { + var db = new SqlHelper<object>().GetInstance(); + LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); + var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).First(); + if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).ExecuteCommand(); } + + } + break; + case 7: + TaskProcess.OperateStatus(TN_Task, 7); + WCSHelper.Fail(TN_Task); + break; + } + WCSHelper.AddActionRecord(model.TaskNo, model.Status, "", "", "wcs"); + } + + } + else + { + result.Code = -1; + result.Msg = $"鏍规嵁浠诲姟鍙�{model.TaskNo}鏈幏鍙栧埌浠诲姟"; + LogHelper.Info($"EquipmentInfo:{result.Msg}"); + return result; + } + + return result; + } + catch (Exception ex) + { + result.Code = -1; + result.Msg = $"Error:ex"; + LogHelper.Info($"EquipmentInfo:{result.Msg}"); + return result; + + } + + } /// <summary> /// 浠诲姟鍒嗗彂锛屾牴鎹皟搴︾被鍨嬪彂缁欎笉鍚岀殑璋冨害绯荤粺 /// </summary> @@ -92,16 +248,12 @@ { list.ForEach(task => { - if (!TaskProcess.Intercept(task)) { //浣跨敤鑷畾涔変换鍔℃帹閫� TaskProcess.SendTask(task); } - }); - - } } -- Gitblit v1.9.1