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

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

@@ -491,6 +491,31 @@ namespace Tnb.WarehouseMgr
foreach (WmsDistaskH wmsDistaskH in wmsDistaskHs)
{
// 如果是三楼出库任务 扣减电梯任务数
ElevagorInfoQuery q = new() { endlocation_id = wmsDistaskH.endlocation_id, taskCode = wmsDistaskH.bill_code };
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 判断是否在执行取消电梯任务 {JsonConvert.SerializeObject(q)}");
var e = await _wareHouseService.FindElevatorFromPars(q);
if (e != null)
{
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行取消电梯任务时 根据任务单号获取电梯结果 {JsonConvert.SerializeObject(e)}");
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(r => r.elevator_id == e.device_id).FirstAsync();
if (wmsElevatorH != null)
{
int eleRow = await _db.Updateable<WmsElevatorH>().SetColumns(r => r.task_nums == r.task_nums - 1).Where(r => r.id == wmsElevatorH.id).ExecuteCommandAsync();
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行取消电梯任务时 任务数变更{eleRow}");
}
else
{
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行取消电梯任务时 电梯id{e.device_id}找不到对应电梯资料");
}
}
else
{
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 判断不是在执行取消电梯任务");
}
if (wmsDistaskH.startlocation_code.Contains("DT") || wmsDistaskH.endlocation_code.Contains("DT"))
{
//WmsElevatorUnlockInput wmsElevatorUnlockInput = new ();
@@ -590,7 +615,29 @@ namespace Tnb.WarehouseMgr
List<WmsDistaskH> wmsDistaskHs = _db.Queryable<WmsDistaskH>().Where(P => P.bill_code.Contains(input.taskChainCode)).ToList();
foreach (WmsDistaskH wmsDistaskH in wmsDistaskHs)
{
{// 如果是三楼出库任务 扣减电梯任务数
ElevagorInfoQuery q = new() { endlocation_id = wmsDistaskH.endlocation_id, taskCode = wmsDistaskH.bill_code };
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 判断是否在执行电梯任务 {JsonConvert.SerializeObject(q)}");
var e = await _wareHouseService.FindElevatorFromPars(q);
if (e != null)
{
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行电梯任务时 根据任务单号获取电梯结果 {JsonConvert.SerializeObject(e)}");
WmsElevatorH wmsElevatorH = await _db.Queryable<WmsElevatorH>().Where(r => r.elevator_id == e.device_id).FirstAsync();
if (wmsElevatorH != null)
{
int eleRow = await _db.Updateable<WmsElevatorH>().SetColumns(r => r.task_nums == r.task_nums - 1).Where(r => r.id == wmsElevatorH.id).ExecuteCommandAsync();
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行取消电梯任务时 任务数变更{eleRow}");
}
else
{
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行电梯任务时 电梯id{e.device_id}找不到对应电梯资料");
}
}
else
{
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 判断不是在执行电梯任务");
}
if (wmsDistaskH.startlocation_code.Contains("DT") || wmsDistaskH.endlocation_code.Contains("DT"))
{
//WmsElevatorUnlockInput wmsElevatorUnlockInput = new ();
@@ -874,8 +921,7 @@ namespace Tnb.WarehouseMgr
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
{
is_use = (int)EnumElevatorUseStatus.,
use_tasks = "",
task_nums = 0
use_tasks = ""
})
.Where(it => it.elevator_id == wmsElevatorH.elevator_id).ExecuteCommandAsync();
@@ -884,14 +930,17 @@ namespace Tnb.WarehouseMgr
.Where(r => r.startlocation_code.Contains($"DT") && r.endlocation_code.Contains($"DT") && r.act_start_date == null && r.act_end_date == null
&& r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList();
int eleUpdateRow = 0;
foreach (var item in elevatorTasks)
{
item.status = WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID;
eleUpdateRow += await _db.Updateable<WmsElevatorH>().SetColumns(it => new WmsElevatorH { task_nums = it.task_nums - 1 }).Where(it => item.area_code == it.area_code).ExecuteCommandAsync();
}
int row = await _db.Updateable(elevatorTasks).ExecuteCommandAsync();
Logger.Information($"【WmsElevatorUnlock】操作电梯{input.elevator_code}重置电梯任务{row}条 {string.Join(',', elevatorTasks.Select(r => r.bill_code))}");
Logger.Information($"【WmsElevatorUnlock】操作电梯{input.elevator_code}扣减电梯任务数{eleUpdateRow}条 {string.Join(',', elevatorTasks.Select(r => r.bill_code))}");
s_eleUseStatusDic[wmsElevatorH.elevator_id] = (int)EnumElevatorUseStatus.;