现场问题处理,电梯逻辑处理
This commit is contained in:
@@ -2179,14 +2179,20 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
// 剩余可放托数
|
||||
await db_agvElevatorTaskExceptionHandles.Updateable<BasFactoryConfig>().SetColumns(r => r.value == "2")
|
||||
.Where(r => r.key == "floor3FirstSelectElevatorTasknums").ExecuteCommandAsync();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
List<WmsCarryH> wmsCarryHs = await db_agvElevatorTaskExceptionHandles.Queryable<WmsCarryH>().Where(r => r.location_id == startloc.id).ToListAsync();
|
||||
if (wmsCarryHs.Count > 1)
|
||||
if (wmsCarryHs.Count > 1)
|
||||
{
|
||||
LoggerAgvElevatorTask.LogWarning($"暂存区库位{startloc.location_code}上存在多个托盘{string.Join(',', wmsCarryHs.Select(x => x.carry_code))}");
|
||||
continue;
|
||||
@@ -2199,6 +2205,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
WmsCarryH wmsCarryH = wmsCarryHs.FirstOrDefault();
|
||||
|
||||
WmsElevatorH wmsElevatorH = null;
|
||||
|
||||
string elevatorSno = "";
|
||||
// 选电梯
|
||||
if (group.Key == WmsWareHouseConst.REGION_CPOutstockCache_ID)
|
||||
{
|
||||
@@ -2206,10 +2214,32 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
var floor3FirstSelectElevatorTasknums = await db_agvElevatorTaskExceptionHandles.Queryable<BasFactoryConfig>().Where(p => p.key == "floor3FirstSelectElevatorTasknums").FirstAsync();
|
||||
|
||||
wmsElevatorH = await db_agvElevatorTaskExceptionHandles.Queryable<WmsElevatorH>().Where(r => r.elevator_code == floor3FirstSelectElevator.value).FirstAsync();
|
||||
elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
|
||||
// 检查有没有同时从同个暂存区分区发到同个电梯任务
|
||||
if (wmsElevatorH.task_nums + wmsElevatorH.carry_count > 0)
|
||||
{
|
||||
List<string> currentAreaLocs = await db_agvElevatorTaskExceptionHandles.Queryable<WmsElevatorcacheArea>().Where(r => r.name == 切换发货区).Select(r => r.location_code).ToListAsync();
|
||||
// 同个暂存分区同个电梯的托盘
|
||||
List<string> _carrys = await db_agvElevatorTaskExceptionHandles.Queryable<WmsPretaskH>()
|
||||
.InnerJoin<WmsPretaskH>((a, b) => currentAreaLocs.Contains(a.startlocation_code) && a.carry_code == b.carry_code
|
||||
&& a.endlocation_code == b.startlocation_code && a.endlocation_code == $"DT-3-{elevatorSno}")
|
||||
.Where((a, b) => (a.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID && a.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID)
|
||||
|| (b.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID && b.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID)).Select((a, b) => a.carry_code).ToListAsync();
|
||||
|
||||
if (_carrys.Count > 0)
|
||||
{
|
||||
LoggerAgvElevatorTask.LogInformation($"出现同时从同个暂存区分区发到同个电梯{wmsElevatorH.elevator_code}的托盘{string.Join(',', _carrys)},等待托盘任务完成");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
floor3FirstSelectElevatorTasknums.value = (int.Parse(floor3FirstSelectElevatorTasknums.value) - 1).ToString();
|
||||
if (floor3FirstSelectElevatorTasknums.value == "0")
|
||||
{
|
||||
LoggerAgvElevatorTask.LogInformation($"重置首选电梯为{(wmsElevatorH.elevator_code == "Elevator3" ? "Elevator4" : "Elevator3")}");
|
||||
// 选择另一个电梯座位首选电梯
|
||||
await db_agvElevatorTaskExceptionHandles.Updateable<BasFactoryConfig>().SetColumns(r => r.value == (r.value == "Elevator3" ? "Elevator4" : "Elevator3"))
|
||||
.Where(r => r.key == "floor3FirstSelectElevator").ExecuteCommandAsync();
|
||||
@@ -2221,8 +2251,6 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
.Where(r => r.key == "floor3FirstSelectElevatorTasknums").ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", "");
|
||||
|
||||
List<WmsPointH> wmsPointHs = await db_agvElevatorTaskExceptionHandles.Queryable<WmsPointH>().Where(it => it.status == 1).ToListAsync();
|
||||
List<WmsPointH> points = new List<WmsPointH>();
|
||||
|
||||
@@ -2280,6 +2308,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
bool isOk = await _wareHouseService.GenPreTask(preTasks, null!, db_agvElevatorTaskExceptionHandles);
|
||||
if (isOk)
|
||||
{
|
||||
LoggerAgvElevatorTask.LogInformation($"成功下发预任务 {string.Join(',', preTasks.Select(r => r.bill_code))}");
|
||||
LoggerAgvElevatorTask.LogInformation($"成功下发载具 {string.Join(',', preTasks.Select(r => r.carry_code))}");
|
||||
//查询库位表
|
||||
BasLocation location = await db_agvElevatorTaskExceptionHandles.Queryable<BasLocation>().SingleAsync(it => it.id == startloc.id);
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user