From 734f49c3f74e4a46cfb5892ce60dbf1bb86e74ab Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 22 七月 2025 19:14:39 +0800
Subject: [PATCH] 出入库流程

---
 WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs |  234 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 147 insertions(+), 87 deletions(-)

diff --git a/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs b/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
index 992dc5a..cd13900 100644
--- a/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
+++ b/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -15,7 +15,6 @@
  *----------------------------------------------------------------*/
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -23,13 +22,15 @@
 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;
-using WIDESEAWCS_Model.Models.System;
 
 namespace WIDESEAWCS_ITaskInfoService
 {
@@ -48,14 +49,14 @@
         /// <summary>
         /// 鎵�鏈夊嚭搴撲换鍔$被鍨�
         /// </summary>
-        public List<int> TaskOutboundTypes {  get; }
+        public List<int> TaskOutboundTypes { get; }
 
         /// <summary>
         /// 鎺ユ敹WMS浠诲姟淇℃伅
         /// </summary>
         /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        WebResponseContent ReceiveWMSTask([NotNull] List<Dt_Task> taskDTOs);
+        WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs);
 
         /// <summary>
         /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
@@ -63,49 +64,60 @@
         /// <param name="palletCode">鎵樼洏鍙�</param>
         /// <param name="sourceAddress">璧峰鍦板潃</param>
         /// <returns></returns>
-        WebResponseContent RequestWMSTask(string palletCode, string RGVStationitem, int GoodsType);
+        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string materielBoxCode = "");
+        
+        WebResponseContent RequestWMSZHTask(string agvTaskCode, string palletCode, string palletType,string materialLot);
 
-      
         /// <summary>
-        /// 鏍规嵁璁惧缂栧彿銆佽捣濮嬪湴鐐瑰垽鏂祬搴撲綅鏄惁鏈夎揣
+        /// 鍚慦MS鐢宠浠诲姟
         /// </summary>
-        /// <param name="deviceNo">璁惧缂栧彿</param>
-        /// <param name="outStationCodes">褰撳墠鍦板潃</param>
-        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns>
-        Dt_Task RequestWMSTaskMovelibrary(Dt_Task task);
-        /// <summary>
-        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
-        /// </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>
-        /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
+        /// 鍚慦MS鐢宠浠诲姟
+        /// </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>
+        /// 鍚慦MS鐢宠鍒嗛厤璐т綅
         /// </summary>
         /// <param name="taskNum">浠诲姟鍙�</param>
-        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
+        /// <param name="roadwayNo">宸烽亾鍙�</param>
         /// <returns></returns>
-        Dt_Task QueryExeupConveyorLineTask(int taskNum, string nextAddress);
+        string? RequestAssignLocation(int taskNum, string roadwayNo);
 
         /// <summary>
-        /// 鏍规嵁浠诲姟鍙凤紝淇敼浠诲姟鐘舵�侊紝涓嬩竴鍦板潃锛屼笌褰撳墠鍦板潃
+        /// 鍚慦MS鐢宠鍒嗛厤璐т綅
         /// </summary>
         /// <param name="taskNum">浠诲姟鍙�</param>
-        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
+        /// <param name="roadwayNo">宸烽亾鍙�</param>
+        /// <param name="heightType">楂樺害</param>
         /// <returns></returns>
-        bool QueryOutConveyorLineTask(int taskNum);
-        bool OutConveyorLineTask(PlatformStation platform);
-
+        string? RequestAssignLocationByHeight(int taskNum, string roadwayNo, int heightType);
 
         /// <summary>
-        /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎瀹屾垚鐨勪换鍔�
+        /// 浠诲姟瀹屾垚
         /// </summary>
         /// <param name="taskNum">浠诲姟鍙�</param>
-        /// <param name="currentAddress">褰撳墠鍦板潃</param>
         /// <returns></returns>
-        //Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress);
+        WebResponseContent TaskCompleted(int taskNum);
 
         /// <summary>
         /// 鏍规嵁璁惧缂栧彿銆佷换鍔$被鍨嬪垎缁�(鍙��)鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鏂板鐨勪换鍔�
@@ -124,22 +136,12 @@
         Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "");
 
         /// <summary>
-        /// 鏍规嵁璁惧缂栧彿鏌ュ綋鍓嶅湪鍋氫换鍔″彿
-        /// </summary>
-        /// <param name="deviceNo">璁惧缂栧彿</param>
-        /// <param name="currentAddress">褰撳墠鍦板潃</param>
-        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
-        Dt_Task IngStackerCraneTask(string deviceNo);
-        Dt_Task IngStackerCraneTask2(string deviceNo);
-
-        /// <summary>
         /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍏ュ簱绫诲瀷鐨勬柊澧炵殑浠诲姟
         /// </summary>
         /// <param name="deviceNo">璁惧缂栧彿</param>
         /// <param name="currentAddress">褰撳墠鍦板潃</param>
         /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
         Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "");
-
 
         /// <summary>
         /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟
@@ -158,15 +160,6 @@
         List<Dt_Task> QueryStackerCraneOutTasks(string deviceNo, List<string> outStationCodes);
 
         /// <summary>
-        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟
-        /// </summary>
-        /// <param name="deviceNo">璁惧缂栧彿</param>
-        /// <param name="outStationCodes">褰撳墠鍦板潃</param>
-        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns>
-        List<Dt_Task> QueryStationIsOccupiedOutTasks(string deviceNo, string SourceAddress);
-
-        
-        /// <summary>
         /// 鏇存柊浠诲姟寮傚父淇℃伅鏄剧ず
         /// </summary>
         /// <param name="taskNum">浠诲姟鍙�</param>
@@ -174,61 +167,128 @@
         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);
-
-        WebResponseContent UpdateTaskStatusToNext2(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>
+        /// 鍙戦�丄GV浠诲姟
+        /// </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);
 
-        Dt_Task QueryRgvCraneTask(List<string> platforms);
+        /// <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);
 
-        List<Dt_Task> StackerCraneOutTask();
+        /// <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);
     }
 }

--
Gitblit v1.9.3