新增物料签收记录、调拨出库、电梯优化等
This commit is contained in:
@@ -394,8 +394,15 @@ namespace Tnb.WarehouseMgr
|
||||
_ = await _elevatorControlService.SendOpenCloseCmd(devName, 3); //发送电梯前门开门指令
|
||||
}
|
||||
|
||||
// 3 4号梯只要电梯是当前楼层开门状态就能进
|
||||
bool canEnter = false;
|
||||
if (devName == "Elevator3" || devName == "Elevator4")
|
||||
{
|
||||
canEnter = true;
|
||||
}
|
||||
|
||||
if (sysStatus == (int)EnumSysStatus.正常状态 && runStatus == (int)EnumRunStatus.停梯
|
||||
&& doorStatus == (int)EnumDoorStatus.开门到位保持 && s_eleUseStatusDic[elevator.device_id] == (int)EnumElevatorUseStatus.空闲)
|
||||
&& doorStatus == (int)EnumDoorStatus.开门到位保持 && (s_eleUseStatusDic[elevator.device_id] == (int)EnumElevatorUseStatus.空闲 || canEnter))
|
||||
{
|
||||
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
|
||||
{
|
||||
@@ -732,15 +739,39 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.Information($"【TaskCallback】 根据任务单查找电梯结果 {JsonConvert.SerializeObject(elevator)}");
|
||||
if (!elevator?.device_id.IsNullOrEmpty() ?? false)
|
||||
{
|
||||
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
|
||||
{
|
||||
is_use = (int)EnumElevatorUseStatus.空闲,
|
||||
use_tasks = ""
|
||||
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
|
||||
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.空闲;
|
||||
// 根据disTask StartLocationId 起始库位关联电梯获取设备ID location_code.Continas("")
|
||||
var devName = s_elevatorMap[elevator.device_id]?.ToString();
|
||||
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
|
||||
|
||||
// 3 4号梯需要两托货都取出才能变更为空闲
|
||||
if (devName == "Elevator3" || devName == "Elevator4")
|
||||
{
|
||||
string number = devName.Replace("Elevator", "");
|
||||
List<WmsDistaskH> elevatorTasks = _db.Queryable<WmsDistaskH>()
|
||||
.Where(r => r.startlocation_code.Contains($"DT-1-{number}") && r.endlocation_code.Contains($"RC") && 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();
|
||||
Logger.Information($"【TaskCallback】{devName.Match(@"\d+")}#梯 仍有未取货任务{elevatorTasks}条 {string.Join(',', elevatorTasks.Select(r => r.bill_code))}");
|
||||
if (elevatorTasks.Count == 0)
|
||||
{
|
||||
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
|
||||
{
|
||||
is_use = (int)EnumElevatorUseStatus.空闲,
|
||||
use_tasks = ""
|
||||
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
|
||||
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.空闲;
|
||||
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
|
||||
{
|
||||
is_use = (int)EnumElevatorUseStatus.空闲,
|
||||
use_tasks = ""
|
||||
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
|
||||
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.空闲;
|
||||
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
|
||||
}
|
||||
|
||||
int doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
|
||||
Logger.Information($"【TaskCallback】 设备:{devName},门状态:{doorStatus.ToEnum<EnumDoorStatus>().ToString()}");
|
||||
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.关门到位保持
|
||||
@@ -829,6 +860,25 @@ namespace Tnb.WarehouseMgr
|
||||
use_tasks = ""
|
||||
})
|
||||
.Where(it => it.elevator_id == wmsElevatorH.elevator_id).ExecuteCommandAsync();
|
||||
|
||||
if (input.elevator_code == "Elevator3" || input.elevator_code == "Elevator4")
|
||||
{
|
||||
// 成品出库解锁电梯
|
||||
string number = input.elevator_code.Replace("Elevator", "");
|
||||
List<WmsDistaskH> elevatorTasks = _db.Queryable<WmsDistaskH>()
|
||||
.Where(r => r.startlocation_code.Contains($"DT-3-{number}") && r.endlocation_code.Contains($"DT-1-{number}") && 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();
|
||||
|
||||
foreach (var item in elevatorTasks)
|
||||
{
|
||||
item.status = WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID;
|
||||
}
|
||||
int row = await _db.Updateable(elevatorTasks).ExecuteCommandAsync();
|
||||
Logger.Information($"【WmsElevatorUnlock】操作电梯{input.elevator_code}重置电梯任务{row}条 {string.Join(',', elevatorTasks.Select(r => r.bill_code))}");
|
||||
}
|
||||
|
||||
|
||||
|
||||
s_eleUseStatusDic[wmsElevatorH.elevator_id] = (int)EnumElevatorUseStatus.空闲;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user