using JSMachine.WMS.App.Dto; using JSMachine.WMS.App.Dto.Enum; using JSMachine.WMS.App.IService; using JSMachine.WMS.App.ServiceImpl; using JSMachine.WMS.Business.RcsCallBack.IService.StaePattern; using JSMachine.WMS.RPC.RcsRPC.Dto.In; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace JSMachine.WMS.Business.RcsCallBack.ServiceImpl.StatePattern.PutdownCompleted { /// /// 放货完成处理器 /// public abstract class PutdownCompletedStateHandler : IAgvTaskStateHandler { protected readonly IStorageRackService _storageRackService; protected readonly IAGVTaskService _agvTaskService; protected readonly IElevatorPlcQueueService _elevatorPlcQueueService; protected readonly IElevatorCountService _elevatorCountService; protected readonly IERPTaskService _erpTaskService; public PutdownCompletedStateHandler( IStorageRackService storageRackService, IAGVTaskService agvTaskService, IElevatorPlcQueueService elevatorPlcQueueService, IElevatorCountService elevatorCountService, IERPTaskService erpTaskService ) { _storageRackService = storageRackService; _agvTaskService = agvTaskService; _elevatorPlcQueueService = elevatorPlcQueueService; _elevatorCountService= elevatorCountService; _erpTaskService = erpTaskService; } public abstract Task HandleAsync(AgvExcutionInfo agvExcutionInfo, AGVTaskDto agvTask, StorageRackDto destWarehouse); protected async Task CompleteTask(AGVTaskDto agvTask) { agvTask.TaskStatus = TaskStatusEnum.Completed; await _agvTaskService.UpdateAgvTaskStatus(agvTask); } } }