From 56c15393c9f671147d49539d56d54a3c817e2205 Mon Sep 17 00:00:00 2001 From: FanLian Date: Thu, 3 Aug 2023 17:41:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E7=AD=96=E7=95=A5=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/Queries/OutStockStrategyQuery.cs | 4 ++++ .../Tnb.WarehouseMgr/WareHouseService.cs | 11 ++++++----- .../Tnb.WarehouseMgr/WmsEmptyOutstockService .cs | 16 ++++++++++------ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs index de9911a5..879a02f1 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Queries/OutStockStrategyQuery.cs @@ -17,6 +17,10 @@ namespace Tnb.WarehouseMgr.Entities.Dto /// public string carry_id { get; set; } /// + /// 载具规格Id + /// + public string carrystd_id { get; set; } + /// /// 物料Id /// public string material_id { get; set; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 29484940..78fabc26 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -192,17 +192,18 @@ namespace Tnb.WarehouseMgr .And((a, b, c) => a.out_status == "0") .And((a, b, c) => c.wh_id == input.warehouse_id) .AndIF(!string.IsNullOrEmpty(input.material_id), (a, b, c) => b.material_id == input.material_id) - .AndIF(!string.IsNullOrEmpty(input.code_batch), (a, b, c) => b.code_batch == input.code_batch); + .AndIF(!string.IsNullOrEmpty(input.code_batch), (a, b, c) => b.code_batch == input.code_batch) + .AndIF(!string.IsNullOrEmpty(input.carrystd_id), (a,b,c)=>a.carrystd_id == input.carrystd_id); Expression> carryStatusFilterExp = !input.material_id.IsNullOrWhiteSpace() - ? (a, b, c) => a.status == (int)EnumCarryStatus.占用 - : (a, b, c) => a.status == (int)EnumCarryStatus.空闲; + ? (a, b, c) => a.carry_status == ((int)EnumCarryStatus.占用).ToString() + : (a, b, c) => a.carry_status == ((int)EnumCarryStatus.空闲).ToString(); whereExprable.And(carryStatusFilterExp); var whereExpr = whereExprable.ToExpression(); var policy = await _db.Queryable().Where(it => it.status == 1).FirstAsync(); if (policy == null) throw new AppFriendlyException("没有可用策略", 500); - var items = await _db.Queryable().InnerJoin((a, b) => a.id == b.carry_id) - .InnerJoin((a, b, c) => a.location_id == c.id) + var items = await _db.Queryable().LeftJoin((a, b) => a.id == b.carry_id) + .LeftJoin((a, b, c) => a.location_id == c.id) .Where(whereExpr) .OrderBy(policy.policy) .Select() diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs index d5a781d7..025e309e 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs @@ -77,12 +77,16 @@ namespace Tnb.WarehouseMgr //判断目标库位是否自动签收 var loc = await _db.Queryable().SingleAsync(it => it.id == input.data[nameof(WmsPointH.location_id)].ToString()); //出库取起点,获取所有符合输入的载具规格的载具 - //var OutStockStrategyInput = new OutStockStrategyQuery { carry_id = input.data[nameof(OutStockStrategyQuery.carry_id)].ToString() }; - //var carrys = await _wareHouseService.OutStockStrategy(OutStockStrategyInput); - var carrys = await _db.Queryable().LeftJoin((a, b) => a.location_id == b.id) - .Where((a, b) => a.carrystd_id == input.data[nameof(WmsEmptyOutstockH.carrystd_id)].ToString() - && a.carry_status == ((int)EnumCarryStatus.空闲).ToString() && a.is_lock == 0 && b.is_lock == 0 && b.is_type == ((int)EnumLocationType.存储库位).ToString()) - .ToListAsync(); + var OutStockStrategyInput = new OutStockStrategyQuery { + carrystd_id = input.data[nameof(OutStockStrategyQuery.carrystd_id)].ToString(), + warehouse_id = input.data[nameof(OutStockStrategyQuery.warehouse_id)].ToString(), + + }; + var carrys = await _wareHouseService.OutStockStrategy(OutStockStrategyInput); + //var carrys = await _db.Queryable().LeftJoin((a, b) => a.location_id == b.id) + // .Where((a, b) => a.carrystd_id == input.data[nameof(WmsEmptyOutstockH.carrystd_id)].ToString() + // && a.carry_status == ((int)EnumCarryStatus.空闲).ToString() && a.is_lock == 0 && b.is_lock == 0 && b.is_type == ((int)EnumLocationType.存储库位).ToString()) + // .ToListAsync(); // 判断最终目标库位是否可以放置当前载具 if (carrys?.Count > 0) {