From e46aa927d231af83724683c7286d9db503e24cf7 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期二, 10 六月 2025 11:46:20 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs |  274 ++++++++++++++++++++----------------------------------
 1 files changed, 100 insertions(+), 174 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 3e5553c..23c5a1a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -23,11 +23,10 @@
 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_DTO.BasicInfo;
 using WIDESEAWCS_Model.Models;
 
 namespace WIDESEAWCS_ITaskInfoService
@@ -35,199 +34,126 @@
     public interface ITaskService : IService<Dt_Task>
     {
         /// <summary>
-        /// 浠诲姟鎺掑簭
+        /// 鏌ヨ鎸囧畾闂ㄦ灦璁惧鏈墽琛岀殑浠诲姟
         /// </summary>
-        public Dictionary<string, OrderByType> TaskOrderBy { get; set; }
+        /// <param name="gantryDeviceNo">闂ㄦ灦璁惧缂栧彿</param>
+        /// <returns>鏈墽琛岀殑浠诲姟鏁版嵁锛岃嫢涓嶅瓨鍦ㄥ垯杩斿洖null</returns>
+        Dt_Task? QueryAGantryUnExecuteTask(string gantryDeviceNo);
 
         /// <summary>
-        /// 鎵�鏈夊叆搴撲换鍔$被鍨�
+        /// 鎵ц璁㈠崟鍧楁斁缃祴璇曪紝鏍规嵁璁㈠崟琛孖D鑾峰彇璁㈠崟鏄庣粏骞惰绠楁斁缃綅缃�
         /// </summary>
-        public List<int> TaskInboundTypes { get; }
+        /// <param name="orderRowId">璁㈠崟琛孖D</param>
+        /// <returns>鍖呭惈鏀剧疆鍧椾俊鎭殑Web鍝嶅簲鍐呭銆傛垚鍔熸椂杩斿洖鏀剧疆鍧楀垪琛紝澶辫触鏃惰繑鍥為敊璇俊鎭�</returns>
+        /// <remarks>
+        /// 1. 閫氳繃璁㈠崟琛孖D鏌ヨ璁㈠崟鏄庣粏鏁版嵁 <br/>
+        /// 2. 瀵规瘡涓湁鏁堣鍗曟槑缁嗚绠楀悎閫傜殑鏀剧疆浣嶇疆 <br/>
+        /// 3. 鍒涘缓瀹瑰櫒椤瑰拰浠诲姟璁板綍 <br/>
+        /// 4. 閫氳繃WebSocket鍙戝竷鏀剧疆浣嶇疆淇℃伅 <br/>
+        /// 5. 杩斿洖鎵�鏈夋垚鍔熸斁缃殑鍧椾俊鎭�
+        /// </remarks>
+        WebResponseContent PlaceBlockTest(int orderRowId);
 
         /// <summary>
-        /// 鎵�鏈夊嚭搴撲换鍔$被鍨�
+        /// 鍒涘缓浠诲姟骞惰绠楃墿鍝佹斁缃綅缃�
         /// </summary>
-        public List<int> TaskOutboundTypes {  get; }
+        /// <param name="takePosition">鍙栬揣浣嶇疆缂栫爜</param>
+        /// <param name="putPosition">鏀捐揣浣嶇疆缂栫爜</param>
+        /// <param name="deviceCode">璁惧缂栫爜</param>
+        /// <param name="length">鐗╁搧闀垮害</param>
+        /// <param name="width">鐗╁搧瀹藉害</param>
+        /// <param name="height">鐗╁搧楂樺害</param>
+        /// <returns>鍖呭惈鎿嶄綔缁撴灉鐨刉eb鍝嶅簲鍐呭</returns>
+        /// <remarks>
+        /// 1. 楠岃瘉鍙栬揣/鏀捐揣浣嶇疆鏄惁瀛樺湪 <br/>
+        /// 2. 璁$畻鐗╁搧鍦ㄥ鍣ㄤ腑鐨勬渶浣虫斁缃綅缃� <br/>
+        /// 3. 鍒涘缓瀹瑰櫒鐗╁搧璁板綍鍜屼换鍔¤褰� <br/>
+        /// 4. 閫氳繃WebSocket閫氱煡瀹㈡埛绔�
+        /// </remarks>
+        WebResponseContent CreateTask(string takePosition, string putPosition, string deviceCode, int length, int width, int height);
 
         /// <summary>
-        /// 鎺ユ敹WMS浠诲姟淇℃伅
+        /// 鏍规嵁璁㈠崟淇℃伅鐢熸垚浠诲姟
         /// </summary>
-        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        WebResponseContent ReceiveWMSTask(Dt_Task taskDTOs);
-        
-        /// <summary>
-        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
-        /// </summary>
-        /// <param name="deviceNo">璁惧缂栧彿</param>
-        /// <param name="currentAddress">褰撳墠鍦板潃</param>
-        /// <returns></returns>
-        Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress);
-        /// <summary>
-        /// 鏌ヨ褰撳墠鍦板潃鏄惁鏈夎浠诲姟
-        /// </summary>
-        /// <param name="deviceNo"></param>
-        /// <param name="currentAddress"></param>
-        /// <returns></returns>
-        List<string> QueryConveyorLineTaskSourceAddress();
-        /// <summary>
-        /// 鏌ユ壘浠诲姟鏄惁闇�瑕佸湴鍧�
-        /// </summary>
-        /// <returns></returns>
-        Dt_Task QueryConveyorLineTaskRoadway(int agvarea);
+        /// <param name="orderInfo">璁㈠崟淇℃伅</param>
+        /// <returns>鍖呭惈涓変釜鍊肩殑鍏冪粍锛� <br/>
+        /// Item1 - 鎿嶄綔鏄惁鎴愬姛 (bool) <br/>
+        /// Item2 - 鐢熸垚鐨勪换鍔″璞� (Dt_Task)锛屽け璐ユ椂涓簄ull <br/>
+        /// Item3 - 閿欒娑堟伅 (string)锛屾垚鍔熸椂涓虹┖瀛楃涓�
+        /// </returns>
+        /// <remarks>
+        /// 璇ユ柟娉曚細锛� <br/>
+        /// 1. 鏍规嵁璁㈠崟灏哄鑾峰彇鍚堥�傜殑璐т綅 <br/>
+        /// 2. 鍒涘缓瀹瑰櫒椤瑰拰浠诲姟璁板綍 <br/>
+        /// 3. 鏇存柊鐩稿叧瀹瑰櫒鐘舵�� <br/>
+        /// 4. 鍦ㄤ簨鍔′腑鎵ц鎵�鏈夋暟鎹簱鎿嶄綔
+        /// </remarks>
+        (bool, Dt_Task?, string) GenerateTask(OrderInfo orderInfo);
 
         /// <summary>
-        /// 鏌ユ壘璇ュ湴鍧�鏄惁鏈夎捣鐐硅揣缁堢偣浠诲姟
+        /// 閲嶆柊鐢熸垚浠诲姟
         /// </summary>
-        /// <returns></returns>
-        bool QueryConveyorLinetaeersuadd(string taeersuadd);
+        /// <param name="task">鍘熷浠诲姟瀵硅薄</param>
+        /// <param name="stationCode">宸ヤ綔绔欑紪鐮�</param>
+        /// <returns>
+        /// 鍖呭惈涓変釜鍊肩殑鍏冪粍锛� <br/>
+        /// 1. bool - 鎿嶄綔鏄惁鎴愬姛 <br/>
+        /// 2. Dt_Task - 鏇存柊鍚庣殑浠诲姟瀵硅薄锛堝け璐ユ椂涓簄ull锛� <br/>
+        /// 3. string - 閿欒娑堟伅锛堟垚鍔熸椂涓虹┖瀛楃涓诧級
+        /// </returns>
+        /// <remarks>
+        /// 璇ユ柟娉曠敤浜庨噸鏂扮敓鎴愪换鍔′俊鎭紝鍖呮嫭锛� <br/>
+        /// 1. 瑙f瀽鏉垮瓙灏哄淇℃伅 <br/>
+        /// 2. 楠岃瘉鍙栬揣/鏀捐揣浣嶇疆 <br/>
+        /// 3. 璁$畻鐗╁搧鏀剧疆浣嶇疆 <br/>
+        /// 4. 鏇存柊浠诲姟鐘舵�佸拰浣嶇疆淇℃伅 <br/>
+        /// 5. 鍦ㄤ簨鍔′腑鏇存柊鏁版嵁搴撹褰�
+        /// </remarks>
+        (bool, Dt_Task?, string) RegenerateTask(Dt_Task task, string stationCode);
 
         /// <summary>
-        /// 淇敼浠诲姟淇℃伅锛屾坊鍔犵洰鏍囧湴鍧�
+        /// 鐢熸垚寮傚父浠诲姟
         /// </summary>
-        /// <param name="TaskId"></param>
-        /// <param name="TargetAddress"></param>
-        /// <returns></returns>
-        WebResponseContent UpdateTargetAddress(int TaskId, string TargetAddress);
-
+        /// <param name="orderInfo">璁㈠崟淇℃伅</param>
+        /// <returns>鍏冪粍鍖呭惈涓変釜鍊硷細 <br/>
+        /// Item1 - 鎿嶄綔鏄惁鎴愬姛锛坆ool锛� <br/>
+        /// Item2 - 鐢熸垚鐨勪换鍔″璞★紙Dt_Task锛夛紝澶辫触鏃朵负null <br/>
+        /// Item3 - 閿欒娑堟伅锛坰tring锛夛紝鎴愬姛鏃朵负绌哄瓧绗︿覆</returns>
+        /// <remarks>
+        /// 璇ユ柟娉曚細鏍规嵁璁㈠崟淇℃伅鐢熸垚涓�涓紓甯稿鐞嗕换鍔★紝鍖呮嫭锛� <br/>
+        /// 1. 鑾峰彇寮傚父浣嶇疆 <br/>
+        /// 2. 楠岃瘉鏀捐揣/鍙栬揣浣嶇疆 <br/>
+        /// 3. 鍒涘缓瀹瑰櫒椤瑰拰浠诲姟璁板綍 <br/>
+        /// 4. 鎻愪氦浜嬪姟
+        /// </remarks>
+        (bool, Dt_Task?, string) GenerateExceptionTask(OrderInfo orderInfo);
 
         /// <summary>
-        /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
+        /// 鏍规嵁璁惧缂栧彿鑾峰彇鍙栬揣浣嶇疆
         /// </summary>
-        /// <param name="taskNum">浠诲姟鍙�</param>
-        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
-        /// <returns></returns>
-        Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress);
+        /// <param name="deviceCode">璁惧缂栧彿</param>
+        /// <returns>绗﹀悎鏉′欢鐨勫鍣ㄥ璞★紝鑻ユ壘涓嶅埌鍒欒繑鍥瀗ull</returns>
+        /// <remarks>
+        /// 1. 棣栧厛鏌ヨ鎸囧畾璁惧涓嬫墍鏈夊彲鐢ㄧ殑鍙栬揣瀹瑰櫒锛屽苟鎸塁ontainerSort鍗囧簭鎺掑簭 <br/>
+        /// 2. 鏌ユ壘璇ヨ澶囨渶杩戠殑浠诲姟璁板綍 <br/>
+        /// 3. 濡傛灉鎵惧埌浠诲姟璁板綍锛屽垯鏍规嵁浠诲姟婧愬湴鍧�鍖归厤瀹瑰櫒锛岃繑鍥炰笅涓�涓鍣�(鑻ュ凡鏄渶鍚庝竴涓垯杩斿洖绗竴涓�) <br/>
+        /// 4. 濡傛灉鍑虹幇寮傚父鎴栨湭鎵惧埌鍖归厤椤癸紝鍒欒繑鍥炵涓�涓彲鐢ㄥ鍣�
+        /// </remarks>
+        Dt_Container? GetTakePosition(string deviceCode);
 
         /// <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, 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>
-        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟
-        /// </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="deviceNo">璁惧缂栧彿</param>
-        /// <param name="outStationCodes">褰撳墠鍦板潃</param>
-        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns>
-        List<Dt_Task> QueryStationIsOccupiedOutTasks(string deviceNo, string SourceAddress);
-
-        
-        /// <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="model"></param>
-        /// <returns></returns>
-        WebResponseContent GetAgvStatusData();
-        WebResponseContent GetAgvStatusData2();
-        WebResponseContent GetAgvTaskData();
+        /// <param name="task">浠诲姟瀹炰綋</param>
+        /// <returns>Web鍝嶅簲鍐呭</returns>
+        /// <remarks>
+        /// 1. 鏇存柊浠诲姟鐘舵�佷负"榫欓棬鏋跺畬鎴�" <br/>
+        /// 2. 鏇存柊鐩稿叧璁㈠崟璇︽儏鐘舵�佷负"鐮佸灈鎴愬姛" <br/>
+        /// 3. 鏇存柊璁㈠崟琛屼腑鐨勬墭鐩樻暟閲� <br/>
+        /// 4. 鏍规嵁浠诲姟瀹屾垚鎯呭喌鍙戦�乄ebSocket閫氱煡 <br/>
+        /// 5. 璁板綍鎿嶄綔鏃ュ織骞舵彁浜や簨鍔� <br/>
+        /// 6. 寮傚父鏃跺洖婊氫簨鍔″苟杩斿洖閿欒淇℃伅
+        /// </remarks>
+        WebResponseContent TaskComplete(Dt_Task task);
     }
 }

--
Gitblit v1.9.3