三楼人工库逻辑等
This commit is contained in:
@@ -432,7 +432,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
|
||||
{
|
||||
is_use = (int)EnumElevatorUseStatus.占用,
|
||||
use_tasks = $"','{ r.use_tasks }".Trim(',')
|
||||
use_tasks = $"','{r.use_tasks}".Trim(',')
|
||||
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
|
||||
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.占用;
|
||||
Logger.Information($"【UnloadConfirm】 {devName}放货成功 状态变更为占用 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
|
||||
@@ -521,72 +521,76 @@ namespace Tnb.WarehouseMgr
|
||||
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"))
|
||||
|
||||
|
||||
|
||||
if (wmsDistaskH.act_start_date == null)
|
||||
{
|
||||
//WmsElevatorUnlockInput wmsElevatorUnlockInput = new ();
|
||||
//wmsElevatorUnlockInput.elevator_id = wmsDistaskH.device_id;
|
||||
//await WmsElevatorUnlock(wmsElevatorUnlockInput);
|
||||
//Logger.Information($"WCS取消任务{wmsDistaskH.bill_code},自动解占用电梯{wmsDistaskH.device_id}");
|
||||
int unlockStartRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.startlocation_code).ExecuteCommandAsync();
|
||||
if (unlockStartRow > 0)
|
||||
Logger.Information($"成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
}
|
||||
|
||||
int unlockEndRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.endlocation_code).ExecuteCommandAsync();
|
||||
if (unlockEndRow > 0)
|
||||
Logger.Information($"成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
|
||||
#region 当前任务后续未开始的任务全取消,并解锁库位
|
||||
WmsPretaskH curWmsPretaskH = await _db.Queryable<WmsPretaskH>().Where(r => r.bill_code == wmsDistaskH.pretask_code).FirstAsync();
|
||||
List<WmsPretaskH> nextWmsPretaskHs = _db.Queryable<WmsPretaskH>().Where(r => r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID
|
||||
&& r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID && r.carry_code == wmsDistaskH.carry_code && long.Parse(r.id) > long.Parse(curWmsPretaskH.id)).ToList();
|
||||
Logger.Information($"即将取消{wmsDistaskH.bill_code}的后续预任务{nextWmsPretaskHs.Count}条");
|
||||
foreach (WmsPretaskH wmsPretaskH in nextWmsPretaskHs)
|
||||
{
|
||||
// 排除电梯任务 其他任务取消时自动解锁起点和终点库位
|
||||
|
||||
if (wmsDistaskH.act_start_date == null)
|
||||
int _row = await _db.Updateable<WmsPretaskH>().SetColumns(r => new WmsPretaskH
|
||||
{
|
||||
int unlockStartRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.startlocation_code).ExecuteCommandAsync();
|
||||
if (unlockStartRow > 0)
|
||||
{
|
||||
Logger.Information($"成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Information($"未成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
}
|
||||
}
|
||||
|
||||
int unlockEndRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.endlocation_code).ExecuteCommandAsync();
|
||||
if (unlockEndRow > 0)
|
||||
{
|
||||
Logger.Information($"成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
}
|
||||
note = "WCS上传失败(CANCELLED)信号",
|
||||
status = WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID
|
||||
}).Where(P => P.bill_code == wmsPretaskH.bill_code).ExecuteCommandAsync();
|
||||
if (_row > 0)
|
||||
Logger.Information($"成功取消后续预任务{wmsPretaskH.bill_code}");
|
||||
else
|
||||
{
|
||||
Logger.Information($"未成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
}
|
||||
|
||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.carry_code == wmsDistaskH.carry_code).FirstAsync();
|
||||
wmsCarryH.is_lock = 0;
|
||||
if (wmsDistaskH.startlocation_code.Contains("BGWRKYCL0"))
|
||||
{
|
||||
wmsCarryH.location_id = WmsWareHouseConst.LOCATION_YCLBGWDRK;
|
||||
wmsCarryH.location_code = "YCLBGWDRK";
|
||||
}
|
||||
|
||||
int unlockCarryRow = await _db.Updateable(wmsCarryH).ExecuteCommandAsync();
|
||||
if (unlockCarryRow > 0)
|
||||
{
|
||||
Logger.Information($"成功解锁载具{wmsDistaskH.carry_code}");
|
||||
}
|
||||
Logger.Information($"未成功取消后续预任务{wmsPretaskH.bill_code}");
|
||||
int _unlockStartRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsPretaskH.startlocation_code).ExecuteCommandAsync();
|
||||
if (_unlockStartRow > 0)
|
||||
Logger.Information($"成功解锁起点库位{wmsPretaskH.startlocation_code}");
|
||||
else
|
||||
{
|
||||
Logger.Information($"未成功解锁载具{wmsDistaskH.carry_code}");
|
||||
}
|
||||
|
||||
Logger.Information($"未成功解锁起点库位{wmsPretaskH.startlocation_code}");
|
||||
int _unlockEndRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsPretaskH.endlocation_code).ExecuteCommandAsync();
|
||||
if (_unlockEndRow > 0)
|
||||
Logger.Information($"成功解锁终点库位{wmsPretaskH.endlocation_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁终点库位{wmsPretaskH.endlocation_code}");
|
||||
}
|
||||
#endregion
|
||||
|
||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.carry_code == wmsDistaskH.carry_code).FirstAsync();
|
||||
wmsCarryH.is_lock = 0;
|
||||
if (wmsDistaskH.startlocation_code.Contains("BGWRKYCL0"))
|
||||
{
|
||||
wmsCarryH.location_id = WmsWareHouseConst.LOCATION_YCLBGWDRK;
|
||||
wmsCarryH.location_code = "YCLBGWDRK";
|
||||
}
|
||||
|
||||
int unlockCarryRow = await _db.Updateable(wmsCarryH).ExecuteCommandAsync();
|
||||
if (unlockCarryRow > 0)
|
||||
Logger.Information($"成功解锁载具{wmsDistaskH.carry_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁载具{wmsDistaskH.carry_code}");
|
||||
|
||||
}
|
||||
|
||||
// 任务链取消
|
||||
await _db.Updateable<WmsPretaskH>().SetColumns(r => new WmsPretaskH
|
||||
{
|
||||
note = "WCS上传取消(CANCELLED)信号",
|
||||
@@ -607,7 +611,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case "SUCCEED": break;
|
||||
@@ -645,70 +649,74 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行取消电梯任务时 任务数变更{eleRow}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行电梯任务时 电梯id{e.device_id}找不到对应电梯资料");
|
||||
}
|
||||
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 执行取消电梯任务时 电梯id{e.device_id}找不到对应电梯资料");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Information($"【TaskChainCallBack】{wmsDistaskH.bill_code} 判断不是在执行电梯任务");
|
||||
|
||||
|
||||
|
||||
if (wmsDistaskH.act_start_date == null)
|
||||
{
|
||||
int unlockStartRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.startlocation_code).ExecuteCommandAsync();
|
||||
if (unlockStartRow > 0)
|
||||
Logger.Information($"成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
}
|
||||
|
||||
if (wmsDistaskH.startlocation_code.Contains("DT") || wmsDistaskH.endlocation_code.Contains("DT"))
|
||||
{
|
||||
//WmsElevatorUnlockInput wmsElevatorUnlockInput = new ();
|
||||
//wmsElevatorUnlockInput.elevator_id = wmsDistaskH.device_id;
|
||||
//await WmsElevatorUnlock(wmsElevatorUnlockInput);
|
||||
//Logger.Information($"WCS取消任务{wmsDistaskH.bill_code},自动解占用电梯{wmsDistaskH.device_id}");
|
||||
}
|
||||
int unlockEndRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.endlocation_code).ExecuteCommandAsync();
|
||||
if (unlockEndRow > 0)
|
||||
Logger.Information($"成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
|
||||
#region 当前任务后续未开始的任务全取消,并解锁库位
|
||||
WmsPretaskH curWmsPretaskH = await _db.Queryable<WmsPretaskH>().Where(r => r.bill_code == wmsDistaskH.pretask_code).FirstAsync();
|
||||
List<WmsPretaskH> nextWmsPretaskHs = _db.Queryable<WmsPretaskH>().Where(r => r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID
|
||||
&& r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID && r.carry_code == wmsDistaskH.carry_code && long.Parse(r.id) > long.Parse(curWmsPretaskH.id)).ToList();
|
||||
Logger.Information($"即将取消{wmsDistaskH.bill_code}的后续预任务{nextWmsPretaskHs.Count}条");
|
||||
foreach (WmsPretaskH wmsPretaskH in nextWmsPretaskHs)
|
||||
{
|
||||
// 排除电梯任务 其他任务取消时自动解锁起点和终点库位
|
||||
|
||||
if (wmsDistaskH.act_start_date == null)
|
||||
int _row = await _db.Updateable<WmsPretaskH>().SetColumns(r => new WmsPretaskH
|
||||
{
|
||||
int unlockStartRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.startlocation_code).ExecuteCommandAsync();
|
||||
if (unlockStartRow > 0)
|
||||
{
|
||||
Logger.Information($"成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Information($"未成功解锁起点库位{wmsDistaskH.startlocation_code}");
|
||||
}
|
||||
}
|
||||
|
||||
int unlockEndRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsDistaskH.endlocation_code).ExecuteCommandAsync();
|
||||
if (unlockEndRow > 0)
|
||||
{
|
||||
Logger.Information($"成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
}
|
||||
note = "WCS上传失败(FAILURE)信号",
|
||||
status = WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID
|
||||
}).Where(P => P.bill_code == wmsPretaskH.bill_code).ExecuteCommandAsync();
|
||||
if (_row > 0)
|
||||
Logger.Information($"成功取消后续预任务{wmsPretaskH.bill_code}");
|
||||
else
|
||||
{
|
||||
Logger.Information($"未成功解锁终点库位{wmsDistaskH.endlocation_code}");
|
||||
}
|
||||
|
||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.carry_code == wmsDistaskH.carry_code).FirstAsync();
|
||||
wmsCarryH.is_lock = 0;
|
||||
if (wmsDistaskH.startlocation_code.Contains("BGWRKYCL0"))
|
||||
{
|
||||
wmsCarryH.location_id = WmsWareHouseConst.LOCATION_YCLBGWDRK;
|
||||
wmsCarryH.location_code = "YCLBGWDRK";
|
||||
}
|
||||
|
||||
int unlockCarryRow = await _db.Updateable(wmsCarryH).ExecuteCommandAsync();
|
||||
if (unlockCarryRow > 0)
|
||||
{
|
||||
Logger.Information($"成功解锁载具{wmsDistaskH.carry_code}");
|
||||
}
|
||||
Logger.Information($"未成功取消后续预任务{wmsPretaskH.bill_code}");
|
||||
int _unlockStartRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsPretaskH.startlocation_code).ExecuteCommandAsync();
|
||||
if (_unlockStartRow > 0)
|
||||
Logger.Information($"成功解锁起点库位{wmsPretaskH.startlocation_code}");
|
||||
else
|
||||
{
|
||||
Logger.Information($"未成功解锁载具{wmsDistaskH.carry_code}");
|
||||
}
|
||||
Logger.Information($"未成功解锁起点库位{wmsPretaskH.startlocation_code}");
|
||||
int _unlockEndRow = await _db.Updateable<BasLocation>().SetColumns(r => r.is_lock == 0).Where(r => r.location_code == wmsPretaskH.endlocation_code).ExecuteCommandAsync();
|
||||
if (_unlockEndRow > 0)
|
||||
Logger.Information($"成功解锁终点库位{wmsPretaskH.endlocation_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁终点库位{wmsPretaskH.endlocation_code}");
|
||||
}
|
||||
#endregion
|
||||
|
||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.carry_code == wmsDistaskH.carry_code).FirstAsync();
|
||||
wmsCarryH.is_lock = 0;
|
||||
if (wmsDistaskH.startlocation_code.Contains("BGWRKYCL0"))
|
||||
{
|
||||
wmsCarryH.location_id = WmsWareHouseConst.LOCATION_YCLBGWDRK;
|
||||
wmsCarryH.location_code = "YCLBGWDRK";
|
||||
}
|
||||
|
||||
int unlockCarryRow = await _db.Updateable(wmsCarryH).ExecuteCommandAsync();
|
||||
if (unlockCarryRow > 0)
|
||||
Logger.Information($"成功解锁载具{wmsDistaskH.carry_code}");
|
||||
else
|
||||
Logger.Information($"未成功解锁载具{wmsDistaskH.carry_code}");
|
||||
}
|
||||
|
||||
|
||||
// 任务链取消
|
||||
await _db.Updateable<WmsPretaskH>().SetColumns(r => new WmsPretaskH
|
||||
{
|
||||
note = "WCS上传失败(FAILURE)信号",
|
||||
@@ -729,7 +737,7 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case "FINISHED":
|
||||
@@ -771,6 +779,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态上报
|
||||
/// </summary>
|
||||
@@ -781,7 +790,7 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
var disTask = await _db.Queryable<WmsDistaskH>().FirstAsync(it => it.bill_code == input.taskCode);
|
||||
|
||||
|
||||
|
||||
Logger.Information($"【TaskCallback】 【接收】{input.taskCode} WCS信号 任务状态上报->接收参数:{JsonConvert.SerializeObject(input)}");
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user