电梯并行优化,取消与重置任务逻辑优化
This commit is contained in:
@@ -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.空闲;
|
||||
|
||||
Reference in New Issue
Block a user