From 441e6f4ff70d8702b8842b33941658df13288ce5 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 10 三月 2026 14:02:48 +0800
Subject: [PATCH] 优化四向车入库逻辑

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs       |    6 +-
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs    |   68 ++++++++++++++++++++++++++++++++-
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   40 ++++++++++----------
 3 files changed, 88 insertions(+), 26 deletions(-)

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 e29aaa4..7fdb79e 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"
@@ -1125,28 +1125,28 @@
                 #endregion
 
                 #region 鍒涘缓鍥涘悜杞︿换鍔�
-                var task = BaseDal.QueryFirst(x => x.PalletCode == iQC.ContainerCode && x.SourceAddress == iQC.StationCode && x.TaskState == (int)TaskStatusEnum.New);
+                //var task = BaseDal.QueryFirst(x => x.PalletCode == iQC.ContainerCode && x.SourceAddress == iQC.StationCode && x.TaskState == (int)TaskStatusEnum.New);
                 #endregion
                 #region 鍛煎彨鍥涘悜杞�
-                apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
-                FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new()
-                {
-                    priority = task.Grade,
-                    podID = task.PalletCode,
-                    //desNodeID = task.SourceAddress,
-                    desExt = new
-                    {
-                        unload = 0//鏄惁鏀句笅瀹瑰櫒,0鍚�1鏄�
-                    },
-                    desStationCodes = task.SourceAddress,
-                    desType = 5
-                };
-                response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
-                fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
-                content.Data = fOURBOTReturn;
-                if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
-                task.TaskState = (int)TaskStatusEnum.Execut;
-                BaseDal.UpdateData(task);
+                //apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
+                //FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new()
+                //{
+                //    priority = task.Grade,
+                //    podID = task.PalletCode,
+                //    //desNodeID = task.SourceAddress,
+                //    desExt = new
+                //    {
+                //        unload = 0//鏄惁鏀句笅瀹瑰櫒,0鍚�1鏄�
+                //    },
+                //    desStationCodes = task.SourceAddress,
+                //    desType = 5
+                //};
+                //response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
+                //fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
+                //content.Data = fOURBOTReturn;
+                //if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
+                //task.TaskState = (int)TaskStatusEnum.Execut;
+                //BaseDal.UpdateData(task);
                 #endregion
                 return WebResponseContent.Instance.OK();
             }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
index 5323c10..3c049b9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
@@ -20,13 +20,75 @@
 {
     public partial class TaskJob
     {
-
-        #region 涓嬪彂鍥涘悜杞﹀叆搴撲换鍔�
         /// <summary>
         /// 涓嬪彂鍥涘悜杞︽柊寤哄叆搴撲换鍔�
         /// </summary>
         /// <param name="tasks"></param>
-        public void SendRGVInTask(List<Dt_Task> tasks)
+        public void SendRGVNewInTask(List<Dt_Task> tasks)
+        {
+            FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
+                int i = 0;
+                foreach (var task in tasks)
+                {
+                    i++;
+                    fOURBOTnewMovePodTask = new()
+                    {
+                        priority = task.Grade,
+                        podID = task.PalletCode,
+                        desExt = new
+                        {
+                            unload = 0//鏄惁鏀句笅瀹瑰櫒,0鍚�1鏄�
+                        },
+                        desStationCodes = task.SourceAddress,
+                        desType = 5
+                    };
+                    fOURBOTnewMovePodTask.requestID += i;
+                    try
+                    {
+                        string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
+                        FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
+                        content.Data = fOURBOTReturn;
+                        if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
+
+                        string dataJson = fOURBOTReturn.data.ToString();
+                        FOURBOTnewMovePodTaskResponseData? fOURBO = JsonConvert.DeserializeObject<FOURBOTnewMovePodTaskResponseData>(dataJson);
+                        if (fOURBO == null || fOURBO.taskID == 0)
+                        {
+                            throw new Exception($"鏈幏鍙栧埌鍥涘悜杞﹁繑鍥炵殑浠诲姟ID锛岃繑鍥炴暟鎹細{response}");
+                        }
+                        //FOURBOTnewMovePodTaskResponseData fOURBO = fOURBOTReturn.data as FOURBOTnewMovePodTaskResponseData ?? throw new Exception("鏈幏鍙栧埌鍥涘悜杞﹁繑鍥炵殑浠诲姟ID");
+                        task.RGVTaskId = fOURBO.taskID;
+                        task.ExceptionMessage = "";
+                        task.TaskState = (int)TaskStatusEnum.Execut;
+                    }
+                    catch (Exception ex)
+                    {
+                        task.ExceptionMessage = ex.Message;
+                    }
+                }
+                _taskService.UpdateData(tasks);
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            finally
+            {
+                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "涓嬪彂鍥涘悜杞︽柊寤哄叆搴撲换鍔�", "", "");
+            }
+        }
+
+        #region 
+        /// <summary>
+        /// 涓嬪彂鍥涘悜杞﹀褰㈡娴嬩换鍔�
+        /// </summary>
+        /// <param name="tasks"></param>
+        public void SendRGVCheckShapeTask(List<Dt_Task> tasks)
         {
             FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
             WebResponseContent content = new WebResponseContent();
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 e27beab..78f92f0 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"
@@ -23,7 +23,7 @@
             try
             {
                 var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound && x.TaskState == (int)TaskStatusEnum.WaiCheckShape).ToList();
-                if (newTasks.Count > 0) SendRGVInTask(newTasks);
+                if (newTasks.Count > 0) SendRGVCheckShapeTask(newTasks);
                 newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList();
                 if (newTasks.Count > 0)
                 {
@@ -33,8 +33,8 @@
                     #endregion
 
                     #region 鏌ユ壘RGV浠诲姟
-                    //Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).ToList();
-                    //if (Tasks.Count > 0) SendRGVInTask(Tasks);
+                    Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).ToList();
+                    if (Tasks.Count > 0) SendRGVNewInTask(Tasks);
                     Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPOutbound).ToList();
                     if (Tasks.Count > 0) IsMoveTask(Tasks);
                     #endregion

--
Gitblit v1.9.3