From 4bdc37291d784008cea7fb9d105077b65a12beb9 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期二, 24 三月 2026 09:31:52 +0800
Subject: [PATCH] job优化

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs         |   58 ++++----
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs   |   18 +-
 项目资料/与设备交互接口/海康AGV/高普WCS.海康协议260323-1.xlsx                             |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs  |   11 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs                  |   89 +++--------
 项目资料/与上游系统接口清单/WMS接口对接文档_V2026324.docx                                 |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs   |  171 ++++++++++++++++++------
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs   |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs |   20 +-
 9 files changed, 213 insertions(+), 156 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index e9de1a4..07b4798 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -91,6 +91,17 @@
         /// </summary>
         [Description("鎴愬搧绉诲簱")]
         CPMoveInventory,
+
+        /// <summary>
+        /// 绾胯竟鍒版彁鍗囨満
+        /// </summary>
+        [Description("绾胯竟鍒版彁鍗囨満")]
+        F04,
+        /// <summary>
+        /// 鎻愬崌鏈哄埌绾胯竟
+        /// </summary>
+        [Description("鎻愬崌鏈哄埌绾胯竟")]
+        F03,
     }
 
     public enum TaskInboundTypeEnum
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
index b87085b..f61e389 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
@@ -181,7 +181,7 @@
                 // 鍒涘缓Headers瀛楀吀
                 var headers = new Dictionary<string, string>
                 {
-                    { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() }
+                    { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString()+task.TaskNum }
                     // 濡傛灉闇�瑕佸叾浠朒eader锛屽彲浠ョ户缁坊鍔�
                     // { "Content-Type", "application/json" }
                 };
@@ -221,7 +221,7 @@
             HIKROBOTTaskSubmit hIKROBOTTaskSubmit = new HIKROBOTTaskSubmit();
             try
             {
-                var tasktype = (TaskTypeEnum)Enum.GetValues(typeof(TaskTypeEnum)).GetValue(task.TaskType-1);
+                var tasktype = (TaskTypeEnum)Enum.GetValues(typeof(TaskTypeEnum)).GetValue(task.TaskType - 1);
 
                 hIKROBOTTaskSubmit.initPriority = task.Grade;
                 hIKROBOTTaskSubmit.robotTaskCode = task.WMSTaskNum;
@@ -245,6 +245,8 @@
                     case TaskTypeEnum.RK3F:
                     case TaskTypeEnum.CK3F:
                     case TaskTypeEnum.F02:
+                    case TaskTypeEnum.F03:
+                    case TaskTypeEnum.F04:
                         {
                             TargetRouteDto target = new TargetRouteDto()
                             {
@@ -330,11 +332,11 @@
         /// </summary>
         /// <param name="TaskCode">浠诲姟鍙�</param>
         /// <returns></returns>
-        public WebResponseContent Hikvisiontaskscontinue(string TaskCode,string Address=null)
+        public WebResponseContent Hikvisiontaskscontinue(string TaskCode, string Address = null)
         {
             WebResponseContent content = new WebResponseContent();
             HIKROBOTReturn hIKROBOTReturn = null;
-            HIKROBOTTaskContinue hIKROBOTTaskContinue =null;
+            HIKROBOTTaskContinue hIKROBOTTaskContinue = null;
             try
             {
                 // 1. 鍙傛暟楠岃瘉
@@ -346,8 +348,8 @@
                 hIKROBOTTaskContinue = new HIKROBOTTaskContinue()
                 {
                     triggerCode = TaskCode,
-                    triggerType="TASK",//鍥哄畾鍊�
-                    targetRoute=string.IsNullOrEmpty(Address)?null:
+                    triggerType = "TASK",//鍥哄畾鍊�
+                    targetRoute = string.IsNullOrEmpty(Address) ? null :
                     new TargetRouteDto()
                     {
                         code = Address,
@@ -356,11 +358,11 @@
                 };
                 var headers = new Dictionary<string, string>
                 {
-                    { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() }
+                    { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString()+TaskCode }
                 };
-                string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskContinue.Serialize(),headers: headers);
+                string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskContinue.Serialize(), headers: headers);
                 hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>();
-              
+
                 if (hIKROBOTReturn.code == "SUCCESS")
                 {
                     var data = hIKROBOTReturn.data.ToString().DeserializeObject<HIKROBOTReturnData>();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
index 9d4026f..b035582 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
@@ -83,7 +83,6 @@
                             break;
                         case "outbin"://绂诲紑璧风偣
                             {
-                                
                                 ///鍒ゆ柇浠诲姟鏄惁璺熻澶囨湁鍏�
                                 TaskFromCompleted(task, deviceTypeEnum);
                             }
@@ -100,27 +99,27 @@
                                     {
                                         DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString());
                                         if (device.IsConnected)
-                                            device.SetValue(HoistEnum.Inboundboxon, 1);//
+                                            device.SetValue(HoistEnum.Inboundboxon, 1);
                                         else
                                             task.ExceptionMessage = "鎻愬崌鏈轰俊鎭澶囪繛鎺ュけ璐�";
                                     }
                                 }
 
                                 //鍑烘彁鍗囨満
-                                if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
+                                else if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                 {
                                     var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                     if (device == null) task.ExceptionMessage = "鏈壘鍒版彁鍗囨満淇℃伅";
                                     else
                                     {
                                         if (device.IsConnected)
-                                            device.SetValue(HoistEnum.Outboundboxon,1);//鍑哄簱瀹屾垚
+                                            device.SetValue(HoistEnum.Outboundboxon, 1);//鍑哄簱瀹屾垚
                                         else
                                             task.ExceptionMessage = "鎻愬崌鏈轰俊鎭澶囪繛鎺ュけ璐�";
                                     }
                                 }
                                 //鍥涙ゼ 鍑哄簱
-                                if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
+                                else if ((task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() || task.TaskType == TaskTypeEnum.F04.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                 {
                                     var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                     if (device == null) task.ExceptionMessage = "鏈壘鍒版彁鍗囨満淇℃伅";
@@ -130,10 +129,10 @@
                                             device.SetValue(HoistEnum.Emptyboxplacedinposition, 1);
                                         else
                                             task.ExceptionMessage = "鎻愬崌鏈轰俊鎭澶囪繛鎺ュけ璐�";
-                                    } 
+                                    }
                                 }
                                 //鍥涙ゼ 鍏ュ簱
-                                if (task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
+                                else if ((task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                 {
                                     var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                     if (device == null) task.ExceptionMessage = "鏈壘鍒版彁鍗囨満淇℃伅";
@@ -141,10 +140,10 @@
                                     {
                                         if (device.IsConnected)
                                             //鍐欎互涓�涓嚭搴撳畬鎴愪俊鍙�
-                                            device.SetValue(HoistEnum.Outboundboxretrievalcompleted,"1",task.SourceAddress);
+                                            device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress);
                                         else
                                             task.ExceptionMessage = "鎻愬崌鏈轰俊鎭澶囪繛鎺ュけ璐�";
-                                    } 
+                                    }
                                 }
                             }
                             break;
@@ -163,7 +162,6 @@
                         case "end"://浠诲姟瀹屾垚閫氱煡
                             {
                                 ///鍒ゆ柇浠诲姟鏄惁璺熻澶囨湁鍏�
-                                
                                 TaskCompleted(task, deviceTypeEnum);
                             }
                             break;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 297e7a7..f7b5dbf 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -130,7 +130,7 @@
                             continue;
                             //throw new Exception($"鎵樼洏鍙枫�恵task.containerCode}銆戝凡瀛樺湪浠诲姟");
                         }
-                        if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode && x.TaskType == item.taskType) != null)
+                        if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode && x.TaskType == item.taskType&&x.TaskState<TaskStatusEnum.TakeFinish.ObjToInt())!=null)
                         {
                             objects.Add(new
                             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
index f667d86..b0b4028 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
@@ -69,7 +69,7 @@
                             continue;
                             //throw new Exception("璁惧鏁呴殰");
                         }
-                        if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt()|| task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt())
+                        if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt() || task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() || task.TaskType == TaskTypeEnum.F04.ObjToInt())
                         {
                             if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt())
                             {
@@ -87,21 +87,15 @@
                             }
                             else
                             {
-
-                                #region 4妤煎叆搴�
-                                //4妤煎嚭搴撴枡绠卞埌浣�
-                                if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, task.SourceAddress) != 1)
+                                if (device.GetValue<HoistEnum, short>(HoistEnum.ReturnbinAvailable, task.TargetAddress) != 2)
                                 {
-                                    if (task.ExceptionMessage != "4妤煎叆搴撴枡绠辨病鏈夊埌浣�")
+                                    if (task.ExceptionMessage != "4F鎻愬崌鏈哄叆鍙f湁璐�")
                                     {
-                                        task.ExceptionMessage = "4妤煎叆搴撴枡绠辨病鏈夊埌浣�";
+                                        task.ExceptionMessage = "4F鎻愬崌鏈哄叆鍙f湁璐�";
                                         Uptasks.Add(task);
                                     }
                                     continue;
                                 }
-
-                                #endregion
-                            
                             }
 
 
@@ -109,7 +103,7 @@
                             var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum);
                             if (result.Status == false)
                             {
-                                if (task.ExceptionMessage!= result.Message)
+                                if (task.ExceptionMessage != result.Message)
                                 {
                                     task.ExceptionMessage = result.Message;
                                     Uptasks.Add(task);
@@ -123,62 +117,36 @@
                             //杩欓噷浠诲姟鍙樻垚浜咰heckPalletCodeing
 
                         }
-                        else if(task.TaskType == TaskTypeEnum.CK3F.ObjToInt()) //鍑哄簱
+                        else if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() || task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) //鍑哄簱
                         {
                             ////鍑哄簱鏂欑缂撳瓨鏁伴噺(杩欎釜鏄簱鍖烘煡璇㈢殑鏃跺�欒鏌ヤ竴涓嬶紝杩旂粰wms)
                             //if (device.GetValue<HoistEnum, short>(HoistEnum.Outboundmaterialbox, "TSJ") == 0) throw new Exception("娌℃湁鍑哄簱鏂欑缂撳瓨鏁伴噺涓虹┖");
 
-
-                            //璇诲彇3妤煎嚭搴撴枡绠卞埌浣�
-                            if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, task.SourceAddress) != 1)
+                            if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt())
                             {
-                                if (task.ExceptionMessage != "3妤煎嚭搴撴枡绠辨病鏈夊埌浣�")
+                                //璇诲彇3妤煎嚭搴撴枡绠卞埌浣�
+                                if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, task.SourceAddress) != 1)
                                 {
-                                    task.ExceptionMessage = "3妤煎嚭搴撴枡绠辨病鏈夊埌浣�";
-                                    Uptasks.Add(task);
+                                    if (task.ExceptionMessage != "3妤兼彁鍗囨満鍑哄彛鍏夌數鍙嶉鏃犺揣")
+                                    {
+                                        task.ExceptionMessage = "3妤兼彁鍗囨満鍑哄彛鍏夌數鍙嶉鏃犺揣";
+                                        Uptasks.Add(task);
+                                    }
+                                    continue;
                                 }
-                                continue;
                             }
-                            //鐒跺悗璋冪敤杈撻�佺嚎鎺ュ彛锛岄�氱煡杈撻�佺嚎鏈夋枡绠遍渶瑕佸叆搴擄紝浠诲姟涓捐鎵ц
-                            var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum);
-                            if (result.Status == false) 
+                            else
                             {
-                                if (task.ExceptionMessage != result.Message)
+                                if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, task.SourceAddress) != 1)
                                 {
-                                    task.ExceptionMessage = result.Message;
-                                    Uptasks.Add(task);
+                                    if (task.ExceptionMessage != "4妤兼彁鍗囨満鍑哄彛鍏夌數鍙嶉鏃犺揣")
+                                    {
+                                        task.ExceptionMessage = "4妤兼彁鍗囨満鍑哄彛鍏夌數鍙嶉鏃犺揣";
+                                        Uptasks.Add(task);
+                                    }
+                                    continue;
                                 }
-                                continue;
                             }
-                            task.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
-                            task.ExceptionMessage = "";
-                            Uptasks.Add(task);
-                        }
-                        else if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt())//4妤煎嚭搴撲换鍔�
-                        {
-
-                            #region 鍑哄簱淇″彿
-                            //鍥炵┖绠辩殑鏃跺�欒璇讳竴涓悧
-                            if (device.GetValue<HoistEnum, string>(HoistEnum.Emptycontainernumber, task.TargetAddress) == null)
-                            {
-                                if (task.ExceptionMessage != "4妤肩┖绠�,璇荤爜鍣ㄦ病鏈夎鍒板��")
-                                {
-                                    task.ExceptionMessage = "4妤肩┖绠�,璇荤爜鍣ㄦ病鏈夎鍒板��";
-                                    Uptasks.Add(task);
-                                }
-                                continue;
-                            }
-                            //鍒ゆ柇4妤肩┖绠卞埌浣�
-                            if (device.GetValue<HoistEnum, short>(HoistEnum.ReturnbinAvailable, task.TargetAddress) != 2)
-                            {
-                                if (task.ExceptionMessage != "鎻愬崌鏈哄叆搴撶┖鏃犺揣")
-                                {
-                                    task.ExceptionMessage = "鎻愬崌鏈哄叆搴撶┖鏃犺揣";
-                                    Uptasks.Add(task);
-                                }
-                                continue;
-                            }
-                            #endregion
                             //鐒跺悗璋冪敤杈撻�佺嚎鎺ュ彛锛岄�氱煡杈撻�佺嚎鏈夋枡绠遍渶瑕佸叆搴擄紝浠诲姟涓捐鎵ц
                             var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum);
                             if (result.Status == false)
@@ -190,21 +158,17 @@
                                 }
                                 continue;
                             }
-
                             task.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                             task.ExceptionMessage = "";
                             Uptasks.Add(task);
                         }
-                        //else if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt()) //鍥涙ゼ搴撳唴鍒版彁鍗囨満 
-                        //{
-                            
-                           
-                        //}  
+
                     }
 
+                    #region 鎵樼洏鍙风‘璁や腑
                     //鏌ユ壘涓夋ゼ鍏ュ簱浠诲姟鐘舵�佷负CheckPalletCodeing鐨勪换鍔℃墭鐩樺彿纭涓�
                     var RK3FTasks = _taskService.Repository.QueryFirst(x => x.TaskType == TaskTypeEnum.RK3F.ObjToInt() && x.TaskState == (int)TaskStatusEnum.CheckPalletCodeing);
-                    if (RK3FTasks!=null)
+                    if (RK3FTasks != null)
                     {
                         var Barcode = device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1);
                         //妫�鏌�3妤煎叆搴撶鍙锋槸澶氬皯锛岀劧鍚庝紶缁檞ms
@@ -235,6 +199,7 @@
                         RK3FTasks.TaskState = (int)TaskStatusEnum.CheckPalletCodeFinish;
                         Uptasks.Add(RK3FTasks);
                     }
+                    #endregion
                     if (Uptasks.Count > 0)
                     {
                         _taskService.UpdateData(Uptasks);
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs"
index 885f017..56833dd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs"
@@ -39,10 +39,10 @@
             try
             {
                 #region 涓夋ゼ鑷姩浠诲姟
-                List<string> StationCodes = new() { "0321935CC0329515", "0321935CC0329015", "0321935CC0328485", "0321935CC0328005" };
+                List<string> StationCodes = new() { "0348840CC0315655", "0349350CC0315655" };
                 var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode));
                 #region 鍏ユ彁鍗囨満浠诲姟
-                var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock);
+                var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0);
                 if (station != null)
                 {
                     var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
@@ -79,10 +79,10 @@
                 {
                     if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1)
                     {
-                        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F");
+                        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/);
                         if (dt_Task == null)
                         {
-                            station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free);
+                            station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0);
                             if (station != null)
                             {
                                 var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
@@ -118,8 +118,89 @@
 
                 #endregion
 
+                #region 4F
+                List<string> stationCodes = new() { "0319882DD0312730", "0319882DD0313240" };
+                var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode));
+                #region 鍏ユ彁鍗囨満浠诲姟
+                var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0);
+                if (Station != null)
+                {
+                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                    Dt_Task dt_Task = new Dt_Task()
+                    {
+                        TaskNum = tasknum,
+                        WMSTaskNum = "GP" + tasknum,
+                        Grade = 60,
+                        PalletCode = Station.PalletCode,
+                        Roadway = "",
+                        TaskState = (int)TaskStatusEnum.New,
+                        TaskType = TaskTypeEnum.F04.ObjToInt(),
+                        SourceAddress = Station.StationCode,
+                        CurrentAddress = Station.StationCode,
+                        NextAddress = "TSJR4F",
+                        TargetAddress = "TSJR4F",
+                        Creater = "WCS",
+                    };
+                    var content = _taskService.SendHIKROBOTTask(dt_Task);
+                    if (content.Status)
+                    {
+                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+                        dt_Task.Dispatchertime = DateTime.Now;
+                        Station.StationStatus = (int)LocationStatusEnum.OutLock;
+                        _taskService.AddData(dt_Task);
+                        _StationInfoService.UpdateData(Station);
+                    }
+                }
+                #endregion
+
+                #region 鍑烘彁鍗囨満浠诲姟
+                device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
+                if (device != null && device.IsConnected)
+                {
+                    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
+                    {
+                        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/);
+                        if (dt_Task == null)
+                        {
+                            Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0);
+                            if (Station != null)
+                            {
+                                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                                dt_Task = new Dt_Task()
+                                {
+                                    TaskNum = tasknum,
+                                    WMSTaskNum = "GP" + tasknum,
+                                    Grade = 60,
+                                    PalletCode = "LXM" + tasknum,
+                                    Roadway = "",
+                                    TaskState = (int)TaskStatusEnum.New,
+                                    TaskType = TaskTypeEnum.F03.ObjToInt(),
+                                    SourceAddress = "TSJC4F",
+                                    CurrentAddress = "TSJC4F",
+                                    NextAddress = Station.StationCode,
+                                    TargetAddress = Station.StationCode,
+                                    Creater = "WCS",
+                                };
+                                var content = _taskService.SendHIKROBOTTask(dt_Task);
+                                if (content.Status)
+                                {
+                                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+                                    dt_Task.Dispatchertime = DateTime.Now;
+                                    Station.StationStatus = (int)LocationStatusEnum.InLock;
+                                    _taskService.AddData(dt_Task);
+                                    _StationInfoService.UpdateData(Station);
+                                }
+                            }
+                        }
+                    }
+                }
+                #endregion
+
+                #endregion
+
                 #region 鍥涙ゼ鑷姩浠诲姟
-                List<string> LocationCodes = new() { "RGD0303A04041","RG0302A05041","RG0304A05041","RG0205A05031" };
+                //List<string> LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" };
+                List<string> LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" };
                 var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode));
                 #region 鍏ユ彁鍗囨満浠诲姟
                 var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock);
@@ -154,46 +235,46 @@
                 #endregion
 
                 #region 鍑烘彁鍗囨満浠诲姟
-                if (device != null && device.IsConnected)
-                {
-                    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
-                    {
-                        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F");
-                        if (dt_Task == null)
-                        {
-                            hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free);
-                            if (hKLocation != null)
-                            {
-                                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                                 dt_Task = new Dt_Task()
-                                {
-                                    TaskNum = tasknum,
-                                    WMSTaskNum = "GP" + tasknum,
-                                    Grade = 60,
-                                    PalletCode = "LXM" + tasknum,
-                                    Roadway = "",
-                                    TaskState = (int)TaskStatusEnum.New,
-                                    TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(),
-                                    SourceAddress = "TSJC4F",
-                                    CurrentAddress = "TSJC4F",
-                                    NextAddress = hKLocation.LocationCode,
-                                    TargetAddress = hKLocation.LocationCode,
-                                    Creater = "WCS",
-                                };
-                                var content = _taskService.SendHIKROBOTTask(dt_Task);
-                                if (content.Status)
-                                {
-                                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                                    dt_Task.Dispatchertime = DateTime.Now;
-                                    hKLocation.LocationStatus = (int)LocationStatusEnum.InLock;
-                                    _taskService.AddData(dt_Task);
-                                    _HKLocationInfoService.UpdateData(hKLocation);
-                                }
-                            }
-                        }
-                         
-                    }
-                }
+                //if (device != null && device.IsConnected)
+                //{
+                //    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
+                //    {
+                //        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F");
+                //        if (dt_Task == null)
+                //        {
+                //            hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free);
+                //            if (hKLocation != null)
+                //            {
+                //                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                //                dt_Task = new Dt_Task()
+                //                {
+                //                    TaskNum = tasknum,
+                //                    WMSTaskNum = "GP" + tasknum,
+                //                    Grade = 60,
+                //                    PalletCode = "LXM" + tasknum,
+                //                    Roadway = "",
+                //                    TaskState = (int)TaskStatusEnum.New,
+                //                    TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(),
+                //                    SourceAddress = "TSJC4F",
+                //                    CurrentAddress = "TSJC4F",
+                //                    NextAddress = hKLocation.LocationCode,
+                //                    TargetAddress = hKLocation.LocationCode,
+                //                    Creater = "WCS",
+                //                };
+                //                var content = _taskService.SendHIKROBOTTask(dt_Task);
+                //                if (content.Status)
+                //                {
+                //                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+                //                    dt_Task.Dispatchertime = DateTime.Now;
+                //                    hKLocation.LocationStatus = (int)LocationStatusEnum.InLock;
+                //                    _taskService.AddData(dt_Task);
+                //                    _HKLocationInfoService.UpdateData(hKLocation);
+                //                }
+                //            }
+                //        }
+
+                //    }
+                //}
                 #endregion
 
                 #endregion
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
index dcff586..53a2629 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
@@ -20,33 +20,33 @@
         /// </summary>
         public void SendNewTask()
         {
-            try
-            {
-                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList();
-                if (newTasks.Count > 0)
-                {
-                    #region 鏌ユ壘鍑箰澹换鍔�
-                    //var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.MLInbound || x.TaskType == (int)TaskTypeEnum.MLOutbound).OrderByDescending(x => x.Grade).ToList();
-                    //if (Tasks.Count > 0) SendGALAXISTask(Tasks);
-                    #endregion
+            //try
+            //{
+            //    var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList();
+            //    if (newTasks.Count > 0)
+            //    {
+            //        #region 鏌ユ壘鍑箰澹换鍔�
+            //        //var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.MLInbound || x.TaskType == (int)TaskTypeEnum.MLOutbound).OrderByDescending(x => x.Grade).ToList();
+            //        //if (Tasks.Count > 0) SendGALAXISTask(Tasks);
+            //        #endregion
 
-                    #region 鏌ユ壘RGV浠诲姟
-                    var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).OrderByDescending(x => x.Grade).ToList();
-                    if (Tasks.Count > 0) SendRGVNewInTask(Tasks);
-                    Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPOutbound).OrderByDescending(x => x.Grade).ToList();
-                    if (Tasks.Count > 0) IsMoveTask(Tasks);
-                    #endregion
+            //        #region 鏌ユ壘RGV浠诲姟
+            //        var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).OrderByDescending(x => x.Grade).ToList();
+            //        if (Tasks.Count > 0) SendRGVNewInTask(Tasks);
+            //        Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPOutbound).OrderByDescending(x => x.Grade).ToList();
+            //        if (Tasks.Count > 0) IsMoveTask(Tasks);
+            //        #endregion
 
-                    #region 鏌ユ壘娴峰悍AGV浠诲姟
-                    Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || x.TaskType == (int)TaskTypeEnum.RK3F || x.TaskType == (int)TaskTypeEnum.CK3F || x.TaskType == (int)TaskTypeEnum.Q1TSJ4 || x.TaskType == (int)TaskTypeEnum.STU0003 || x.TaskType == (int)TaskTypeEnum.F02 || x.TaskType == (int)TaskTypeEnum.CHUKU1 || x.TaskType == (int)TaskTypeEnum.Q3RK || x.TaskType == (int)TaskTypeEnum.Q3CK).OrderByDescending(x => x.Grade).ToList();
-                    if (Tasks.Count > 0) HIKROBOTTask(Tasks);
-                    #endregion
-                }
-            }
-            catch (Exception ex)
-            {
-                WriteError(nameof(TaskJob), ex.Message, ex);
-            }
+            //        #region 鏌ユ壘娴峰悍AGV浠诲姟
+            //        Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || x.TaskType == (int)TaskTypeEnum.RK3F || x.TaskType == (int)TaskTypeEnum.CK3F || x.TaskType == (int)TaskTypeEnum.Q1TSJ4 || x.TaskType == (int)TaskTypeEnum.STU0003 || x.TaskType == (int)TaskTypeEnum.F02 || x.TaskType == (int)TaskTypeEnum.CHUKU1 || x.TaskType == (int)TaskTypeEnum.Q3RK || x.TaskType == (int)TaskTypeEnum.Q3CK).OrderByDescending(x => x.Grade).ToList();
+            //        if (Tasks.Count > 0) HIKROBOTTask(Tasks);
+            //        #endregion
+            //    }
+            //}
+            //catch (Exception ex)
+            //{
+            //    WriteError(nameof(TaskJob), ex.Message, ex);
+            //}
         }
         #endregion
 
@@ -94,13 +94,13 @@
                     #endregion
 
                     #region 涓嬪彂澶栬鍏佽杩涘叆鐨勬捣搴稟GV浠诲姟
-                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).OrderByDescending(x => x.Grade).ToList();
-                    if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
+                    //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).OrderByDescending(x => x.Grade).ToList();
+                    //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                     #endregion
 
                     #region 涓嬪彂鎵樼洏纭瀹屾垚鐨勬捣搴稟GV浠诲姟
-                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList();
-                    if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
+                    //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList();
+                    //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                     #endregion
                 }
             }
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\216\344\270\212\346\270\270\347\263\273\347\273\237\346\216\245\345\217\243\346\270\205\345\215\225/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V2026324.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\216\344\270\212\346\270\270\347\263\273\347\273\237\346\216\245\345\217\243\346\270\205\345\215\225/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V2026324.docx"
new file mode 100644
index 0000000..84cd017
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\216\344\270\212\346\270\270\347\263\273\347\273\237\346\216\245\345\217\243\346\270\205\345\215\225/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V2026324.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\216\350\256\276\345\244\207\344\272\244\344\272\222\346\216\245\345\217\243/\346\265\267\345\272\267AGV/\351\253\230\346\231\256WCS.\346\265\267\345\272\267\345\215\217\350\256\256260323-1.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\216\350\256\276\345\244\207\344\272\244\344\272\222\346\216\245\345\217\243/\346\265\267\345\272\267AGV/\351\253\230\346\231\256WCS.\346\265\267\345\272\267\345\215\217\350\256\256260323-1.xlsx"
new file mode 100644
index 0000000..6272573
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\216\350\256\276\345\244\207\344\272\244\344\272\222\346\216\245\345\217\243/\346\265\267\345\272\267AGV/\351\253\230\346\231\256WCS.\346\265\267\345\272\267\345\215\217\350\256\256260323-1.xlsx"
Binary files differ

--
Gitblit v1.9.3