using WIDESEA_DTO; 
 | 
  
 | 
namespace WIDESEA_IStorageTaskServices; 
 | 
  
 | 
public interface IDt_TaskService : IService<Dt_Task> 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 通过ID获取任务 
 | 
    /// </summary> 
 | 
    /// <param name="id">任务ID</param> 
 | 
    /// <returns>任务模型</returns> 
 | 
    Task<Dt_Task> GetById(int id); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 根据货位ID获取任务 
 | 
    /// </summary> 
 | 
    /// <param name="locationID"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<Dt_Task> GetByLocation(string locationID); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 根据任务号获取任务 
 | 
    /// </summary> 
 | 
    /// <param name="taskNum"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<Dt_Task> GetByTaskNum(int taskNum); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 获取所有任务列表 
 | 
    /// </summary> 
 | 
    /// <returns>任务模型列表</returns> 
 | 
    Task<List<Dt_Task>> GetList(); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 创建一个新的任务 
 | 
    /// </summary> 
 | 
    /// <param name="model">任务模型</param> 
 | 
    /// <returns>创建的任务</returns> 
 | 
    Task<Dt_Task> Create(Dt_Task model); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 批量创建任务 
 | 
    /// </summary> 
 | 
    /// <param name="models">任务模型列表</param> 
 | 
    /// <returns>是否创建成功</returns> 
 | 
    Task<bool> Create(List<Dt_Task> models); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 更新一个任务 
 | 
    /// </summary> 
 | 
    /// <param name="model">任务模型</param> 
 | 
    /// <returns>是否更新成功</returns> 
 | 
    Task<bool> Update(Dt_Task model); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 批量更新任务 
 | 
    /// </summary> 
 | 
    /// <param name="models">任务模型列表</param> 
 | 
    /// <returns>是否更新成功</returns> 
 | 
    Task<bool> Update(List<Dt_Task> models); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 删除一个任务 
 | 
    /// </summary> 
 | 
    /// <param name="id">任务ID</param> 
 | 
    /// <returns>是否删除成功</returns> 
 | 
    Task<bool> Delete(int id); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 批量删除任务 
 | 
    /// </summary> 
 | 
    /// <param name="ids">任务ID列表</param> 
 | 
    /// <returns>是否删除成功</returns> 
 | 
    Task<bool> Delete(List<int> ids); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 根据出库订单ID获取任务列表 
 | 
    /// </summary> 
 | 
    /// <param name="outOrderId">出库订单ID</param> 
 | 
    /// <returns>任务模型列表</returns> 
 | 
    Task<List<Dt_Task>> GetListByOutOrder(int outOrderId); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 根据出库订单ID和状态获取任务列表 
 | 
    /// </summary> 
 | 
    /// <param name="outOrderId">出库订单ID</param> 
 | 
    /// <param name="status">任务状态</param> 
 | 
    /// <returns>任务模型列表</returns> 
 | 
    Task<List<Dt_Task>> GetListByOutOrderAndStatus(int outOrderId, int status); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 根据状态获取任务列表 
 | 
    /// </summary> 
 | 
    /// <param name="status">任务状态</param> 
 | 
    /// <returns>任务模型列表</returns> 
 | 
    Task<List<Dt_Task>> GetListByStatus(int status); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 检查任务是否存在 
 | 
    /// </summary> 
 | 
    /// <param name="palletCode">托盘编码</param> 
 | 
    /// <returns>任务是否存在</returns> 
 | 
    bool IsExist(string palletCode); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 堆垛机任务完成 
 | 
    /// </summary> 
 | 
    /// <param name="saveModel">任务数据合集</param> 
 | 
    /// <returns>返回结果集</returns> 
 | 
    abstract Task<WebResponseContent> CompleteStackTaskAsync(Dt_Task task, DtStockInfo stock); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 移库任务完成 
 | 
    /// </summary> 
 | 
    /// <param name="saveModel">任务数据合集</param> 
 | 
    /// <returns>返回结果集</returns> 
 | 
    abstract Task<WebResponseContent> CompleteTransferTaskAsync(Dt_Task task, DtStockInfo stock); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 任务完成 
 | 
    /// </summary> 
 | 
    /// <param name="saveModel"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> CompleteAsync(int taskNum); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 请求任务巷道 
 | 
    /// </summary> 
 | 
    /// <param name="position"></param> 
 | 
    /// <param name="areaCode"></param> 
 | 
    /// <param name="palletCode"></param> 
 | 
    /// <param name="type"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> RequestTaskAsync(RequestTaskDto input); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 请求任务巷道 
 | 
    /// </summary> 
 | 
    /// <param name="position"></param> 
 | 
    /// <param name="areaCode"></param> 
 | 
    /// <param name="palletCode"></param> 
 | 
    /// <param name="type"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> RequestInTask(RequestTaskDto input); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 请求任务货位 
 | 
    /// </summary> 
 | 
    /// <param name="input"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 请求空托盘任务 
 | 
    /// </summary> 
 | 
    /// <param name="input"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 请求托盘任务 
 | 
    /// </summary> 
 | 
    /// <param name="position">目标位置</param> 
 | 
    /// <param name="tag">托盘类型(1:实盘,2:空盘)</param> 
 | 
    /// <param name="areaCode">区域编码</param> 
 | 
    /// <param name="roadways">巷道列表</param> 
 | 
    /// <returns>返回结果集</returns> 
 | 
    Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> areaCodes, string productionLine); 
 | 
  
 | 
  
 | 
    /// <summary> 
 | 
    /// 任务状态修改 
 | 
    /// </summary> 
 | 
    /// <param name="input">请求数据</param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState); 
 | 
  
 | 
    /// <summary> 
 | 
    ///  
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent StockCheckingAsync(); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 创建指定任务 
 | 
    /// </summary> 
 | 
    /// <param name="locationCode">货位号</param> 
 | 
    /// <param name="palletCode">托盘号</param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> CreateAndSendOutboundTask(string locationCode, string palletCode); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 指定任务出库 
 | 
    /// </summary> 
 | 
    /// <param name="palletCode">托盘号</param> 
 | 
    /// <param name="position">位置</param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> CreateAndSendInboundTask(string palletCode, string position); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 常温补空托盘至分容 
 | 
    /// </summary> 
 | 
    /// <param name="taskDTO"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> GetFROutTrayToCW(RequestTaskDto taskDTO); 
 | 
  
 | 
  
 | 
    /// <summary> 
 | 
    /// DTS火警出库 
 | 
    /// </summary> 
 | 
    /// <param name="taskDTO"></param> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent EmergencyTask(object obj); 
 | 
  
 | 
    Task<WebResponseContent> RequestOutTaskToBZAsync(RequestTaskDto json); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 分容空框入库改为直接出库 
 | 
    /// </summary> 
 | 
    /// <param name="request"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> SetEmptyOutbyInToOutAsync(RequestTaskDto request); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 分容空框出库改为直接出库 
 | 
    /// </summary> 
 | 
    /// <param name="request"></param> 
 | 
    /// <returns></returns> 
 | 
    Task<WebResponseContent> SetEmptyOutbyInToOutOneAsync(RequestTaskDto request); 
 | 
  
 | 
    Task<WebResponseContent> QueryStockInfoForRealTrayJZAsync(string ProductLine, string PalletCode); 
 | 
  
 | 
    public WebResponseContent QueryLocationFreeJZ(string RoadwayNo); 
 | 
  
 | 
    #region 大屏接口 
 | 
  
 | 
    /// <summary> 
 | 
    /// 获取任务信息 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent GetTaskInfo(); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 获取库存信息 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent GetStockInfo(); 
 | 
    #endregion 
 | 
    /// <summary> 
 | 
    /// 获取货位状态 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent GetStockQuantity(); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 获取七日内的产量 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent Getproductionvolume(); 
 | 
    /// <summary> 
 | 
    /// 获取产量 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent Getoutput(); 
 | 
    /// <summary> 
 | 
    /// 获取超时库存信息 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent GetTimeout(); 
 | 
  
 | 
    /// <summary> 
 | 
    /// 获取产量统计 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    WebResponseContent Getproductionstatistics(); 
 | 
} 
 |