using JSMachine.WMS.App.Dto;
using JSMachine.WMS.App.Dto.Enum;
using JSMachine.WMS.Business.Common.Models;
namespace JSMachine.WMS.Business.Common.IService
{
///
/// WMS 公共业务服务,协调库位、ERP 任务和 AGV 任务之间的调度关系。
///
public interface ICommonService
{
///
/// 库位所在列是否被锁定(有待完成的任务)
///
///
///
Task IsColLock(StorageRackDto storageRack);
///
/// 跟据erp任务获取已经生成的agv任务列表(不包含已经取消的任务)
///
///
///
Task> GetCreatedAgvTasksFromErpTask(ERPTaskDto erpTask,TaskTypeEnum taskType);
///
/// 生成中转任务。指定起点,终点为中转区
///
///
///
Task CreateAgvTaskToTransferArea(StorageRackDto startPosition, TaskTypeEnum taskType, ERPTaskDto erpTask);
///
/// 中转区作业调度 起点为中转区域 终点需计算
///
///
///
Task CreateAgvTaskFromTransferArea(StorageRackDto startPosition, AGVTaskDto lastAgvTaskRelated, ERPTaskDto erpTask);
///
/// 生成agv任务并插入数据库
///
///
///
///
///
Task CreateAndInsertAgvTask(AgvTaskCreationParam agvTaskCreationParam);
///
/// 获取可用提升机库位
///
/// 楼层
/// 任务类型 1-入库 2-出库
///
Task GetUsableElevator(FloorEnum floor, int taskType);
}
}