山东雷驰
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
5.9 KiB

3 months ago
using Kean.Application.Command.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
/// <summary>
/// 表示任务命令服务
/// </summary>
public interface ITaskService
{
/// <summary>
/// 创建上架任务
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int Id, Failure Failure)> Infeed(ViewModels.Task task);
/// <summary>
/// 创建下架任务
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int Id, Failure Failure)> Outfeed(ViewModels.Task task);
/// <summary>
/// 创建移库任务
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int Id, Failure Failure)> Transfer(ViewModels.Task task);
/// <summary>
/// 创建输送任务
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int Id, Failure Failure)> Bypass(ViewModels.Task task);
/// <summary>
/// 任务执行
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<Failure> Execute(int id);
/// <summary>
/// 任务取消
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<Failure> Cancel(int id);
/// <summary>
/// 任务完成
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<Failure> Complete(int id);
/// <summary>
/// 任务阻塞
/// </summary>
/// <param name="id">标识</param>
/// <param name="message">异常信息</param>
/// <returns>失败信息</returns>
Task<Failure> Block(int id, string message);
/// <summary>
/// 货位禁用
/// </summary>
/// <param name="warehouse">库房</param>
/// <param name="cells">货位</param>
/// <returns>货位状态及失败信息</returns>
Task<(IEnumerable<bool?> States, Failure Failure)> Disable(int warehouse, IEnumerable<string> cells, string celltag);
/// <summary>
/// 货位启用
/// </summary>
/// <param name="warehouse">库房</param>
/// <param name="cells">货位</param>
/// <returns>货位状态及失败信息</returns>
Task<(IEnumerable<bool?> States, Failure Failure)> Enable(int warehouse, IEnumerable<string> cells);
////////////////////////////////////////////////////
/// <summary>
/// 创建申请出库任务
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int Id, Failure Failure)> ApplyOut(ViewModels.Task task);
/// <summary>
/// 创建托盘出库任务
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int Id, Failure Failure)> PalletOut(ViewModels.Task task);
/// <summary>
/// AGV申请出库
/// </summary>
Task<(string barcode, Failure Failure)> AgvApplyOut(string requestNo,
string code,
Batch batch,
string qty,
string slTarget,
string postUser);
/// <summary>
/// 重新上传海辰WMS数据
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<(string message, Failure failure)> ReuploadHiWMS(int id);
///// <summary>
///// 创建直接出库任务
///// </summary>
///// <param name="task">任务视图</param>
///// <returns>分配的 ID 及失败信息</returns>
//Task<(int Id, Failure failure)> DirectOutbound(ViewModels.Task task);
/// <summary>
/// 设置应急模式
/// </summary>
/// <returns>失败信息</returns>
Task<Failure> Emergency(string stationCode, string stationModel, int @operator);
/// <summary>
/// 强制完成设置膜卷质量状态
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<(string message, Failure failure)> SetRollTaskByLocalComplete(int id, int @operator);
/// <summary>
/// 人工重报完成
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int taskid, Failure failure)> RecompleteForNoAgv(ViewModels.Task task);
/// <summary>
/// 人工重报完成
/// </summary>
/// <param name="task">任务视图</param>
/// <returns>分配的 ID 及失败信息</returns>
Task<(int taskid, Failure failure)> RecompleteForNoHiwms(ViewModels.Task task);
/// <summary>
/// 任务WCS请求删除
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<Failure> CallDelete(int id);
/// <summary>
/// 设置任务优先级
/// </summary>
/// <param name="id">标识</param>
/// <returns>失败信息</returns>
Task<Failure> SetPriority(ViewModels.Task task);
/// <summary>
/// 取消出库申请
/// </summary>
Task<Failure> CancelAgvApplyOut(string requestNo, string postUser);
/// <summary>
/// 空托盘自动出库
/// </summary>
Task<Failure> AutoPalletOut();
}
}