diff --git a/WarehouseMgr/Tnb.WarehouseMgr/Tnb.WarehouseMgr.csproj b/WarehouseMgr/Tnb.WarehouseMgr/Tnb.WarehouseMgr.csproj index 11628acf..63e4864f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/Tnb.WarehouseMgr.csproj +++ b/WarehouseMgr/Tnb.WarehouseMgr/Tnb.WarehouseMgr.csproj @@ -1,4 +1,5 @@ - + + diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs index 372c4088..585b20b2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs @@ -70,13 +70,14 @@ namespace Tnb.WarehouseMgr try { var carry = await _db.Queryable().SingleAsync(it => it.carry_code == input.carry_code); + if (carry.IsNull()) throw new AppFriendlyException($"编号{input.carry_code},对应载具不存在", 500); List carryCodes = new(); var carryDsLst = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync(); if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0) { var mIds = carryDsLst.Select(it => it.membercarry_id).ToList(); carryCodes = await _db.Queryable().Where(it => mIds.Contains(it.carry_id)).ToListAsync(); - if (carryCodes.Count < mIds.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空",500); + if (carryCodes.Count < mIds.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空", 500); for (int i = 0, cnt = mIds.Count; i < cnt; i++) { carryCodes[i].member_carrycode = carryDsLst.Find(x => x.membercarry_id == mIds[i])?.membercarry_code ?? string.Empty; @@ -92,7 +93,7 @@ namespace Tnb.WarehouseMgr catch (Exception) { await _db.Ado.RollbackTranAsync(); - throw ; + throw; } return data; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs index 76225f1c..f7cd1c6a 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs @@ -124,8 +124,8 @@ namespace Tnb.WarehouseMgr if (details.Count > 0 && carryCodes.Count > 0) { var locTypes = new[] { ((int)EnumLocationType.出库库位).ToString(), ((int)EnumLocationType.出入库位).ToString() }; - var endLocs = await _db.Queryable().Where(it => it.wh_id == input.data[nameof(WmsCheckstockH.warehouse_id)].ToString() && locTypes.Contains(it.is_type)).ToListAsync(); - var randomIndex = new Random().Next(0, endLocs.Count - 1); + var endLocs = await _db.Queryable().Where(it => it.wh_id == input.data[nameof(WmsCheckstockH.warehouse_id)].ToString() && locTypes.Contains(it.is_type)).ToArrayAsync(); + var randomIndex = new Random().Next(0, endLocs.GetUpperBound(0)); var carrys = await _db.Queryable().Where(it => carryCodes.Select(x => x.carry_id).Distinct().Contains(it.id)).ToListAsync(); var curDetails = details.DistinctBy(x => x.carry_id).ToList(); var curCarryCodes = carryCodes.FindAll(x => curDetails.Select(d => d.carry_id).Contains(x.carry_id));