From b2c8747a85762bc32f310a31fe84cad69b61104a Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期二, 10 六月 2025 17:32:46 +0800 Subject: [PATCH] 优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs | 44 +++++++++++++++++++++++++++++++++----------- 1 files changed, 33 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 ada1f10..94f4928 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; using static HH.WCS.JiaTong.dispatch.NDC; @@ -201,6 +202,7 @@ "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; + /// <summary> /// 鏍规嵁鐗╂枡鎵炬墭鐩� /// </summary> @@ -210,7 +212,10 @@ /// <returns></returns> internal static List<Location> GetLocByItemCode(string areaCode, string ItemCode, string lev) { + List<Location> locs; + + var db = new SqlHelper<object>().GetInstance(); var queryable = db.Queryable<Location>() .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE) @@ -242,7 +247,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) @@ -282,21 +287,34 @@ /// 鏍规嵁搴撳尯鑾峰彇绌烘墭 /// </summary> /// <param name="areaCode">搴撳尯缂栫爜</param> - /// <param name="lev">鐗╂枡绛夌骇</param> - /// <param name="ItemCode">鐗╂枡缂栫爜</param> /// <returns></returns> - internal static Location GetLocByAreacode(string areaCode) + internal static Location GetLocByAreacode(string areaCode, string type) { Location loc = new Location(); var db = new SqlHelper<object>().GetInstance(); + string CntrCodeWith = ""; + if (type.Trim() == "PM") + { + CntrCodeWith = "MA"; + } + else if (type.Trim() == "PN") + { + CntrCodeWith = "NA"; + } + if (CntrCodeWith == "") + { + LogHelper.Info($"鎵樼洏绫诲瀷{type}涓嶅湪瑙勫畾鑼冨洿"); + } 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 - ); + .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 && b.S_CNTR_CODE.Contains(CntrCodeWith) && c.S_ITEM_CODE == null + ); loc = query.First(); + + return loc; } @@ -546,7 +564,11 @@ } else { - LogHelper.Info($"閿佸畾璐т綅{loc}鎴愬姛"); + LogHelper.Info($"閿佸畾璐т綅{loc}澶辫触,閲嶆柊閿�); + Task.Run(() => + { + LockLoc(loc, lockState); + }); } return res; } -- Gitblit v1.9.1