80 lines
3.1 KiB
C#
80 lines
3.1 KiB
C#
using JSMachine.WMS.App.Dto.Enum;
|
|
using JSMachine.WMS.App.Dto;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using JSMachine.WMS.PLC.ModbusImpl.Elevator.ModbusIO.Read;
|
|
using JSMachine.WMS.PLC.ModbusImpl.Elevator.Model;
|
|
using JSMachine.WMS.App.IService;
|
|
using JSMachine.WMS.Infrastructure;
|
|
using JSMachine.WMS.Infrastructure.Helper;
|
|
|
|
namespace JSMachine.WMS.PLC.ModbusImpl.Elevator.Util
|
|
{
|
|
public static class ElevatorUtil
|
|
{
|
|
private static IStorageRackService IStorageRackService = GlobalServericeProvidor.GetService<IStorageRackService>();
|
|
private static IERPTaskService IERPTaskService = GlobalServericeProvidor.GetService<IERPTaskService>();
|
|
|
|
/// <summary>
|
|
/// 获取可用的提升机库位
|
|
/// </summary>
|
|
/// <param name="floor"></param>
|
|
/// <returns></returns>
|
|
public static async Task<StorageRackDto> GetUsableElevatorChannel(Guid erpTaskId,FloorEnum floor)
|
|
{
|
|
List<StorageRackDto> usableElevatorWareHouse = await IStorageRackService.GetUsableElevatorWareHouse(floor);
|
|
if (usableElevatorWareHouse.IsNullOrEmpty())
|
|
{
|
|
string msg = $"{(floor == FloorEnum.FirstFloor ? 1 : 2)}楼所有提升机库位均被WMS锁定";
|
|
|
|
LogHelper.Warn(msg);
|
|
_ = IERPTaskService.UpdateTaskMsg(erpTaskId, msg);
|
|
|
|
return null;
|
|
}
|
|
|
|
List<ElevatorPlcStatus> elevatorPlcStatuses = await ElevatorStatusRead.ReadAllElevatorStatus();
|
|
|
|
StorageRackDto elevator = null;
|
|
foreach (StorageRackDto elvatorWarehouse in usableElevatorWareHouse)
|
|
{
|
|
int elevatorNo = elvatorWarehouse.StorageRackName.Contains("1号") ? 1 : 2;
|
|
|
|
ElevatorPlcStatus elevatorPlcStatus = elevatorPlcStatuses.First(p => p.ElevatorNo == elevatorNo);
|
|
|
|
if (floor == FloorEnum.FirstFloor)
|
|
{
|
|
if (elvatorWarehouse.ElevatorChannel == 1011 && elevatorPlcStatus.StockInPutdownChanelOne ||
|
|
elvatorWarehouse.ElevatorChannel == 1001 && elevatorPlcStatus.StockInPutdownChanelTwo)
|
|
{
|
|
elevator = elvatorWarehouse;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (elvatorWarehouse.ElevatorChannel == 2011 && elevatorPlcStatus.StockOutPutdownChanelOne ||
|
|
elvatorWarehouse.ElevatorChannel == 2001 && elevatorPlcStatus.StockOutPutdownChanelTwo)
|
|
{
|
|
elevator = elvatorWarehouse;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(elevator == null)
|
|
{
|
|
string msg = $"{(floor == FloorEnum.FirstFloor ? 1 : 2)}楼 提升机库位不允许放货或者被WMS锁定";
|
|
|
|
LogHelper.Warn(msg);
|
|
_ = IERPTaskService.UpdateTaskMsg(erpTaskId, msg);
|
|
}
|
|
|
|
return elevator;
|
|
}
|
|
}
|
|
}
|