#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_Core.Enums;
|
using WIDESEAWCS_DTO.TaskInfo;
|
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>
|
/// 接收WMS任务信息
|
/// </summary>
|
/// <param name="taskDTOs">WMS任务对象集合</param>
|
/// <returns>返回处理结果</returns>
|
WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs);
|
|
|
/// <summary>
|
/// 接收MES任务信息
|
/// </summary>
|
/// <param name="taskDTO">MES任务对象集合</param>
|
/// <returns>返回处理结果</returns>
|
WebResponseContent ReceiveMESTask([NotNull] MESTaskDTO taskDTO);
|
|
WebResponseContent ReceiveWCSTask([NotNull] MESTaskDTO taskDTO);
|
|
/// <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="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);
|
|
/// <summary>
|
/// 查询小堆垛机任务
|
/// </summary>
|
/// <returns></returns>
|
Dt_Task QueryStackerCraneTask();
|
|
/// <summary>
|
/// 查询小堆垛机移库任务
|
/// </summary>
|
/// <param name="taskNum"></param>
|
/// <returns></returns>
|
Dt_Task QueryStackerCraneTaskByRelotion(int taskNum);
|
|
|
/// <summary>
|
/// 查询小堆垛机出库完成任务
|
/// </summary>
|
/// <returns></returns>
|
Dt_Task QueryStackerCraneFinishTask();
|
|
/// <summary>
|
/// 查询入库任务 对应WMS请求 1001-AGV请求是否允计进入
|
/// </summary>
|
/// <param name="deviceNo"></param>
|
/// <returns></returns>
|
Dt_Task QueryStackerCraneTaskByAGVRequest(string deviceNo);
|
|
/// <summary>
|
/// 查询AGV进入中的入库任务数量
|
/// </summary>
|
/// <param name="deviceNo"></param>
|
/// <returns></returns>
|
Dt_Task QueryStackerCraneTaskByAGVIning(string deviceNo);
|
|
|
/// <summary>
|
/// 对应WMS请求 3001-AGV放货完成
|
/// </summary>
|
/// <param name="deviceNo"></param>
|
/// <returns></returns>
|
Dt_Task QueryStackerCraneTaskByAGVPutFinish(string deviceNo);
|
|
/// <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>
|
/// 更新是否进入升降机标志(0,未进入 1,已进入)
|
/// </summary>
|
/// <param name="taskNum"></param>
|
/// <param name="Inflag"></param>
|
/// <returns></returns>
|
WebResponseContent UpdateTaskAllowIn(int taskNum, int Inflag);
|
|
/// <summary>
|
/// 是否已回传MES2001标志(0,未回传 1,已回传)
|
/// </summary>
|
/// <param name="taskNum"></param>
|
/// <param name="Inflag"></param>
|
/// <returns></returns>
|
WebResponseContent UpdateTaskIsBack(int taskNum, int Inflag);
|
|
/// <summary>
|
/// 更新任务状态信息,并同步至WMS
|
/// </summary>
|
/// <param name="taskId">任务号</param>
|
/// <param name="status">任务状态</param>
|
void UpdateTaskStatus(int taskId, int status);
|
/// <summary>
|
/// 任务强制完成
|
/// </summary>
|
/// <param name="taskNum"></param>
|
/// <returns></returns>
|
WebResponseContent ForceCompleteTask(int taskNum);
|
|
/// <summary>
|
/// 任务取消
|
/// </summary>
|
/// <param name="taskid"></param>
|
/// <returns></returns>
|
WebResponseContent CancelTask(int taskid);
|
|
/// <summary>
|
/// 更新任务状态信息和旧的任务号(1001,3001时一样任务号)
|
/// </summary>
|
/// <param name="taskId">任务ID</param>
|
/// <param name="taskId">WMS上一环节(3001)的任务号</param>
|
/// <param name="status">任务状态</param>
|
void UpdateTaskStatus(int taskId, int oldtaskId, 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);
|
|
|
}
|
}
|