From 64ec1a7fb55389d8db371d112e49f741de866796 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期三, 18 六月 2025 16:41:26 +0800 Subject: [PATCH] 业务开发与优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs | 128 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 122 insertions(+), 6 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs index 5f0163d..92791ce 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs @@ -143,6 +143,7 @@ private static object lockObj = new object(); + /// <summary> /// 鍒涘缓浠诲姟 /// </summary> @@ -167,7 +168,6 @@ { try { - // 1 绌烘墭鍥炲簱 if (model.TaskType == "1") { @@ -200,7 +200,8 @@ #endregion #region 璁$畻绔嬪簱缁堢偣 - endloc = LocationHelper.InStorage(startloc); + + endloc = LocationHelper.InStorage(""); if (endloc == null) { result.Code = -1; @@ -208,6 +209,65 @@ LogHelper.Info($"creattask:{result.Msg}"); return result; } + #endregion + + #region 鍒涘缓浣滀笟 + if (startloc != null && endloc != null) + { + //鍒涘缓浣滀笟 + var wcsTask = new WMSTask + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_TYPE = Type, + N_TYPE = int.Parse(model.TaskType), + S_START_LOC = start, + S_END_LOC = endloc.S_CODE, + S_CNTR_CODE = cntrcode, + S_END_WH = endloc.S_WH_CODE, + S_START_WH = startloc.S_WH_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_END_AREA = endloc.S_AREA_CODE, + + }; + LogHelper.Info("鍒涘缓浣滀笟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask"); + if (WMSHelper.CreateTask(wcsTask)) + { + LocationHelper.LockLoc(startloc.S_CODE, 2); + LocationHelper.LockLoc(endloc.S_CODE, 1); + LogHelper.Info("鍒涘缓浣滀笟鎴愬姛"); + //绌烘墭鍥炲簱鎴愬姛锛屽鏋滃瓨鍦ㄧ墿鏂欐暟鎹紝鍒犻櫎 + var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First(); + if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).ExecuteCommand(); } + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + } + } + #endregion + + } + // 2 鍑哄簱 + if (model.TaskType == "2") + { + Type = "鍑哄簱"; + + #region 鑾峰彇缁堢偣淇℃伅 + startloc = LocationHelper.GetLoc(model.endBit); + if (startloc == null) + { + result.Code = -1; + result.Msg = $"鏍规嵁缁堢偣:{model.startBit}鏈壘鍒拌揣浣嶄俊鎭�; + LogHelper.Info($"creattask:{result.Msg}"); + return result; + } + #endregion + + #region 鏍规嵁鐗╂枡璁$畻鍑哄簱鎵樼洏锛屽厛杩涘厛鍑猴紝浼樺厛鍑哄渚�+ //鍏堣绠楀唴渚ц揣浣嶏紝鍒ゆ柇鏄惁鏈夊崟缁勬墭鐩�+ var locations = LocationHelper.GetLocByItemCodeOrderyTime("", model.ItemCode); + if (locations.Count > 0) + { + endloc = locations.OrderBy(a => a.N_COL).First(); + } + #endregion #region 鍒涘缓浣滀笟 @@ -247,8 +307,6 @@ return result; } - - return result; } catch (Exception ex) @@ -280,6 +338,7 @@ Location endloc = new Location(); Location startloc = new Location(); string cntrcode = model.CntrNo; + // string itemCode = ""; var db = new SqlHelper<object>().GetInstance(); if (model.DeviceNo == "1")//鍙犵洏鏈�@@ -311,7 +370,8 @@ #endregion #region 璁$畻绔嬪簱缁堢偣 - endloc = LocationHelper.InStorage(startloc); + + endloc = LocationHelper.InStorage(""); if (endloc == null) { result.Code = -1; @@ -376,7 +436,16 @@ #endregion #region 璁$畻绔嬪簱缁堢偣 - endloc = LocationHelper.InStorage(startloc); + //鑾峰彇鎵樼洏鐗╂枡缁戝畾鍏崇郴 + var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == model.CntrNo).First(); + if (cntrItem == null) + { + result.Code = -1; + result.Msg = $"鏍规嵁鎵樼洏:{model.CntrNo}鏈壘鍒扮墿鏂欎俊鎭�; + LogHelper.Info($"EquipmentInfo:{result.Msg}"); + return result; + } + endloc = LocationHelper.InStorage(cntrItem.S_ITEM_CODE); if (endloc == null) { result.Code = -1; @@ -496,6 +565,53 @@ return result; } + internal static Result<ReseltApplyDestModel> ApplyDest(ApplyDestModel model) + { + Result<ReseltApplyDestModel> result = new Result<ReseltApplyDestModel> { Code = 0, Msg = "鍒涘缓鎴愬姛" }; + if (model == null) + { + result.Code = -1; + result.Msg = "鍏ュ弬涓虹┖"; + return result; + } + var db = new SqlHelper<object>().GetInstance(); + string ItemCode = ""; + var task = WCSHelper.GetTask(model.TaskNo); + if (task != null) + { + + //鏍规嵁浠诲姟鎵樼洏鑾峰彇鐗╂枡淇℃伅 + + var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).First(); + if (cntrItem != null) + { + ItemCode = cntrItem.S_ITEM_CODE; + } + + var endloc = LocationHelper.InStorage(ItemCode); + if (endloc != null) { + result.Data = new ReseltApplyDestModel() { Loc = endloc.S_CODE }; + } + else + { + result.Code = -1; + result.Msg = "褰撳墠娌℃湁鍙敤缁堢偣鍙互鍒嗛厤"; + return result; + } + + } + else + { + result.Code = 1; + result.Msg = "浠诲姟涓嶅瓨鍦�; + return result; + } + + + + return result; + } + /// <summary> /// 鑾峰彇鎵樼洏鐗╂枡淇℃伅 /// </summary> -- Gitblit v1.9.1