From c4bcf24d506bdcd2e2b78bca63f0fbf08c356a86 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期三, 04 六月 2025 17:26:59 +0800 Subject: [PATCH] 合肥佳通优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 38 insertions(+), 11 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs index 1fbc2fc..0b60311 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs @@ -3,6 +3,7 @@ using NLog.Fluent; using SqlSugar; using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; @@ -231,7 +232,7 @@ //.Skip(targetIndex) // 璺宠繃楂樹簬鐩爣绛夌骇鐨勭瓑绾� //.ToList(); - LogHelper.Info($"GetLocByItemCode=>鏍规嵁搴撳尯缂栫爜:{areaCode}锛岀墿鏂欑紪鐮�{ItemCode},鐗╂枡浼樺厛绾�{lev}锛岀墿鏂欑瓑绾ц绠楀嚭鏈夋墭鐩樿揣浣峽JsonConvert.SerializeObject(queryable.ToList())}"); + // LogHelper.Info($"GetLocByItemCode=>鏍规嵁搴撳尯缂栫爜:{areaCode}锛岀墿鏂欑紪鐮�{ItemCode},鐗╂枡浼樺厛绾�{lev}锛岀墿鏂欑瓑绾ц绠楀嚭鏈夋墭鐩樿揣浣峽JsonConvert.SerializeObject(queryable.ToList())}"); //鍒ゆ柇闇�笉闇�鐗╂枡绛夌骇鏌ユ壘锛屽苟浼樺厛鍑哄簱浣欐枡 if (string.IsNullOrEmpty(lev)) { @@ -241,7 +242,7 @@ { locs = queryable.Where((a, b, c) => c.LEV == lev && c.S_BS_TYPE == "浣欐枡").ToList(); } - LogHelper.Info($"GetLocByItemCode=>鏌ユ壘浣欐枡,{JsonConvert.SerializeObject(locs)}"); + // LogHelper.Info($"GetLocByItemCode=>鏌ユ壘浣欐枡,{JsonConvert.SerializeObject(locs)}"); //娌℃湁浣欐枡鍒欏鎵惧叏閮ㄧ墿鏂� if (locs.Count == 0) @@ -260,9 +261,9 @@ { queryable = queryable.Where((a, b, c) => c.S_ITEM_CODE == ItemCode); } - LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(queryable.ToList())}"); + // LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(queryable.ToList())}"); - + if (string.IsNullOrEmpty(lev)) { locs = queryable.ToList(); @@ -271,7 +272,7 @@ { locs = queryable.Where((a, b, c) => c.LEV == lev).ToList(); } - LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(locs)}"); + // LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(locs)}"); } return locs; @@ -281,8 +282,6 @@ /// 鏍规嵁搴撳尯鑾峰彇绌烘墭 /// </summary> /// <param name="areaCode">搴撳尯缂栫爜</param> - /// <param name="lev">鐗╂枡绛夌骇</param> - /// <param name="ItemCode">鐗╂枡缂栫爜</param> /// <returns></returns> internal static Location GetLocByAreacode(string areaCode) { @@ -293,12 +292,40 @@ .LeftJoin<CntrItemDetail>((a, b, c) => b.S_CNTR_CODE == c.S_CNTR_CODE) .Where((a, b, c) => a.S_AREA_CODE == areaCode && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 - && b.S_CNTR_CODE != null + && b.S_CNTR_CODE != null && c.S_ITEM_CODE == null ); loc = query.First(); return loc; } + /// <summary> + /// 鍒嗛厤鐢垫璐т綅 + /// </summary> + /// <returns></returns> + internal static Location GetElevatorLoc() + { + var db = new SqlHelper<object>().GetInstance(); + Location location = new Location(); + //鏌ユ壘鍏ㄩ儴鐢垫锛屽垎閰嶄换鍔℃渶灏戠殑鐢垫 + var devices = Settings.deviceInfos.Where(a => a.deviceType == 2 && a.enable == 1).ToList(); + string[] state = new string[] { "鎵ц涓�, "寮�鍙栬揣", "鍙栬揣瀹屾垚" }; + Dictionary<int, string> dics = new Dictionary<int, string>(); + foreach (var deviceInfo in devices) + { + int mst = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鐢垫") && state.Contains(a.S_B_STATE)).Count(); + dics.Add(mst, deviceInfo.TN_Location); + } + if (dics.Count > 0) + { + var dic = dics.OrderBy(a => a.Key).First(); + location = db.Queryable<Location>().Where(a => a.S_CODE == dic.Value).First(); + if (location == null) + { + LogHelper.Info($"鏍规嵁璐т綅缂栫爜:{dic.Value},鏈壘鍒板搴旇揣浣�); + } + } + return location; + } /// <summary> /// 鏍规嵁鐗╂枡缂栫爜锛屼粨搴撶紪鐮佽幏鍙栨墭鐩樻暟閲� /// </summary> @@ -478,15 +505,15 @@ } /// <summary> - /// 鏍规嵁璐т綅闆嗗悎鑾峰彇 娌℃湁瀹瑰櫒 娌℃湁閿佺殑璐т綅 + /// 鏍规嵁璐т綅鑾峰彇璐т綅淇℃伅 /// </summary> /// <param name="loc"></param> /// <returns></returns> - internal static List<Location> GetLocListEmptyFree(List<string> loc) + internal static Location GetLocByLoc(string loc) { //1.0 鏌ヨ揣浣嶅鍣ㄨ〃 var db = new SqlHelper<object>().GetInstance(); - var list = db.Queryable<Location>().Where(a => loc.Contains(a.S_CODE) && a.N_CURRENT_NUM == 0 && a.S_LOCK_STATE.Trim() == "鏃�).ToList(); + var list = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First(); return list; } -- Gitblit v1.9.1