1
hutongqing
2025-01-14 32420f572c9e4d2f0c424214bc92f75e7dfe56f1
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -22,6 +22,8 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_DTO.Agv;
using WIDESEAWCS_Common.APIEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
@@ -46,7 +48,7 @@
        /// <summary>
        /// æ‰€æœ‰å‡ºåº“任务类型
        /// </summary>
        public List<int> TaskOutboundTypes {  get; }
        public List<int> TaskOutboundTypes { get; }
        /// <summary>
        /// æŽ¥æ”¶WMS任务信息
@@ -64,28 +66,45 @@
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress);
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、当前地址查询输送线未执行的任务
        /// å‘WMS申请任务
        /// </summary>
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress);
        WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress);
        /// <summary>
        /// æ ¹æ®ä»»åŠ¡å·ã€ä¸‹ä¸€åœ°å€æŸ¥è¯¢è¾“é€çº¿æ‰§è¡Œä¸­çš„ä»»åŠ¡
        /// å‘WMS申请任务
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="nextAddress">下一地址</param>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <param name="roadway">巷道号</param>
        /// <returns></returns>
        Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress);
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string roadway);
        /// <summary>
        /// æ ¹æ®ä»»åŠ¡å·ã€å½“å‰åœ°å€æŸ¥è¯¢è¾“é€çº¿å®Œæˆçš„ä»»åŠ¡
        /// å‘WMS申请分配货位
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <param name="roadwayNo">巷道号</param>
        /// <returns></returns>
        Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress);
        string? RequestAssignLocation(int taskNum, string roadwayNo);
        /// <summary>
        /// å‘WMS申请分配货位
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="roadwayNo">巷道号</param>
        /// <param name="heightType">高度</param>
        /// <returns></returns>
        string? RequestAssignLocationByHeight(int taskNum, string roadwayNo, int heightType);
        /// <summary>
        /// ä»»åŠ¡å®Œæˆ
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <returns></returns>
        WebResponseContent TaskCompleted(int taskNum);
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、任务类型分组(可选)按照优先级以及创建时间排序查询任务池新增的任务
@@ -135,52 +154,78 @@
        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>
        /// å‘送AGV任务
        /// </summary>
        /// <param name="taskModel"></param>
        /// <returns></returns>
        WebResponseContent AgvSendTask(AgvTaskDTO taskModel, APIEnum SendTask = APIEnum.Agv_CSJSendTask);
        /// <summary>
        /// å®‰å…¨ä¿¡å·ç”³è¯·
        /// </summary>
        /// <param name="secureApplyModel"></param>
        /// <returns></returns>
        AgvResponseContent AgvSecureApply(AgvSecureApplyDTO secureApplyModel);
        /// <summary>
        /// å®‰å…¨ä¿¡å·å›žå¤ WCS-AGV
        /// </summary>
        /// <param name="secureModel"></param>
        /// <returns></returns>
        WebResponseContent AgvSecureReply(AgvSecureReplyDTO secureReplyModel, APIEnum SecureReply = APIEnum.Agv_CSJSecureReply);
        /// <summary>
        /// AGV任务状态刷新
        /// </summary>
        /// <param name="agvUpdateModel"></param>
        /// <returns></returns>
        AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel);
        WebResponseContent SendSecureReplyToAgv(int taskNum);
        /// <summary>
        /// æ›´æ–°ä»»åŠ¡ä¿¡æ¯åŠæ·»åŠ ä»»åŠ¡æ˜Žç»†è®°å½•
        /// </summary>
        /// <param name="task">任务原对象实例(未修改的数据对象)</param>
        /// <param name="taskStatus">修改后的任务状态</param>
        /// <param name="deviceCode">修改后的设备编号</param>
        /// <param name="sourceAddress">修改后的起始地址</param>
        /// <param name="targetAddress">修改后的目标地址</param>
        /// <param name="currentAddress">修改后的当前地址</param>
        /// <param name="nextAddress">修改后的下一地址</param>
        void UpdateTask(Dt_Task task, TaskStatusEnum taskStatus, string deviceCode = "", string sourceAddress = "", string targetAddress = "", string currentAddress = "", string nextAddress = "", string roadwayNo = "");
        /// <summary>
        /// è¯·æ±‚分配巷道
        /// </summary>
        /// <param name="taskNum"></param>
        /// <param name="roadwayNos"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSAssignRoadway(int taskNum, List<string> roadwayNos);
        /// <summary>
        ///
        /// </summary>
        /// <param name="roadwayNos"></param>
        /// <param name="taskNum"></param>
        /// <param name="heightType"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos, int taskNum, int heightType);
        /// <summary>
        ///
        /// </summary>
        /// <param name="roadwayNos"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos);
    }
}