1、出库库策略接口函数新增
2、调整更新 空载具函数,去除多余参数
This commit is contained in:
@@ -9,12 +9,12 @@ namespace Tnb.BasicData.Entities.Enums
|
||||
/// <summary>
|
||||
/// 库位类型
|
||||
/// </summary>
|
||||
public enum EnumLocationType
|
||||
{
|
||||
存储库位 = 0,
|
||||
入库库位,
|
||||
出库库位,
|
||||
出入库位,
|
||||
分拣库位,
|
||||
}
|
||||
//public enum EnumLocationType
|
||||
//{
|
||||
// 存储库位 = 0,
|
||||
// 入库库位,
|
||||
// 出库库位,
|
||||
// 出入库位,
|
||||
// 分拣库位,
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,10 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
||||
{
|
||||
public class OutStockStrategyQuery
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 仓库Id
|
||||
/// </summary>
|
||||
public string warehouse_id { get; set; }
|
||||
/// <summary>
|
||||
/// 载具Id
|
||||
/// </summary>
|
||||
@@ -27,5 +30,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
||||
public int BllType { get; set; }
|
||||
|
||||
public int Size { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace Tnb.WarehouseMgr.Interfaces
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
Task<Task<int>> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> updateTask = null, [CallerMemberName] string original = "");
|
||||
Task<Task<int>> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>>? updateTask = null);
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -156,7 +156,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public async Task<Task<int>> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> updateTask = null, [CallerMemberName] string original = "")
|
||||
public async Task<Task<int>> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>>? updateTask = null)
|
||||
{
|
||||
var row = 1;
|
||||
Task<int> resTask = Task.FromResult(row);
|
||||
|
||||
@@ -56,6 +56,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
private async Task<dynamic> Create(VisualDevModelDataCrInput input)
|
||||
{
|
||||
var row = 1;
|
||||
if (input == null) throw new ArgumentNullException(nameof(input));
|
||||
try
|
||||
{
|
||||
@@ -90,7 +91,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _runService.Create(templateEntity, input);
|
||||
List<WmsCarryCode> carryCodes = new();
|
||||
List<WmsCheckstockD> details = new();
|
||||
switch (checkType.ToEnum<EnumCheckType>())
|
||||
switch (checkType!.ToEnum<EnumCheckType>())
|
||||
{
|
||||
case EnumCheckType.全库盘点:
|
||||
carryCodes = await _db.Queryable<BasLocation>().InnerJoin<WmsCarryCode>((a, b) => a.id == b.location_id)
|
||||
@@ -213,10 +214,11 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
row = 0;
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw;
|
||||
}
|
||||
return Task.FromResult(1);
|
||||
return Task.FromResult(row);
|
||||
}
|
||||
|
||||
private Task<List<WmsDistaskH>> FetchDisTasks(Expression<Func<WmsDistaskH, BasLocation, bool>> joinExp, Expression<Func<WmsDistaskH, BasLocation, bool>> whereExp)
|
||||
|
||||
Reference in New Issue
Block a user