using JSMachine.WMS.App.Dto; using JSMachine.WMS.App.Dto.Enum; using JSMachine.WMS.App.IService; using JSMachine.WMS.Business.SSE; using JSMachine.WMS.RPC.RcsRPC.Dto.In; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static JSMachine.WMS.App.Dto.StorageRackDto; namespace JSMachine.WMS.Business.RcsCallBack.ServiceImpl.StatePattern.PutdownCompleted { public class TransitAreaHandler : PutdownCompletedStateHandler { public TransitAreaHandler( IStorageRackService storageRackService, IAGVTaskService agvTaskService, IElevatorPlcQueueService elevatorPlcQueueService, IElevatorCountService elevatorCountService, IERPTaskService erpTaskService) : base(storageRackService, agvTaskService, elevatorPlcQueueService, elevatorCountService, erpTaskService) { } public async override Task HandleAsync(AgvExcutionInfo agvExcutionInfo, AGVTaskDto agvTask, StorageRackDto destWarehouse) { //1.将物料绑定到目标库位 //2.解锁目标库位 //3.更改agv任务为完成 destWarehouse.BingdingMaterial(new MateriaInfo { BarCode = agvTask.BarCode, MateriaBatch = agvTask.MateriaBatch, MateriaCode = agvTask.MateriaCode, MateriaName = agvTask.MateriaName, MateriaNum = agvTask.MateriaNum.ToString(), MateriaType = agvTask.MateriaType, OrderNo = agvTask.OrderNo }); destWarehouse.IsLock = false; await _storageRackService.EditSingal(destWarehouse); await CompleteTask(agvTask); //发送广播通知前端网站刷新页面 SseEngine.BrodCast(agvTask.Floor.ToString()); return true; } } }