wms 通用函数提交

This commit is contained in:
alex
2023-06-14 18:09:08 +08:00
parent b114083464
commit 7a418a2aa6
4 changed files with 65 additions and 5 deletions

View File

@@ -355,21 +355,49 @@ namespace Tnb.WarehouseMgr
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task TaskExecuteAfter()
public async Task TaskExecuteAfter(TaskExecuteAfterUpInput input)
{
//更新任务执行表单据状态
//清空载具库位数据
//清空起始库位,状态改为空闲、锁定状态,未锁定
try
{
await _db.Ado.BeginTranAsync();
await _db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_RUNING_ID }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync();
//清空载具库位数据
var carryIds = await _db.Queryable<WmsDistaskH>().Where(it => input.disTaskIds.Contains(it.id)).Select(it => it.carry_id).ToListAsync();
if (carryIds?.Count > 0)
{
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { location_id = null, location_code = null }).Where(it => carryIds.Contains(it.id)).ExecuteCommandAsync();
}
var startLocationIds = await _db.Queryable<WmsDistaskH>().Where(it => input.disTaskIds.Contains(it.id)).Select(it => it.startlocation_id).ToListAsync();
//更新起始库位,状态改为空闲、锁定状态,未锁定
if (startLocationIds?.Count > 0)
{
await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = "0", is_lock = 0 }).Where(it => startLocationIds.Contains(it.id)).ExecuteCommandAsync();
}
await _db.Ado.CommitTranAsync();
}
catch (Exception)
{
await _db.Ado.RollbackTranAsync();
}
}
/// <summary>
/// 任务完成
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task TaskComplate()
public async Task TaskComplate(TaskCompleUpInput input)
{
//更新任务执行表,单据状态为 完成
await _db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync();
//更新预任务申请表,单据状态为 已完成
var preTaskIds = await _db.Queryable<WmsDistaskH>().Where(it => input.disTaskIds.Contains(it.id)).Select(it => it.pretask_id).ToListAsync();
if(preTaskIds?.Count > 0)
{
await _db.Updateable<WmsPretaskH>().SetColumns(it => new WmsPretaskH { status = WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID }).Where(it => preTaskIds.Contains(it.id)).ExecuteCommandAsync();
}
//更新载具,锁定状态为未锁定,更新载具的库位当前任务的目标库位
//更新库位信息,使用状态为 使用,锁定状态为未锁定
//更新业务主表的单据状态