diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index ae11f831..fe61e471 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -151,7 +151,7 @@ namespace Tnb.WarehouseMgr { CodeDetails = SqlFunc.Subqueryable().Where(it => it.bill_d_id == a.id).ToList(), }, true) - .Mapper(it => it.line_status = dic.ContainsKey(key: it.line_status) ? dic[it.line_status]?.ToString() : "") + .Mapper(it => it.line_status = dic.ContainsKey(key: it.line_status) ? dic[it.line_status]?.ToString() : "") .ToListAsync(); return data; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index 5219afc2..f4c41568 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -150,7 +150,7 @@ namespace Tnb.WarehouseMgr carryMats = carryMats.OrderBy(o => o.create_time).GroupBy(g => new { g.carry_id, g.material_id, g.code_batch }) .Select(x => { - WmsCarryMat? carryMat = x.FirstOrDefault(); + WmsCarryMat carryMat = new(); carryMat.need_qty = x.Sum(d => d.need_qty); return carryMat; }) @@ -353,11 +353,19 @@ namespace Tnb.WarehouseMgr { List carryMats = new(); List carryCodes = new(); + var whereExp = Expressionable.Create() + .And((a, b, c) => a.is_lock == 0) + .And((a, b, c) => !string.IsNullOrEmpty(a.location_id)) + .And((a, b, c) => a.status == (int)EnumCarryStatus.占用) + .And((a, b, c) => c.is_type == ((int)EnumLocationType.存储库位).ToString()); + foreach (var os in outStockDList) { + whereExp.And((a, b, c) => b.material_id == os.material_id) + .AndIF(!string.IsNullOrEmpty(os.code_batch), (a, b, c) => b.code_batch == os.code_batch); + var carryCodesPart = await _db.Queryable().InnerJoin((a, b) => a.id == b.carry_id).InnerJoin((a, b, c) => a.location_id == c.id) - .Where((a, b, c) => b.material_id == os.material_id && a.is_lock == 0 && !string.IsNullOrEmpty(a.location_id) && a.status == (int)EnumCarryStatus.占用 && c.is_type == ((int)EnumLocationType.存储库位).ToString()) - .WhereIF(!string.IsNullOrEmpty(os.code_batch), (a, b) => b.code_batch == os.code_batch) + .Where(whereExp.ToExpression()) .Select() .ToListAsync(); if (carryCodesPart?.Count > 0) @@ -399,7 +407,7 @@ namespace Tnb.WarehouseMgr carryMats = carryMats.OrderBy(o => o.create_time).GroupBy(g => new { g.carry_id, g.material_id, g.code_batch }) .Select(x => { - WmsCarryMat? carryMat = x.FirstOrDefault()!; + WmsCarryMat carryMat = new(); carryMat.need_qty = x.Sum(d => d.need_qty); return carryMat; }) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs index 7b5c05af..282556f8 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs @@ -50,7 +50,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost] - public async Task PackSortingByAdd() + public async Task PackSortingByAdd(WmsCarryMat? carryMat) { var setSortings = await _db.Queryable() .Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID).OrderBy(a => a.seq) @@ -142,10 +142,11 @@ namespace Tnb.WarehouseMgr List preTasks = new(); List locIds = new(); string firstLocationId = "27010980724501", secondLocationId = "27010987857941"; - if (carrys.Length > 6) + var mid = 6; + if (carrys.Length > mid) { - var leftCarrys = carrys[..6]; - var rightCarrys = carrys[6..]; + var leftCarrys = carrys[..mid]; + var rightCarrys = carrys[mid..]; await InnerGenPreTask(leftCarrys, locIds, firstLocationId, singleSorting.id, singleSorting.bill_code, preTasks); await InnerGenPreTask(rightCarrys, locIds, secondLocationId, singleSorting.id, singleSorting.bill_code, preTasks); } @@ -167,7 +168,7 @@ namespace Tnb.WarehouseMgr pretaskCodes.AddRange(curPreTaskCodes); } await _wareHouseService.GenPreTask(preTasks, pretaskCodes); - await _db.Updateable().SetColumns(it => new WmsSetsortingH { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it=> it.id == singleSorting.id).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(it => new WmsSetsortingH { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == singleSorting.id).ExecuteCommandAsync(); GenPreTaskUpInput genPreTaskAfterUpInput = new(); genPreTaskAfterUpInput.CarryIds = preTasks.Select(x => x.carry_id).ToList(); genPreTaskAfterUpInput.LocationIds = new HashSet(locIds).ToList(); @@ -298,7 +299,7 @@ namespace Tnb.WarehouseMgr var carry = await _db.Queryable().SingleAsync(it => it.id == carryId); if (carry != null) { - if (carry!.location_id!.IsNotEmptyOrNull()) + if (carry.location_id?.IsNotEmptyOrNull() ?? false) { await _db.Updateable().SetColumns(it => new BasLocation { is_use = ((int)EnumCarryStatus.空闲).ToString() }).Where(it => it.id == carry.location_id).ExecuteCommandAsync(); }