diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index f29c2ee6..c18dd654 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -181,16 +181,21 @@ namespace Tnb.WarehouseMgr [HttpGet] public async Task OutStockStrategy(OutStockStrategyQuery input) { - var whereExpr = Expressionable.Create() + var whereExprable = 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) => a.status == (int)EnumCarryStatus.占用) .And((a, b, c) => c.is_type == ((int)EnumLocationType.存储库位).ToString()) .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) - .ToExpression(); + .AndIF(!string.IsNullOrEmpty(input.code_batch), (a, b, c) => b.code_batch == input.code_batch); + Expression> carryStatusFilterExp = !input.material_id.IsNullOrWhiteSpace() + ? (a, b, c) => a.status == (int)EnumCarryStatus.占用 + : (a, b, c) => a.status == (int)EnumCarryStatus.空闲; + 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)