#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; 
 | 
using WIDESEAWCS_Core.BaseRepository; 
 | 
using WIDESEAWCS_Model.Models.System; 
 | 
  
 | 
namespace WIDESEAWCS_ITaskInfoService 
 | 
{ 
 | 
    public interface ITaskService : IService<Dt_Task> 
 | 
    { 
 | 
        /// <summary> 
 | 
        /// 仓储层(数据库访问) 
 | 
        /// </summary> 
 | 
        IRepository<Dt_Task> Repository { get; } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 任务排序 
 | 
        /// </summary> 
 | 
        Dictionary<string, OrderByType> TaskOrderBy { get; set; } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 所有入库任务类型 
 | 
        /// </summary> 
 | 
        List<int> TaskInboundTypes { get; } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 所有出库任务类型 
 | 
        /// </summary> 
 | 
        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="palletCode">托盘号</param> 
 | 
        /// <param name="sourceAddress">起始地址</param> 
 | 
        /// <returns></returns> 
 | 
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress); 
 | 
  
 | 
        /// <summary> 
 | 
        /// 根据设备编号、当前地址查询输送线未执行的任务 
 | 
        /// </summary> 
 | 
        /// <param name="deviceNo">设备编号</param> 
 | 
        /// <param name="currentAddress">当前地址</param> 
 | 
        /// <returns></returns> 
 | 
        Dt_Task QueryConveyorLineTask(string deviceNo, 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 QueryTakNnmTask(int taskNum); 
 | 
  
 | 
        /// <summary> 
 | 
        /// 修改天车任务状态,将入库取货执行中修改为入库取货完成 
 | 
        /// </summary> 
 | 
        /// <returns></returns> 
 | 
        public WebResponseContent UpdateTaskStatusToLine_Ingrab(Dt_Task task); 
 | 
  
 | 
        /// <summary> 
 | 
        /// 修改天车任务状态,将出库取货执行中修改为出库取货完成 
 | 
        /// </summary> 
 | 
        /// <returns></returns> 
 | 
        public WebResponseContent UpdateTaskStatusToLine_Outgrab(Dt_Task task); 
 | 
  
 | 
        /// <summary> 
 | 
        /// 根据任务号、当前地址查询输送线完成的任务 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <param name="currentAddress">当前地址</param> 
 | 
        /// <returns></returns> 
 | 
        Dt_Task QueryCompletedConveyorLineTask(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="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,float weight); 
 | 
  
 | 
        /// <summary> 
 | 
        /// 恢复挂起任务 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <returns>返回处理结果</returns> 
 | 
        WebResponseContent TaskStatusRecovery(int taskNum); 
 | 
  
 | 
        /// <summary> 
 | 
        /// 回滚任务状态 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <returns>返回处理结果</returns> 
 | 
        WebResponseContent RollbackTaskStatusToLast(int taskNum); 
 | 
    } 
 | 
} 
 |