From 210a9296859d5d11f1ec3d27f222c928985de315 Mon Sep 17 00:00:00 2001 From: FanLian Date: Thu, 20 Jul 2023 15:49:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=BD=90=E5=A5=97=E5=88=86=E6=8B=A3?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E9=94=99=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/WmsSetSortingService.cs | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs index 98a05402..079c898c 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs @@ -56,7 +56,9 @@ namespace Tnb.WarehouseMgr var endLocation = await _db.Queryable().SingleAsync(it => it.id == secondLocationId); var setSortings = await _db.Queryable() - .Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID).OrderBy(a => a.seq) + .Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID) + .Select() + .OrderBy(a => a.seq) .ToListAsync(); var items = await _db.Queryable().Where(it => it.status == WmsWareHouseConst.BILLSTATUS_ON_ID).ToListAsync(); var onFlag = items?.Count > 0; @@ -64,17 +66,12 @@ namespace Tnb.WarehouseMgr { await _db.Ado.BeginTranAsync(); - var singleSorting = new WmsSetsortingH(); - if (setSortings?.Count > 0) - { - singleSorting = setSortings[0]; - var curCarry = await _db.Queryable().SingleAsync(it => it.id == singleSorting.carry_id); - var isMatch = await IsCarryAndLocationMatchByCarryStd(curCarry, endLocation); - if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500); - } + + if (setSortings?.Count > 0 && !onFlag) { + var singleSorting = setSortings[0]; var setSortingDList = await _db.Queryable().Where(it => it.bill_id == singleSorting.id).ToListAsync(); if (setSortingDList?.Count > 0) @@ -83,18 +80,20 @@ namespace Tnb.WarehouseMgr List carryCodes = new(); List carryIds = new(); - var whereExpr = 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.占用); + ; foreach (var os in setSortingDList) { - whereExpr.And((a, b, c) => b.material_id == os.material_id) - .And((a, b, c) => c.wh_id == os.warehouse_id) - .AndIF(!string.IsNullOrEmpty(os.code_batch), (a, b, c) => b.code_batch == os.code_batch); - + var whereExpr = 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) => b.material_id == os.material_id) + .And((a, b, c) => c.wh_id == os.warehouse_id) + .AndIF(!string.IsNullOrEmpty(os.code_batch), (a, b, c) => b.code_batch == os.code_batch) + .ToExpression(); +; var carryCodesPart = await _db.Queryable().InnerJoin((a, b) => a.id == b.carry_id).InnerJoin((a, b, c) => a.location_id == c.id) - .Where(whereExpr.ToExpression()) + .Where(whereExpr) .Select() .ToListAsync(); if (carryCodesPart?.Count > 0) @@ -152,6 +151,13 @@ namespace Tnb.WarehouseMgr var carrys = await _db.Queryable().Where(it => carryIds.Contains(it.id)).ToArrayAsync(); if (carrys?.Length > 0) { + if (setSortings?.Count > 0) + { + + var curCarry = carrys[^carrys.Length]; + var isMatch = await IsCarryAndLocationMatchByCarryStd(curCarry, endLocation); + if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500); + } List preTasks = new(); List locIds = new(); From e67beb20f7e42ae26c08166209d75b71ce42e650 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 20 Jul 2023 15:50:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=BD=90=E5=A5=97?= =?UTF-8?q?=E5=87=BA=E5=BA=93=EF=BC=8C=E6=8B=BC=E6=8E=A5=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/WmsOutStockService.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index 1e6c5334..d6c26e3a 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -368,16 +368,17 @@ 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 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()) + .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(whereExp.ToExpression())