From cb58fdbdc4391136e7176210e3f1969606f11903 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期四, 29 五月 2025 16:52:21 +0800 Subject: [PATCH] 合肥佳通 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 43 insertions(+), 8 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 4c08b0a..4a10355 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs @@ -193,6 +193,13 @@ return result; } + // 瀹氫箟绛夌骇椤哄簭锛堜粠楂樺埌浣庯級 + private static readonly List<string> LevelOrder = new List<string> + { + "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", + "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", + "U", "V", "W", "X", "Y", "Z" + }; /// <summary> /// 鏍规嵁鐗╂枡鎵炬墭鐩� /// </summary> @@ -207,20 +214,24 @@ var queryable = db.Queryable<Location>() .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE) .LeftJoin<CntrItemDetail>((a, b, c) => b.S_CNTR_CODE == c.S_CNTR_CODE) - .Where((a, b, c) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode ); + .Where((a, b, c) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode); //鍏綅鐮佸尮閰嶅墠鍏綅锛屽叾浠栫殑鍏ㄩ儴閰嶇疆 - if (ItemCode.Count() == 6) + if (ItemCode.Trim().Length == 6) { queryable = queryable.Where((a, b, c) => c.S_ITEM_CODE.StartsWith(ItemCode)); - + } else { queryable = queryable.Where((a, b, c) => c.S_ITEM_CODE == ItemCode); } + //int targetIndex = LevelOrder.IndexOf(lev); + //// 鑾峰彇鎵�湁浣庝簬鎴栫瓑浜庣洰鏍囩瓑绾х殑绛夌骇 + //var validLevels = LevelOrder + //.Skip(targetIndex) // 璺宠繃楂樹簬鐩爣绛夌骇鐨勭瓑绾�+ //.ToList(); - - // LogHelper.Info($"GetLocByItemCode=>鏍规嵁搴撳尯缂栫爜:{areaCode}锛岀墿鏂欑紪鐮�{ItemCode},鐗╂枡浼樺厛绾э紝鐗╂枡绛夌骇璁$畻鍑烘湁鎵樼洏璐т綅{JsonConvert.SerializeObject(queryable.ToList())}"); + LogHelper.Info($"GetLocByItemCode=>鏍规嵁搴撳尯缂栫爜:{areaCode}锛岀墿鏂欑紪鐮�{ItemCode},鐗╂枡浼樺厛绾�{lev}锛岀墿鏂欑瓑绾ц绠楀嚭鏈夋墭鐩樿揣浣峽JsonConvert.SerializeObject(queryable.ToList())}"); //鍒ゆ柇闇�笉闇�鐗╂枡绛夌骇鏌ユ壘锛屽苟浼樺厛鍑哄簱浣欐枡 if (string.IsNullOrEmpty(lev)) { @@ -230,7 +241,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) @@ -240,7 +251,7 @@ .LeftJoin<CntrItemDetail>((a, b, c) => b.S_CNTR_CODE == c.S_CNTR_CODE) .Where((a, b, c) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode); //鍏綅鐮佸尮閰嶅墠鍏綅锛屽叾浠栫殑鍏ㄩ儴閰嶇疆 - if (ItemCode.Count() == 6) + if (ItemCode.Trim().Length == 6) { queryable = queryable.Where((a, b, c) => c.S_ITEM_CODE.StartsWith(ItemCode)); @@ -249,7 +260,10 @@ { queryable = queryable.Where((a, b, c) => c.S_ITEM_CODE == ItemCode); } + LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(queryable.ToList())}"); + //鍒ゆ柇绛夌骇 + locs = queryable.Where((a, b, c) => char.ToUpper(lev) >= c.LEV).ToList(); if (string.IsNullOrEmpty(lev)) { locs = queryable.ToList(); @@ -258,12 +272,33 @@ { locs = queryable.Where((a, b, c) => c.LEV == lev).ToList(); } - // LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(locs)}"); + LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(locs)}"); } return locs; } + /// <summary> + /// 鏍规嵁搴撳尯鑾峰彇绌烘墭 + /// </summary> + /// <param name="areaCode">搴撳尯缂栫爜</param> + /// <param name="lev">鐗╂枡绛夌骇</param> + /// <param name="ItemCode">鐗╂枡缂栫爜</param> + /// <returns></returns> + internal static Location GetLocByAreacode(string areaCode) + { + Location loc = new Location(); + var db = new SqlHelper<object>().GetInstance(); + var query = db.Queryable<Location>() + .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE) + .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 + ); + loc = query.First(); + return loc; + } /// <summary> /// 鏍规嵁鐗╂枡缂栫爜锛屼粨搴撶紪鐮佽幏鍙栨墭鐩樻暟閲� -- Gitblit v1.9.1