| #region << 版 本 注 释 >> | 
|   | 
| /*---------------------------------------------------------------- | 
|  * 命名空间:WIDESEAWCS_ITaskInfoService | 
|  * 创建者:胡童庆 | 
|  * 创建时间:2024/8/2 16:13:36 | 
|  * 版本:V1.0.0 | 
|  * 描述: | 
|  * | 
|  * ---------------------------------------------------------------- | 
|  * 修改人: | 
|  * 修改时间: | 
|  * 版本:V1.0.1 | 
|  * 修改说明: | 
|  * | 
|  *----------------------------------------------------------------*/ | 
|   | 
| #endregion << 版 本 注 释 >> | 
|   | 
| using SqlSugar; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Diagnostics.CodeAnalysis; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEAWCS_Core; | 
| using WIDESEAWCS_Core.BaseServices; | 
| using WIDESEAWCS_Core.Enums; | 
| using WIDESEAWCS_DTO.TaskInfo; | 
| using WIDESEAWCS_Model.Models; | 
| using WIDESEAWCS_Common.TaskEnum; | 
|   | 
| namespace WIDESEAWCS_ITaskInfoService | 
| { | 
|     public interface ITaskService : IService<Dt_Task> | 
|     { | 
|         /// <summary> | 
|         /// 任务排序 | 
|         /// </summary> | 
|         public Dictionary<string, OrderByType> TaskOrderBy { get; set; } | 
|   | 
|         /// <summary> | 
|         /// 所有入库任务类型 | 
|         /// </summary> | 
|         public List<int> TaskInboundTypes { get; } | 
|   | 
|         /// <summary> | 
|         /// 所有出库任务类型 | 
|         /// </summary> | 
|         public List<int> TaskOutboundTypes { get; } | 
|   | 
|         /// <summary> | 
|         /// 接收WMS任务信息 | 
|         /// </summary> | 
|         /// <param name="taskDTOs">WMS任务对象集合</param> | 
|         /// <returns>返回处理结果</returns> | 
|         WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs); | 
|   | 
|         /// <summary> | 
|         /// 接收WMS任务信息 | 
|         /// </summary> | 
|         /// <param name="taskDTOs">WMS任务对象集合</param> | 
|         /// <returns>返回处理结果</returns> | 
|         WebResponseContent ReceiveByWMSTask([NotNull] WMSTaskDTO taskDTOs); | 
|   | 
|         /// <summary> | 
|         /// 接收WMS任务信息 | 
|         /// </summary> | 
|         /// <param name="taskDTOs">WMS任务对象集合</param> | 
|         /// <returns>返回处理结果</returns> | 
|         WebResponseContent ReceiveByWMSGWTask([NotNull] WMSTaskDTO taskDTO); | 
|   | 
|         /// <summary> | 
|         /// 根据托盘号、起始地址向WMS请求任务 | 
|         /// </summary> | 
|         /// <param name="palletCode">托盘号</param> | 
|         /// <param name="sourceAddress">起始地址</param> | 
|         /// <returns></returns> | 
|         Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress); | 
|   | 
|         /// <summary> | 
|         /// 请求出库至包装 | 
|         /// </summary> | 
|         /// <param name="stationManager"></param> | 
|         /// <returns></returns> | 
|         Task<WebResponseContent> RequestOutTaskToBZAsync(Dt_StationManager stationManager); | 
|   | 
|         /// <summary> | 
|         /// 根据托盘号、起始地址向WMS请求任务 | 
|         /// </summary> | 
|         /// <param name="palletCode">托盘号</param> | 
|         /// <param name="sourceAddress">起始地址</param> | 
|         /// <returns></returns> | 
|         Task<WebResponseContent> RequestTask(string palletCode, string EquiCodeMOM, string Roadways, string area,string currentChildeCode); | 
|   | 
|         /// <summary> | 
|         /// 根据托盘号、站台向WMS请求任务 | 
|         /// </summary> | 
|         /// <param name="palletCode">托盘号</param> | 
|         /// <param name="sourceAddress">起始地址</param> | 
|         /// <returns></returns> | 
|         Task<WebResponseContent> RequestTask(string palletCode, Dt_StationManager stationManager); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、当前地址查询输送线未执行的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress); | 
|   | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、当前地址查询输送线未执行的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress); | 
|   | 
|         /// <summary> | 
|         /// 根据托盘号、当前地址查询输送线未执行的任务 | 
|         /// </summary> | 
|         /// <param name="Barcode">托盘号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryBarCodeConveyorLineTask(string Barcode, string currentAddress); | 
|   | 
|         /// <summary> | 
|         /// 根据任务号、下一地址查询输送线执行中的任务 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="nextAddress">下一地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress); | 
|   | 
|         /// <summary> | 
|         /// 根据托盘号、下一地址查询输送线执行中的任务 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="nextAddress">下一地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryExecutingTaskByBarcode(string barcode, string nextAddress); | 
|   | 
|         /// <summary> | 
|         /// 根据任务号、当前地址查询输送线完成的任务 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress); | 
|   | 
|   | 
|         /// <summary> | 
|         /// 根据托盘号、当前地址查询任务 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryBarcodeTask(string barcode, string currentAddress); | 
|   | 
|         /// <summary> | 
|         /// 根据任务号、当前地址查询输送线新建的任务 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryCraneConveyorLineTask(int taskNum, string currentAddress); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、任务类型分组(可选)按照优先级以及创建时间排序查询任务池新增的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="taskTypeGroup">任务类型分组(可选)</param> | 
|         /// <returns></returns> | 
|         Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、当前地址按照优先级以及创建时间排序查询任务池新增的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns>返回任务实体对象,可能为null</returns> | 
|         Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = ""); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、当前地址按照优先级以及创建时间排序查询任务池入库类型的新增的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns>返回任务实体对象,可能为null</returns> | 
|         Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = ""); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、当前地址按照优先级以及创建时间排序查询任务池出库类型的新增的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns>返回任务实体对象,可能为null</returns> | 
|         Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = ""); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、排除的任务、当前地址按照优先级以及创建时间排序查询任务池出库类型的新增的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="excludedTaskId">排除的任务</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns>返回任务实体对象,可能为null</returns> | 
|         List<Dt_Task> QueryAllOutboundTasks(string deviceNo, string currentAddress = ""); | 
|   | 
|         /// <summary> | 
|         /// 根据设备编号、当前地址按照优先级以及创建时间排序查询任务池出库类型的新增的任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo">设备编号</param> | 
|         /// <param name="outStationCodes">当前地址</param> | 
|         /// <returns>返回任务实体对象集合,可能为null</returns> | 
|         List<Dt_Task> QueryStackerCraneOutTasks(string deviceNo, List<string> outStationCodes); | 
|   | 
|         /// <summary> | 
|         /// 更新任务异常信息显示 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="message">异常信息</param> | 
|         WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message); | 
|   | 
|         /// <summary> | 
|         /// 更新任务状态信息,并同步至WMS | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="status">任务状态</param> | 
|         void UpdateTaskStatus(int taskNum, int status); | 
|   | 
|         /// <summary> | 
|         /// 将任务状态修改为下一个状态 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         WebResponseContent UpdateTaskStatusToNext(int taskNum); | 
|   | 
|         /// <summary> | 
|         /// 将任务状态修改为下一个状态 | 
|         /// </summary> | 
|         /// <param name="task">任务实体对象</param> | 
|         /// <returns></returns> | 
|         WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task); | 
|   | 
|         /// <summary> | 
|         /// 根据任务号、当前地址更新任务位置信息 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <param name="currentAddress">当前地址</param> | 
|         /// <returns></returns> | 
|         Dt_Task? UpdatePosition(int taskNum, string currentAddress); | 
|   | 
|         /// <summary> | 
|         /// 任务完成 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务编号</param> | 
|         /// <returns>返回处理结果</returns> | 
|         WebResponseContent StackCraneTaskCompleted(int taskNum); | 
|   | 
|         WebResponseContent StackCraneTaskCompletedByStation(int taskNum); | 
|   | 
|         /// <summary> | 
|         /// 恢复挂起任务 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <returns>返回处理结果</returns> | 
|         WebResponseContent TaskStatusRecovery(int taskNum); | 
|   | 
|         /// <summary> | 
|         /// 回滚任务状态 | 
|         /// </summary> | 
|         /// <param name="taskNum">任务号</param> | 
|         /// <returns>返回处理结果</returns> | 
|         WebResponseContent RollbackTaskStatusToLast(int taskNum); | 
|   | 
|         /// <summary> | 
|         ///  | 
|         /// </summary> | 
|         /// <param name="palletCode"></param> | 
|         /// <param name="Roadway"></param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryTaskByPalletCode(string palletCode, string Roadway); | 
|   | 
|         /// <summary> | 
|         /// 查询当前设备是否有移库任务 | 
|         /// </summary> | 
|         /// <param name="deviceNo"></param> | 
|         /// <returns></returns> | 
|         Dt_Task QueryRelocationTask(string deviceNo); | 
|     } | 
| } |