From 0128fce75a5e7cc9afc4bd89ce1966eb2231b69f Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期二, 31 三月 2026 10:55:33 +0800
Subject: [PATCH] 编写海康跨楼层接口

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs |  150 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 103 insertions(+), 47 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
index 2c3ae55..0dbd942 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
@@ -4,6 +4,8 @@
 using System.Reflection.Metadata;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO;
@@ -24,7 +26,7 @@
         {
             foreach (var item in tasks)
             {
-                var content = SendHIKROBOTTask(item);
+                var content = _taskService.SendHIKROBOTTask(item);
             }
         }
         #endregion
@@ -34,66 +36,120 @@
         {
             foreach (var item in tasks)
             {
-                var content = SendHIKROBOTTask(item);
+                var content = _taskService.SendHIKROBOTTask(item);
             }
+
         }
         #endregion
 
-        #region 涓嬪彂娴峰悍AGV浠诲姟
-        public WebResponseContent SendHIKROBOTTask(Dt_Task task)
+        #region 涓嬪彂娴峰悍1-6妤肩殑AGV浠诲姟
+        public void SendAGVTask(List<Dt_Task> tasks)
+        {
+            foreach (var item in tasks)
+            {
+                if (item.TaskState == (int)TaskTypeEnum.Q3CK)
+                {
+                    // 璋冪敤鎺ュ彛鑾峰彇灏忚溅淇℃伅
+                    var result = _agvcartInfoService.CheckTheCar();
+
+                    // 鍒ゆ柇鏄惁鏈� AA 鎴� FF
+                    bool hasAAOrFF = false;
+
+                    if (item.TaskState == (int)TaskTypeEnum.Q3CK)
+                    {
+                        if (result != null && result.Status)
+                        {
+                            var dataList = result.Data as List<HIKROBOTQueryData>;
+                            if (dataList != null && dataList.Any())
+                            {
+                                // 妫�鏌ヨ繑鍥炵殑 mapCode 鍒楄〃涓槸鍚︽湁 AA 
+                                hasAAOrFF = dataList.Any(d => d.mapCode == "AA");
+                                if (hasAAOrFF)
+                                {
+                                    var content = _taskService.SendHIKROBOTTask(item);
+                                    item.TaskState = (int)TaskStatusEnum.Execut;
+                                }
+                                else//杩欓噷鎴戝氨瑕佸懠鍙┖杞︽潵
+                                {
+                                    //娣诲姞绌鸿溅杩愯緭浠诲姟
+                                    AddAGVCartInfo(item);
+                                    item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
+                                }
+                            }
+                           
+                        }
+                    }
+                    else
+                    {
+                        if (result != null && result.Status)
+                        {
+                            if (hasAAOrFF)
+                            {
+                                var content = _taskService.SendHIKROBOTTask(item);
+                                item.TaskState = (int)TaskStatusEnum.Execut;
+                            }
+                            else//杩欓噷鎴戝氨瑕佸懠鍙┖杞︽潵
+                            {
+                                //娣诲姞绌鸿溅杩愯緭浠诲姟
+                                AddAGVCartInfo(item);
+                                item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
+                            }
+                        }
+                    }
+                }
+            }
+            _taskService.UpdateData(tasks);
+        }
+        #endregion
+
+
+        #region 澶勭悊娴峰悍agv鎼繍浠诲姟
+        public WebResponseContent AddAGVCartInfo(Dt_Task task)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
-                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(HIKROBOTTaskSubmit)) ?? throw new Exception("鏈壘鍒版捣搴稟GV浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
-
-                #region 浠诲姟淇℃伅杞崲
-                HIKROBOTTaskSubmit hIKROBOTTaskSubmit = new HIKROBOTTaskSubmit()
-                {
-                    taskType = "",
-                    initPriority = task.Grade,
-                    targetRoute = new List<TargetRouteDto>
-                    {
-                        new TargetRouteDto
-                        {
-                            type= "SITE",
-                            code=task.CurrentAddress,
-                            operation="COLLECT",//鍙栬揣
-                        },
-                        new TargetRouteDto
-                        {
-                            type= "SITE",
-                            code=task.NextAddress,
-                            operation="DELIVERY",//閫佽揣
-                        }
-                    }
-                };
-                #endregion
-
-                string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskSubmit.Serialize());
-                var hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>();
-                if (hIKROBOTReturn.code == "SUCCESS")
-                {
-                    var data = hIKROBOTReturn.data.ToString().DeserializeObject<HIKROBOTReturnData>();
-                    content.OK(data: data);
-                    //task.Remark = data.robotTaskCode;
-                }
-                else
-                {
-                    throw new Exception(hIKROBOTReturn.message);
-                }
-                //_taskService.UpdateData(task);
+                task.TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                task.WMSTaskNum = null;
+                task.TaskType = (int)TaskTypeEnum.Move;//鎹㈠眰浠诲姟
+                task.TaskState = (int)TaskStatusEnum.CallingHKtransportation;
+                var result = _taskService.SendHIKROBOTTask(task);
+                _taskService.AddData(task);
             }
             catch (Exception ex)
             {
-                content.Error(ex.Message);
-            }
-            finally
-            {
-
+                content.Error($"鍒涘缓澶辫触锛歿ex.Message}");
             }
             return content;
         }
         #endregion
+
+        #region 澶勭悊agv寰呯┖杞︽惉杩愪换鍔�
+        public void SendHKWaitTask()
+        {
+            try
+            {
+                List<Dt_Task> reslut = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.Move);
+                if (reslut.Count<0)
+                {
+                    foreach (var item in reslut)
+                    {
+                        var content = _taskService.SendHIKROBOTTask(item);
+                    }   
+                    reslut.ForEach(x =>
+                    {
+                        x.TaskState =(int)TaskStatusEnum.Execut;
+                    });
+
+                }
+                _taskService.UpdateData(reslut);
+               
+            }
+            catch (Exception ex)
+            {
+                WriteError(nameof(TaskJob), ex.Message, ex);
+            }
+        }
+        #endregion
     }
 }

--
Gitblit v1.9.3