wangxinhui
2025-06-05 17bca2d690f283ec110c0c327a8508ed8fba9d21
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -22,10 +22,13 @@
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;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
@@ -46,7 +49,7 @@
        /// <summary>
        /// æ‰€æœ‰å‡ºåº“任务类型
        /// </summary>
        public List<int> TaskOutboundTypes {  get; }
        public List<int> TaskOutboundTypes { get; }
        /// <summary>
        /// æŽ¥æ”¶WMS任务信息
@@ -61,9 +64,58 @@
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress);
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string materielBoxCode = "");
        /// <summary>
        /// å‘WMS申请任务
        /// </summary>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress);
        /// <summary>
        /// å‘WMS申请任务
        /// </summary>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <param name="roadway">巷道号</param>
        /// <returns></returns>
        //WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string roadway);
        /// <summary>
        ///
        /// </summary>
        /// <param name="sourceAddress"></param>
        /// <param name="palletCode"></param>
        /// <param name="heightType"></param>
        /// <param name="roadways"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, int heightType, List<string> roadways);
        /// <summary>
        /// å‘WMS申请分配货位
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="roadwayNo">巷道号</param>
        /// <returns></returns>
        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>
        /// æ ¹æ®è®¾å¤‡ç¼–号、任务类型分组(可选)按照优先级以及创建时间排序查询任务池新增的任务
@@ -118,12 +170,123 @@
        /// <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);
        /// <summary>
        ///
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        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 = "", int heightType = 0);
        /// <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="palletCode"></param>
        /// <param name="heightType"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos, string palletCode, int heightType);
        /// <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);
        /// <summary>
        ///
        /// </summary>
        /// <param name="agvPodModel"></param>
        /// <param name="PodBerthAndMat"></param>
        /// <returns></returns>
        WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat);
        /// <summary>
        /// //判断移库货位任务是否已存在,如存在先执行
        /// </summary>
        Dt_Task QueryStackerExistTask(string PalletCode,string locationCode);
        /// <summary>
        /// AGV成品取放货通知
        /// </summary>
        WebResponseContent AgvBoxApplyPass(AGVBoxApplyPassDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CPBoxApplyPass);
        /// <summary>
        /// CTU取消任务
        /// </summary>
        /// <returns></returns>
        WebResponseContent AgvBoxApplyPass(AgvCTUCancelDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CTUCancelTask);
        /// <summary>
        /// ç”Ÿæˆç©ºæ¡†ä»»åŠ¡
        /// </summary>
        WebResponseContent AgvCarrying(int row, int startColumn, int endColumn, int layer, int targetLayer);
        /// <summary>
        /// é¢„调度指令
        /// </summary>
        WebResponseContent AgvPreScheduleTask(AgvScheduleTaskDTO scheduleTaskDTO, APIEnum ScheduleTask = APIEnum.AGV_CTUScheduleTaskTask);
        /// <summary>
        /// æŽ¥å—WMS手动完成任务
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        public WebResponseContent RecWMSTaskCompleted(int taskNum);
    }
}