From 834294889ab62bafaf034b1b87c2ead961c33476 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 05 十二月 2025 09:37:46 +0800
Subject: [PATCH] 更新最新代码

---
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index c9d6b61..362e527 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -5,6 +5,7 @@
 using System.Text.RegularExpressions;
 using WIDESEA_DTO.Agv;
 using WIDESEA_External.Model;
+using WIDESEAWCS_Common.APIEnum;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Enums;
@@ -713,5 +714,79 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+        /// <summary>
+        /// AGV纭瀹屾垚鎺ュ彛(鍙栨斁)
+        /// </summary>
+        /// <param name="code"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("AGVFinish"), AllowAnonymous]
+        public WebResponseContent AGVFinish(string address,int taskNum)
+        {
+            try
+            {
+                Dt_Task task = _taskRepository.QueryFirst(x=>x.TaskNum==taskNum && x.DeviceCode=="AGV");
+                if (task==null)
+                {
+                    return WebResponseContent.Instance.Error($"{taskNum}AGV浠诲姟涓嶅瓨鍦�");
+                }
+                //鑾峰彇瀵瑰簲鐨勫潗鏍囩偣
+                Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x=>x.AGVStationCode== address);
+                if (stationManger==null)
+                {
+                    return WebResponseContent.Instance.Error($"{address}AGV鍦板潃缂栧彿涓嶅瓨鍦�");
+                }
+                if (task.TaskState == TaskStatusEnum.AGV_Executing.ObjToInt())//鍙栬揣
+                {
+                    if (task.CurrentAddress != stationManger.StationCode)
+                    {
+                        return WebResponseContent.Instance.Error($"{taskNum}AGV浠诲姟鍙栬揣鍦板潃缂栧彿涓嶆槸{address}");
+                    }
+                    AgvFinishDTO agvFinishDTO = new AgvFinishDTO()
+                    {
+                        ReceiveTaskID = task.TaskNum.ToString(),
+                        Variables = new List<PointDetail>()
+                        {
+                            new PointDetail()
+                            {
+                                Code="isPick",
+                                Value="true"
+                            }
+                        }
+                    };
+                    //鍙戦�丄GV瀹屾垚閫氱煡
+                    WebResponseContent content = _taskService.AGVFinish(agvFinishDTO);
+                    if (!content.Status)
+                        throw new Exception(content.Message);
+                }
+                else//鏀捐揣
+                {
+                    if (task.NextAddress != stationManger.StationCode)
+                    {
+                        return WebResponseContent.Instance.Error($"{taskNum}AGV浠诲姟鏀捐揣鍦板潃缂栧彿涓嶆槸{address}");
+                    }
+                    AgvFinishDTO agvFinishDTO = new AgvFinishDTO()
+                    {
+                        ReceiveTaskID = task.TaskNum.ToString(),
+                        Variables = new List<PointDetail>()
+                        {
+                            new PointDetail()
+                            {
+                                Code="isDown",
+                                Value="true"
+                            }
+                        }
+                    };
+                    //鍙戦�丄GV瀹屾垚閫氱煡
+                    WebResponseContent content = _taskService.AGVFinish(agvFinishDTO);
+                    if (!content.Status)
+                        throw new Exception(content.Message);
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
     }
 }

--
Gitblit v1.9.3