first commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user