53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using JSMachine.WMS.App.Dto;
|
|
using JSMachine.WMS.App.Dto.Enum;
|
|
using JSMachine.WMS.App.IService;
|
|
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
|
|
{
|
|
/// <summary>
|
|
/// 出库码头处理器
|
|
/// </summary>
|
|
public class StockOutWharfHandler : PutdownCompletedStateHandler
|
|
{
|
|
public StockOutWharfHandler
|
|
(IStorageRackService storageRackService,
|
|
IAGVTaskService agvTaskService,
|
|
IElevatorPlcQueueService elevatorPlcQueueService,
|
|
IElevatorCountService elevatorCountService,
|
|
IERPTaskService erpTaskService) :
|
|
base(storageRackService, agvTaskService, elevatorPlcQueueService, elevatorCountService, erpTaskService)
|
|
{
|
|
}
|
|
|
|
public async override Task<bool> HandleAsync(AgvExcutionInfo agvExcutionInfo, AGVTaskDto agvTask, StorageRackDto destWarehouse)
|
|
{
|
|
destWarehouse.BarCode = agvTask.BarCode;
|
|
|
|
agvTask.TaskStatus = TaskStatusEnum.Completed;
|
|
|
|
await UnlockAndSetMiddleWarehouse(destWarehouse);
|
|
|
|
return await _agvTaskService.UpdateAgvTaskStatus(agvTask);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 解锁中区库位并绑定合格证
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private async Task UnlockAndSetMiddleWarehouse(StorageRackDto storageRack)
|
|
{
|
|
if (storageRack.Transport != TransportEnum.MiddleOutArea)
|
|
return;
|
|
|
|
storageRack.IsLock = false;
|
|
await _storageRackService.EditSingalWithSpecificCols(storageRack, ["IsLock", "BarCode"]);
|
|
}
|
|
}
|
|
}
|