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 | 109 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 98 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 010746b..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) { @@ -50,15 +56,38 @@ 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); @@ -83,11 +112,20 @@ 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) { //鏈変换鍔″彿璇锋眰 @@ -103,6 +141,10 @@ 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, "寮�鍗歌揣"); @@ -110,10 +152,60 @@ 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); @@ -121,7 +213,6 @@ break; } WCSHelper.AddActionRecord(model.TaskNo, model.Status, "", "", "wcs"); - } } @@ -141,7 +232,7 @@ result.Msg = $"Error:ex"; LogHelper.Info($"EquipmentInfo:{result.Msg}"); return result; - + } } @@ -157,16 +248,12 @@ { list.ForEach(task => { - if (!TaskProcess.Intercept(task)) { //浣跨敤鑷畾涔変换鍔℃帹閫� TaskProcess.SendTask(task); } - }); - - } } -- Gitblit v1.9.1