1、出库库策略接口函数新增

2、调整更新 空载具函数,去除多余参数
This commit is contained in:
alex
2023-07-31 14:43:43 +08:00
parent 703eda463e
commit d707daa395
6 changed files with 46 additions and 16 deletions

View File

@@ -159,8 +159,14 @@ namespace Tnb.WarehouseMgr
var items = new List<BasLocation>();
try
{
items = await _db.Queryable<BasLocation>().Where(it => it.wh_id == input.warehouse_id && it.is_lock == 0 && it.is_type == "0" && it.is_use == ((int)EnumCarryStatus.).ToString()).OrderBy(it => new { it.layers, it.loc_line, it.loc_column }, OrderByType.Asc).ToListAsync();
var policy = await _db.Queryable<WmsInstockPolicies>().Where(it => it.status == 1).FirstAsync();
if (policy == null) throw new AppFriendlyException("没有可用的策略", 500);
var whereExp = Expressionable.Create<BasLocation>()
.And(it => it.wh_id == input.warehouse_id)
.And(it => it.is_lock == 0)
.And(it => it.is_use == ((int)EnumCarryStatus.).ToString())
.ToExpression();
items = await _db.Queryable<BasLocation>().Where(whereExp).OrderBy(policy.policy).ToListAsync();
}
catch (Exception)
{
@@ -173,8 +179,26 @@ namespace Tnb.WarehouseMgr
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<dynamic> OutStockStrategy()
public async Task<dynamic> OutStockStrategy(OutStockStrategyQuery input)
{
var whereExpr = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
.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) => 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();
var policy = await _db.Queryable<WmsInstockPolicies>().Where(it => it.status == 1).FirstAsync();
if (policy == null) throw new AppFriendlyException("没有可用策略", 500);
var result = await _db.Queryable<WmsCarryH>().InnerJoin<WmsCarryCode>((a, b) => a.id == b.carry_id)
.InnerJoin<BasLocation>((a, b, c) => a.location_id == c.id)
.Where(whereExpr)
.OrderBy(policy.policy)
.Select<WmsCarryH>()
.ToListAsync();
return await Task.FromResult<dynamic>(true);
}
/// <summary>