From e638b99adf48183d173dec500c9cf29020947354 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期五, 06 六月 2025 17:23:26 +0800 Subject: [PATCH] 大洋原材料开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs | 123 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 109 insertions(+), 14 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs index 440caf0..41b25d5 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs @@ -1,4 +1,5 @@ -锘縰sing HH.WCS.DaYang.wms; +锘縰sing HH.WCS.DaYang.util; +using HH.WCS.DaYang.wms; using System; using System.Collections.Generic; using System.Linq; @@ -6,12 +7,15 @@ using System.Text; using System.Threading.Tasks; -namespace HH.WCS.DaYang.core { - internal class WMSCore { +namespace HH.WCS.DaYang.core +{ + internal class WMSCore + { /// <summary> /// 閬嶅巻瀹氱増鐨勫彂璐у崟锛岀敓浜у垎鎷e崟涓昏〃鍜屽瓙琛紙涔熷彲浠ユ墜鍔ㄨ皟鎺ュ彛瑙﹀彂锛� /// </summary> - internal static void CheckShippingOrder() { + internal static void CheckShippingOrder() + { //1.0銆佽幏鍙栧凡缁忓畾鐗堢殑鍙戣揣鍗曪紝鐢熶骇鍒嗘嫞鍗曞瓙琛ㄥ拰涓昏〃锛岃缃�鍙戣揣鍗曘�鐨勪笟鍔$姸鎬�N_B_STATE = 1锛堝緟鍒嗘嫞锛� //2.0銆佸鏋滃彂璐у崟C_AUTO_SORTING=Y锛屽垯鑷姩灏嗗垎鎷e崟鐘舵�璁剧疆涓哄紑濮嬮厤璐� @@ -19,7 +23,8 @@ /// <summary> /// 寮�閰嶈揣鍒涘缓鍒嗘嫞鍗曟槑缁�鏀规垚璋冩帴鍙hЕ鍙� /// </summary> - internal static void CheckSortingOrder() { + internal static void CheckSortingOrder() + { //new SortingOrder().N_B_STATE //1.0銆佽幏鍙�N_B_STATE = 1 (寮�閰嶈揣)鐘舵�鐨勫垎鎷e崟 //2.0銆侀亶鍘嗗垎鎷e崟瀛愯〃锛屽垱寤哄垎鎷e崟鏄庣粏锛屾洿鏂板垎鎷e崟瀛愯〃鐨勬槑缁嗘眹鎬籉_ACC_S_QTY @@ -29,20 +34,26 @@ } - - + + /// <summary> /// 浣滀笟鍚姩锛屽垱寤哄瓙浠诲姟 /// </summary> - internal static void Start() { + internal static void Start() + { List<WMSTask> list = WMSHelper.GetWaitingOperationList(); - if (list.Count > 0) { + if (list.Count > 0) + { + var db = new SqlHelper<WCSTask>().GetInstance(); //绌烘墭鍥炲簱浠诲姟鍒涘缓 - list.ForEach(a => { - if (a.N_TYPE == 1) { - if (!string.IsNullOrEmpty(a.S_END_LOC)) + list.ForEach(a => + { + //绌烘墭鍥炲簱 + if (a.N_TYPE == 1) + { + if (!string.IsNullOrEmpty(a.S_END_LOC)) { string JbwLoc = ""; //鍒涘缓agv鎼繍浠诲姟 @@ -73,16 +84,100 @@ S_CNTR_CODE = a.S_CNTR_CODE, }; - if (WCSHelper.CreateTask(wcsTask1)&& WCSHelper.CreateTask(wcsTask2)) + + if (WCSHelper.CreateTask(wcsTask1) && WCSHelper.CreateTask(wcsTask2)) { //鏇存柊浣滀笟鐘舵�涓烘墽琛� a.N_B_STATE = 1; a.S_B_STATE = "鎵ц"; + LocationHelper.LockLoc(a.S_START_LOC, 2); + LocationHelper.LockLoc(a.S_END_LOC, 1); WMSHelper.UpdateTaskState(a); } } } - + else if (a.N_TYPE == 2) + { + #region MyRegion + //鍒ゆ柇澶栦晶鏈夋病鏈夋墭鐩橈紝闇�笉闇�绉诲簱 + var StartLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_START_AREA && b.S_CODE == a.S_START_LOC).First(); + var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == StartLoc.S_AREA_CODE && b.N_LAYER == StartLoc.N_LAYER && b.N_POS == 1 && b.N_CURRENT_NUM == 1 && b.N_LOCK_STATE == 0).First(); + if (OutLoc != null) + { + var YiKuLoc = LocationHelper.InStorage(OutLoc); + if (YiKuLoc != null) + { + var wcsTask = new WCSTask + { + S_OP_CODE = a.S_CODE, + S_OP_NAME = "鍑哄簱", + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "绉诲簱", + S_START_LOC = OutLoc.S_CODE, + S_END_LOC = YiKuLoc.S_CODE, + N_SCHEDULE_TYPE = 2, + N_CNTR_COUNT = 1, + S_CNTR_CODE = a.S_CNTR_CODE, + + }; + if (WCSHelper.CreateTask(wcsTask) ) + { + //鏇存柊浣滀笟鐘舵�涓烘墽琛� + LocationHelper.LockLoc(OutLoc.S_CODE, 2); + LocationHelper.LockLoc(YiKuLoc.S_CODE, 1); + } + } + else + { + LogHelper.Info($"浣滀笟锛歿a.S_CODE}澶栦晶璐т綅{OutLoc.S_CODE}锛屾湭璁$畻鍒扮Щ搴撹揣浣�浣滀笟涓嶅惎鍔�); + return; + } + ; + } + #endregion + + string JbwLoc = ""; + + //鍒涘缓wcs浠诲姟 + var wcsTask1 = new WCSTask + { + S_OP_CODE = a.S_CODE, + S_OP_NAME = "鍑哄簱", + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍑哄簱", + S_START_LOC = a.S_START_LOC, + S_END_LOC = JbwLoc, + N_SCHEDULE_TYPE = 2, + N_CNTR_COUNT = 1, + S_CNTR_CODE = a.S_CNTR_CODE, + + }; + //鍒涘缓wcs鍥炲簱浠诲姟 + var wcsTask2 = new WCSTask + { + S_OP_CODE = a.S_CODE, + S_OP_NAME = "鍑哄簱", + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍑哄簱", + S_START_LOC = JbwLoc, + S_END_LOC = a.S_END_LOC, + N_SCHEDULE_TYPE = 1, + N_CNTR_COUNT = 1, + S_CNTR_CODE = a.S_CNTR_CODE, + + }; + + if (WCSHelper.CreateTask(wcsTask1) && WCSHelper.CreateTask(wcsTask2)) + { + //鏇存柊浣滀笟鐘舵�涓烘墽琛�+ a.N_B_STATE = 1; + a.S_B_STATE = "鎵ц"; + LocationHelper.LockLoc(a.S_START_LOC, 2); + LocationHelper.LockLoc(a.S_END_LOC, 1); + WMSHelper.UpdateTaskState(a); + } + } + }); } -- Gitblit v1.9.1