From dc5be5ac7d2a5aae1618fe3d1d8a689d10fdc9dc Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期四, 15 五月 2025 17:09:38 +0800 Subject: [PATCH] 大洋原材料库业务开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs | 317 +++++++++++++--------------------------------------- 1 files changed, 80 insertions(+), 237 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 b4f04ea..46fa97f 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs @@ -4,6 +4,7 @@ using HH.WCS.DaYang.util; using HH.WCS.DaYang.wms; using Newtonsoft.Json; +using NLog.Fluent; using SqlSugar; using System; using System.Collections.Concurrent; @@ -139,241 +140,7 @@ return result; } - #region 搴熷純鑰佹祦绋�- //internal static Result createtask(CreateTask model) - //{ - // Result result = new Result { resultCode = 0, resultMsg = "鍒涘缓鎴愬姛" }; - // var db = new SqlHelper<object>().GetInstance(); - // string start = model.startBit; - // string end = model.endBit; - // string Type = ""; - // string cntrcode = ""; - // int startlayer = 1; - - // int endlayer = 1; - // // string startarea = ""; - // //string endarea = ""; - // //1鍒涘缓鍙栨墭鐩樹换鍔�- // if (model.TaskType == "1") - // { - // if (LocControl(start)) - // { - // string startZone = "HJQ"; - // //鎵剧┖鎵樼洏 - // var cntr = ContainerHelper.GetItemCntrRel(model.ItemCode).ToList(); - // if (cntr.Count > 0) - // { - // string[] cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray(); - // // 鏍规嵁鎵樼洏鎵捐揣浣�- // var trayInfo = db.Queryable<LocCntrRel>().Where(a => cntrcodes.Contains(a.S_CNTR_CODE)).ToList(); - // if (trayInfo.Count() > 0) - // { - // //鍒ゆ柇璧风偣鏄惁鏄寚瀹氬簱鍖虹殑璐т綅 - // foreach (var item in trayInfo) - // { - // var locations = db.Queryable<Location>().Where(a => a.S_CODE == item.S_LOC_CODE && a.S_AREA_CODE == startZone).First(); - // if (locations != null) - // { - // start = locations.S_CODE; - // cntrcode = item.S_CNTR_CODE; - // break; - // } - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "鏍规嵁鎵樼洏缂栫爜鏈壘鍒版墍灞炶揣浣嶇紪鐮�; - // return result; - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "鎵句笉鍒扮┖鎵樼洏"; - // return result; - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "澶栦晶璐т綅鏈夋墭鐩�; - // return result; - // } - // } - // // 2鍒涘缓鍙栫墿鏂欎换鍔�- // else if (model.TaskType == "2") - // { - // if (LocControl(start)) - // { - // string startZone = "AGVZYQ"; - - // //鏍规嵁鐗╂枡缂栫爜鎵炬墭鐩�- // var cntr = ContainerHelper.GetItemCntrRel(model.ItemCode).FirstOrDefault(); - // if (cntr != null) - // { - // //鏍规嵁鎵樼洏鎵捐揣浣�- // var trayInfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntr.S_CNTR_CODE).ToList(); - // if (trayInfo.Count() > 0) - // { - // //鍒ゆ柇璧风偣鏄惁鏄寚瀹氬簱鍖虹殑璐т綅 - // foreach (var item in trayInfo) - // { - // var locations = db.Queryable<Location>().Where(a => a.S_CODE == item.S_LOC_CODE && a.S_AREA_CODE == startZone).First(); - // if (locations != null) - // { - // start = locations.S_CODE; - // cntrcode = cntr.S_CNTR_CODE; - // //startlayer = locations.N_CURRENT_NUM == 1 ? 1 : 2; - // // startlayer = locations.N_LAYER; - // break; - // } - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "鏍规嵁鐗╂枡鎵樼洏缂栫爜鏈壘鍒版墍灞炶揣浣嶇紪鐮�; - // return result; - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "鏍规嵁鐗╂枡缂栫爜鏈壘鍒版墍灞炲鍣ㄥ彿"; - // return result; - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "澶栦晶璐т綅鏈夋墭鐩橈紝涓嶅厑璁哥敓鎴愪换鍔�; - // return result; - // } - - // } - // //3婊℃嫋鍏ュ簱 - // else if (model.TaskType == "3") - // { - - // string endlloc = "JBW_01_01"; - - - // var locations = LocationHelper.GetLocList(endlloc).FirstOrDefault(); - // if (locations.S_LOCK_STATE != "鏃�) - // { - // if (locations.N_CURRENT_NUM > 0) - // { - // result.resultCode = -1; - // result.resultMsg = $"璐т綅{endlloc}宸叉湁鎵樼洏锛屼笉鍏佽鐢熸垚浠诲姟"; - // return result; - // } - // else - // { - // end = endlloc; - // } - - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = $"璐т綅{endlloc}宸叉湁浠诲姟姝e湪鎵ц涓紝涓嶅厑璁哥敓鎴愪换鍔�; - // return result; - // } - // //var locations = LocationHelper.GetLocListAny(startZone).OrderBy(a => a.N_ROW).ToList(); - // //var suo = locations.Find(a => a.S_LOCK_STATE != "鏃�); - // //if (suo != null) - // //{ - // // var endloc = FindEndcolByLocList(locations, model.ItemCode); - // // if (endloc != null) - // // { - // // end = endloc.S_CODE; - // // } - // //} - // //else - // //{ - // // result.resultCode = -1; - // // result.resultMsg = $"搴撳尯{suo.S_AREA_CODE}宸叉湁浠诲姟姝e湪鎵ц涓紝涓嶅厑璁哥敓鎴愪换鍔�; - // // return result; - // //} - - - - // } - // //4鍒嗘嫞鍑�- // else if (model.TaskType == "4") - // { - // string startZone = "HJQ"; - - // //鏍规嵁鐗╂枡缂栫爜鎵炬墭鐩�- // var cntr = ContainerHelper.GetItemCntrRel(model.ItemCode).FirstOrDefault(); - // if (cntr != null) - // { - // //鏍规嵁鎵樼洏鎵捐揣浣�- // var trayInfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntr.S_CNTR_CODE).ToList(); - // if (trayInfo.Count() > 0) - // { - // //鍒ゆ柇璧风偣鏄惁鏄寚瀹氬簱鍖虹殑璐т綅 - // foreach (var item in trayInfo) - // { - // var locations = db.Queryable<Location>().Where(a => a.S_CODE == item.S_LOC_CODE && a.S_AREA_CODE == startZone).First(); - // if (locations != null) - // { - // start = locations.S_CODE; - // cntrcode = cntr.S_CNTR_CODE; - // break; - // } - // } - - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "鏍规嵁鐗╂枡鎵樼洏缂栫爜鏈壘鍒版墍灞炶揣浣嶇紪鐮�; - // return result; - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = "鏍规嵁鐗╂枡缂栫爜鏈壘鍒版墍灞炲鍣ㄥ彿"; - // return result; - // } - // } - // else - // { - // result.resultCode = -1; - // result.resultMsg = $"浠诲姟绫诲瀷鏈夎锛寋model.TaskType}浠诲姟绫诲瀷涓嶆槸瑙勫畾浠诲姟绫诲瀷"; - // return result; - // } - // if (!string.IsNullOrEmpty(start) && !string.IsNullOrEmpty(end)) - // { - // //鍒涘缓wcs浠诲姟 - // var wcsTask = new WCSTask - // { - // S_CODE = WCSHelper.GenerateTaskNo(), - // S_TYPE = Type, - // S_START_LOC = start, - // S_END_LOC = end, - // N_CNTR_COUNT = 1, - // N_SCHEDULE_TYPE = 1, - // S_CNTR_CODE = cntrcode, - // N_START_LAYER = startlayer, - // N_END_LAYER = endlayer - - // }; - // LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask"); - // if (WCSHelper.CreateTask(wcsTask)) - // { - // LocationHelper.LockLoc(start, 2); - // LocationHelper.LockLoc(end, 1); - // LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); - // } - // } - - // return result; - //} - #endregion + private static object lockObj = new object(); /// <summary> @@ -408,7 +175,7 @@ #region 鑾峰彇璧风偣淇℃伅 startloc = LocationHelper.GetLoc(model.startBit); - if (endloc == null) + if (startloc == null) { result.resultCode = -1; result.resultMsg = $"鏍规嵁璧风偣:{model.startBit}鏈壘鍒拌揣浣嶄俊鎭�; @@ -496,7 +263,12 @@ } - internal static Result PutIn(PutInModel model) + /// <summary> + /// 璁惧淇″彿鍙嶉 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + internal static Result EquipmentInfo(EquipmentInfoModel model) { Result result = new Result { resultCode = 0, resultMsg = "鍒涘缓鎴愬姛" }; if (model == null) @@ -505,6 +277,77 @@ result.resultMsg = "鍏ュ弬涓虹┖"; return result; } + Location endloc = new Location(); + Location startloc = new Location(); + string cntrcode = model.CntrNo; + var db = new SqlHelper<object>().GetInstance(); + + if (model.DeviceNo=="1")//鍙犵洏鏈�+ { + + } + else //鍏ュ簱绌�+ { + #region 鑾峰彇璧风偣淇℃伅 + //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅 + var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First(); + if (CntrLoc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�; + LogHelper.Info($"creattask:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�); + return result; + } + startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE); + if (startloc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�; + LogHelper.Info($"creattask:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�); + return result; + } + + #endregion + + #region 璁$畻绔嬪簱缁堢偣 + endloc = LocationHelper.InStorage(startloc); + if (endloc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"; + LogHelper.Info($"creattask:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"); + return result; + } + #endregion + + #region 鍒涘缓浠诲姟 + if (startloc != null && endloc != null) + { + var wcsTask = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍏ュ簱", + S_START_LOC = startloc.S_CODE, + S_END_LOC = endloc.S_CODE, + S_START_WH = startloc.S_WH_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, + S_END_AREA = endloc.S_AREA_CODE, + N_CNTR_COUNT = 1, + N_SCHEDULE_TYPE = 2, + S_CNTR_CODE = cntrcode + }; + LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); + if (WCSHelper.CreateTask(wcsTask)) + { + LocationHelper.LockLoc(startloc.S_CODE, 2); + LocationHelper.LockLoc(endloc.S_CODE, 1); + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + } + } + #endregion + } + return result; } -- Gitblit v1.9.1