将之前,电梯任务执行结束后通知的逻辑代码补上

This commit is contained in:
alex
2023-10-09 17:04:27 +08:00
parent a350f122f6
commit 7635cc18c3
2 changed files with 112 additions and 7 deletions

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aliyun.OSS;
using JNPF;
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
@@ -276,15 +277,36 @@ namespace Tnb.WarehouseMgr
if (elevatorQueueItem != null)
{
var disTask = disTasks.Find(x => x.id == elevatorQueueItem.distask_id);
if (disTask?.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID)
//if (disTask?.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID)
{
var doorStatus = await _elevatorControlService.GetTagAsync(elevatorQueueItem.elevator_code, ElevatorConsts.DoorStatus);
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.)
{
await _elevatorControlService.SendOpenCloseCmd(elevatorQueueItem.elevator_code, 4); //向电梯发送前门关门指令
}
//发送到3楼的指令
var reuslt = await _elevatorControlService.WriteTagAsync(elevatorQueueItem.elevator_code, ElevatorConsts.FloorExecute, 4);
var floor = disTask.end_floor.ParseToInt();
if (floor == 4)
floor = 5;
else if (floor == 3)
floor = 4;
else if (floor == 2)
floor = 3;
//发送到目标楼的指令
CancellationTokenSource cts = new();
var reuslt = await _elevatorControlService.WriteTagAsync(elevatorQueueItem.elevator_code, ElevatorConsts.FloorExecute, floor);
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1);
await Task.Run(async () =>
{
do
{
tuple = await _elevatorControlService.GetElevatorStatus(elevatorQueueItem.elevator_code, cts.Token);
} while (tuple.sysStatus != 3 && tuple.runStatus != 0 && tuple.floorNo != disTask.end_floor.ParseToInt());
}, cts.Token);
if (sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus. &&
agvStatus.ToEnum<EnumAgvStatus>() != EnumAgvStatus.AGV运行状态 && floorNo != 4)
}
}
}