电梯并行优化,取消与重置任务逻辑优化

This commit is contained in:
2024-08-26 17:42:10 +08:00
parent f56c0ed321
commit 688e82e07e
7 changed files with 262 additions and 139 deletions

View File

@@ -2466,6 +2466,7 @@ namespace Tnb.WarehouseMgr
await db.Ado.RollbackTranAsync();
}
}
/// <summary>
/// 任务完成
/// </summary>
@@ -2483,7 +2484,7 @@ namespace Tnb.WarehouseMgr
//更新任务执行表,单据状态为 完成
_ = await db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID, act_end_date = DateTime.Now }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync();
List<WmsDistaskH> disTasks = await db.Queryable<WmsDistaskH>().InnerJoin<WmsCarryH>((a, b) => a.carry_id == b.id).Where(a => input.disTaskIds.Contains(a.id)).Select((a, b) => new WmsDistaskH { carry_status = b.carry_status }, true).ToListAsync();
Logger.Information($"【TaskComplate】 disTasks 值 {JsonConvert.SerializeObject(disTasks)}");
if (disTasks?.Count > 0)
{
@@ -2491,8 +2492,19 @@ namespace Tnb.WarehouseMgr
List<string> preTaskIds = disTasks.Select(x => x.pretask_id).ToList();
_ = await db.Updateable<WmsPretaskH>().SetColumns(it => new WmsPretaskH { status = WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID }).Where(it => preTaskIds.Contains(it.id)).ExecuteCommandAsync();
//更新电梯任务数量
_ = await db.Updateable<WmsElevatorH>().SetColumns(it => new WmsElevatorH { task_nums = it.task_nums - 1}).Where(it => disTasks.Select(x => x.area_code).Contains(it.area_code)).ExecuteCommandAsync();
WmsElevatorH wmsElevatorH = await db.Queryable<WmsElevatorH>().Where(r => disTasks.Select(x => x.area_code).Contains(r.area_code)).FirstAsync();
if (wmsElevatorH != null)
{
Logger.LogInformation($"【TaskComplate】更新前电梯{disTasks[0].area_code}信息{JsonConvert.SerializeObject(wmsElevatorH)}");
//更新电梯任务数量
int eleUpdateRow = 0;
foreach (var disTask in disTasks)
{
eleUpdateRow += await db.Updateable<WmsElevatorH>().SetColumns(it => new WmsElevatorH { task_nums = it.task_nums - 1 }).Where(it => disTask.area_code == it.area_code).ExecuteCommandAsync();
}
Logger.LogInformation($"【TaskComplate】更新前电梯{disTasks[0].area_code}任务行数{eleUpdateRow}");
}
// 更新任务数量
_ = await db.Updateable<BasLocation>().SetColumns(it => new BasLocation { task_nums = it.task_nums - 1 }).Where(it => disTasks.Select(x => x.endlocation_code).Contains(it.location_code)).ExecuteCommandAsync();