#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_Common.TaskEnum;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.BaseServices;
|
using WIDESEAWCS_DTO.TaskInfo;
|
using WIDESEAWCS_DTO.WMSInfo;
|
using WIDESEAWCS_Model.Models;
|
|
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>
|
/// 所有移库任务类型
|
/// </summary>
|
public List<int> TaskRelocationTypes { 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(ConveyorLineDTO lineDTO);
|
|
/// <summary>
|
/// 添加移车任务
|
/// </summary>
|
/// <param name="SourceAddress">起点</param>
|
/// <param name="TargetAddress">终点</param>
|
/// <param name="ShuttleCarCode">穿梭车号</param>
|
/// <returns></returns>
|
Task AddRelocationCarTask(string SourceAddress, string TargetAddress, string ShuttleCarCode = "", string remark = "");
|
|
/// <summary>
|
/// 根据设备编号、当前地址查询输送线未执行的任务
|
/// </summary>
|
/// <param name="deviceNo">设备编号</param>
|
/// <param name="currentAddress">当前地址</param>
|
/// <returns></returns>
|
Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress, string Barcode);
|
/// <summary>
|
/// 根据设备编号、下一地址、任务号查询输送线未执行的任务
|
/// </summary>
|
/// <param name="deviceNo"></param>
|
/// <param name="currentAddress"></param>
|
/// <param name="TaskNum"></param>
|
/// <returns></returns>
|
Dt_Task QueryConveyorLineTaskNum(string deviceNo, string currentAddress, int TaskNum);
|
|
/// <summary>
|
/// 根据任务号、下一地址查询输送线执行中的任务
|
/// </summary>
|
/// <param name="taskNum">任务号</param>
|
/// <param name="nextAddress">下一地址</param>
|
/// <returns></returns>
|
Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress);
|
/// <summary>
|
/// 根据托盘号、下一地址查询输送线执行中的任务
|
/// </summary>
|
/// <param name="Barcode"></param>
|
/// <param name="nextAddress"></param>
|
/// <returns></returns>
|
Dt_Task QueryExecutingConveyorLineTask(string Barcode, string nextAddress);
|
|
/// <summary>
|
/// 根据任务号、当前地址查询输送线完成的任务
|
/// </summary>
|
/// <param name="taskNum">任务号</param>
|
/// <param name="currentAddress">当前地址</param>
|
/// <returns></returns>
|
Dt_Task QueryCompletedConveyorLineTask(string Barcode, string currentAddress);
|
|
/// <summary>
|
/// 产线查询出库任务
|
/// </summary>
|
/// <param name="NextAddIsNull">下一地址是否为空</param>
|
/// <returns></returns>
|
Dt_Task QuertOutProductionLineTask(bool NextAddIsNull);
|
/// <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 = "");
|
Dt_Task QueryStackerCraneRelocationTask(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="currentAddress">当前位置</param>
|
/// <returns></returns>
|
Dt_Task QueryShuttleCarTask(string deviceNo, string currentAddress = "");
|
/// <summary>
|
/// 查询穿梭车移库任务
|
/// </summary>
|
/// <param name="deviceNo"></param>
|
/// <param name="currentAddress"></param>
|
/// <returns></returns>
|
Dt_Task ShuttleCarRelocationTask(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);
|
|
/// <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="taskNum"></param>
|
/// <returns></returns>
|
Dt_Task GetTaskInfo(int taskNum);
|
Dt_Task GetTaskInfo(int taskNum, int taskState);
|
|
/// <summary>
|
/// 根据任务状态、任务类型查询任务
|
/// </summary>
|
/// <param name="TaskState">任务状态</param>
|
/// <param name="TaskType">任务类型</param>
|
/// <returns></returns>
|
Dt_Task GetTaskState(int TaskState = 0, int TaskType = 0);
|
|
/// <summary>
|
/// 堆垛机申请入库
|
/// </summary>
|
/// <param name="task"></param>
|
/// <returns></returns>
|
WebResponseContent StackerCraneRequestInbound(Dt_Task task);
|
/// <summary>
|
/// 添加历史任务
|
/// </summary>
|
/// <param name="task"></param>
|
/// <param name="operateType"></param>
|
/// <returns></returns>
|
WebResponseContent AddTask_Hty(Dt_Task task, TaskOperateTypeEnum operateType);
|
/// <summary>
|
/// 穿梭车任务完成
|
/// </summary>
|
/// <param name="taskNum">任务号</param>
|
/// <param name="TaskTypeComplete">完成类型</param>
|
/// <returns></returns>
|
WebResponseContent ShuttleCarTaskCompleted(int taskNum, short TaskTypeComplete);
|
|
/// <summary>
|
/// AGV修改任务状态
|
/// </summary>
|
/// <param name="saveModel"></param>
|
/// <returns></returns>
|
WebResponseContent AGVUpdateTaskState(AGVUpdateTaskDTO saveModel);
|
WebResponseContent OutTaskFinish(string address);
|
WebResponseContent ManualTask(SaveModel saveModel);
|
WebResponseContent ModifyBarcode(WMSTaskDTO taskDTO);
|
}
|
}
|