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 |  449 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 347 insertions(+), 102 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 0628b3d..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"
@@ -2,12 +2,16 @@
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using System.Text;
+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;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_Core.LogHelper;
+using WIDESEAWCS_DTO;
 using WIDESEAWCS_DTO.Agv;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_ITaskInfoRepository;
@@ -20,6 +24,7 @@
 using WIDESEAWCS_Tasks;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using WIDESEAWCS_Tasks.DBNames;
+using WIDESEAWCS_Tasks.StackPlateJob;
 using static Dm.net.buffer.ByteArrayBuffer;
 
 namespace WIDESEAWCS_Server.Controllers
@@ -54,10 +59,6 @@
             AgvResponse agvResponse = new AgvResponse();
             try
             {
-                if (secureApplyModel.ReceiveTaskID=="100")
-                {
-                    return agvResponse.OK("鎴愬姛", "0");
-                }
                 var task = _taskRepository.QueryFirst(x => secureApplyModel.ReceiveTaskID.ObjToInt() == x.TaskNum);
                 if (task == null) throw new Exception("鏈壘鍒颁换鍔�");
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
@@ -72,7 +73,7 @@
                     }
                     else//鍑哄簱鏀捐揣璇锋眰
                     {
-                        var content = PutRequest(task.NextAddress, task.PalletType);
+                        var content = PutRequest(task.NextAddress, task);
                         if (!content.Status)
                         {
                             throw new Exception(content.Message);
@@ -91,7 +92,7 @@
                     }
                     else//鍏ュ簱鏀捐揣璇锋眰
                     {
-                        var content = PutRequest(task.NextAddress, task.TaskNum);
+                        var content = PutRequest(task.NextAddress, task);
                         if (!content.Status)
                         {
                             throw new Exception(content.Message);
@@ -290,7 +291,7 @@
                         else
                         {
                             _taskService.TaskCompleted(task.TaskNum);
-                            if (task.TaskType==TaskTypeEnum.PrintYLOutbound.ObjToInt())
+                            if (task.TaskType==TaskTypeEnum.PrintYLOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutCarton.ObjToInt())
                             {
                                 PutFinish(task.NextAddress);
                             }
@@ -314,7 +315,7 @@
         /// <param name="palletType"></param>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("PutRequest"), AllowAnonymous]
-        public WebResponseContent PutRequest(string code, int taskNum)
+        public WebResponseContent PutRequest(string code, Dt_Task task)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -324,65 +325,131 @@
                 {
                     return content.Error($"鏈壘鍒扮珯鍙伴厤缃�");
                 }
+                #region todo:涓存椂閫昏緫
+                if (stationManger.StationDeviceCode=="MES")
+                {
+                    
+                    RequestAGVArriveDTO requestAGVArriveDTO =new RequestAGVArriveDTO()
+                    {
+                        SD_WorkCentreAgvArriveNoticeInfo=new List<AgvArriveNotice> { new AgvArriveNotice()
+                        {
+                            DispatchPlanMaterialId=task.DispatchPlanId,
+                            WorkCentreCode=task.WorkCentreCode,
+                            LocationCode=code,
+                            CallId=Guid.NewGuid().ToString().Replace("-","")
+                        } }
+                    };
+                    MESResponse response = _taskService.MESAvgArriveNotice(requestAGVArriveDTO).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌杩斿洖淇℃伅");
+                    if (!response.Result)
+                    {
+                        throw new Exception($"璋冪敤MES灏忚溅鍏佽鏀捐揣鎶ラ敊,MES杩斿洖淇℃伅"+ Regex.Replace(response.Msg, @"\\u([0-9a-fA-F]{4})", match => {
+                            return ((char)Convert.ToInt32(match.Groups[1].Value, 16)).ToString();
+                        }));
+                    }
+                    if (response.Obj)
+                    {
+                        return content.Error($"鍏佽鍙栨枡");
+                    }
+                    else
+                    {
+                        return content.Error($"绂佹鏀炬枡");
+                    }
+                    
+                }
+                #endregion
                 IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode);
                 if (device == null)
                 {
                     return content.Error($"鏈壘鍒板搴旇澶�");
                 }
+                if (device.DeviceCode.Contains("Plate"))
+                {
+                    CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
+                    StackPlateTaskCommandCommand command = commonConveyorLine.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode);
 
-                OtherDevice otherDevice = (OtherDevice)device;
+                    if (command != null && command.State == 2 && command.InteractiveSignal == 1)
+                    {
+                        return content.OK("鍏佽鏀炬枡");
+                    }
+                    else
+                    {
+                        return content.Error("绂佹鏀炬枡");
+                    }
+                }
+                else
+                {
 
-                if (device.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎
-                {
-                    short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode);
-                    if (Command == 3)
+                    OtherDevice otherDevice = (OtherDevice)device;
+
+                    if (device.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎
                     {
-                        content.OK("鍏佽鏀炬枡");
+                        short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode);
+                        if (Command == 3)
+                        {
+                            content.OK("鍏佽鏀炬枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鏀炬枡");
+                        }
                     }
-                    else
+                    else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙�
                     {
-                        return content.Error("绂佹鏀炬枡");
+                        bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode);
+                        if (!RequestPut)
+                        {
+                            otherDevice.SetValue(CoveryorDB.C_InTaskNum, task.TaskNum, stationManger.StationDeviceCode);
+                            otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode);
+                            Thread.Sleep(1000);
+                        }
+                        bool AllowFinish = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowFinish, stationManger.StationDeviceCode);
+                        if (AllowFinish)
+                        {
+                            content.OK("鍏佽鏀炬枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鏀炬枡");
+                        }
+                    }
+                    else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
+                    {
+                        bool RequestPut = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_RequestPut, stationManger.StationDeviceCode);
+                        if (!RequestPut)
+                        {
+                            otherDevice.SetValue(RetractDB.Ret_TargetAddress, Convert.ToInt16(stationManger.StationCode), stationManger.StationDeviceCode);
+                            otherDevice.SetValue(RetractDB.Ret_RequestPut, true, stationManger.StationDeviceCode);
+                            Thread.Sleep(1000);
+                        }
+                        bool AllowFinish = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowFinish, stationManger.StationDeviceCode);
+                        if (AllowFinish)
+                        {
+                            content.OK("鍏佽鏀炬枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鏀炬枡");
+                        }
+                    }
+                    else if (device.DeviceCode.Contains("TrussCarton"))//妗佹灦
+                    {
+                        bool RequestPut = otherDevice.GetValue<W_TrussCartonDB, bool>(GetCartonRequest(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
+                        if (!RequestPut)
+                        {
+                            otherDevice.SetValue(GetCartonRequest(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
+                            Thread.Sleep(1000);
+                        }
+                        bool AllowFinish = otherDevice.GetValue<R_TrussCartonDB, bool>(GetCarton(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
+                        if (AllowFinish)
+                        {
+                            content.OK("鍏佽鏀炬枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鏀炬枡");
+                        }
                     }
                 }
-                else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙�
-                {
-                    bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode);
-                    if (!RequestPut)
-                    {
-                        otherDevice.SetValue(CoveryorDB.C_InTaskNum, taskNum, stationManger.StationDeviceCode);
-                        otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode);
-                        Thread.Sleep(1000);
-                    }
-                    bool AllowFinish = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowFinish, stationManger.StationDeviceCode);
-                    if (AllowFinish)
-                    {
-                        content.OK("鍏佽鏀炬枡");
-                    }
-                    else
-                    {
-                        return content.Error("绂佹鏀炬枡");
-                    }
-                }
-                else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
-                {
-                    bool RequestPut = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_RequestPut, stationManger.StationDeviceCode);
-                    if (!RequestPut)
-                    {
-                        otherDevice.SetValue(RetractDB.Ret_TargetAddress, Convert.ToInt16(stationManger.StationCode), stationManger.StationDeviceCode);
-                        otherDevice.SetValue(RetractDB.Ret_RequestPut, true, stationManger.StationDeviceCode);
-                        Thread.Sleep(1000);
-                    }
-                    bool AllowFinish = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowFinish, stationManger.StationDeviceCode);
-                    if (AllowFinish)
-                    {
-                        content.OK("鍏佽鏀炬枡");
-                    }
-                    else
-                    {
-                        return content.Error("绂佹鏀炬枡");
-                    }
-                }
-                
                 return content;
             }
             catch (Exception ex)
@@ -412,21 +479,103 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶�");
                 }
-
-                OtherDevice otherDevice = (OtherDevice)device;
-                if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙�
+                if (device.DeviceCode.Contains("Plate"))
                 {
-                    otherDevice.SetValue(CoveryorDB.C_PutFinish, true, stationManger.StationDeviceCode);
+                    CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
+                    commonConveyorLine.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(1), device.DeviceCode);
+                    return WebResponseContent.Instance.OK();
                 }
-                else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
+                else
                 {
-                    otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode);
+                    OtherDevice otherDevice = (OtherDevice)device;
+                    if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙�
+                    {
+                        otherDevice.SetValue(CoveryorDB.C_PutFinish, true, stationManger.StationDeviceCode);
+                    }
+                    else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
+                    {
+                        otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode);
+                    }
+                    else if (device.DeviceCode.Contains("TrussCarton"))//绾哥妗佹灦
+                    {
+                        otherDevice.SetValue(GetCartonPut(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
+                    }
                 }
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
                 return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇妗佹灦鏀炬枡淇″彿
+        /// </summary>
+        public W_TrussCartonDB GetCartonPut(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return W_TrussCartonDB.W_CartonPut1;
+                case "2":
+                    return W_TrussCartonDB.W_CartonPut2;
+                case "3":
+                    return W_TrussCartonDB.W_CartonPut3;
+                case "4":
+                    return W_TrussCartonDB.W_CartonPut4;
+                case "5":
+                    return W_TrussCartonDB.W_CartonPut5;
+                case "6":
+                    return W_TrussCartonDB.W_CartonPut6;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇妗佹灦璇锋眰淇″彿
+        /// </summary>
+        public W_TrussCartonDB GetCartonRequest(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return W_TrussCartonDB.W_CartonRequest1;
+                case "2":
+                    return W_TrussCartonDB.W_CartonRequest2;
+                case "3":
+                    return W_TrussCartonDB.W_CartonRequest3;
+                case "4":
+                    return W_TrussCartonDB.W_CartonRequest4;
+                case "5":
+                    return W_TrussCartonDB.W_CartonRequest5;
+                case "6":
+                    return W_TrussCartonDB.W_CartonRequest6;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇妗佹灦杩涘叆淇″彿
+        /// </summary>
+        public R_TrussCartonDB GetCarton(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return R_TrussCartonDB.R_CartonAllow1;
+                case "2":
+                    return R_TrussCartonDB.R_CartonAllow2;
+                case "3":
+                    return R_TrussCartonDB.R_CartonAllow3;
+                case "4":
+                    return R_TrussCartonDB.R_CartonAllow4;
+                case "5":
+                    return R_TrussCartonDB.R_CartonAllow5;
+                case "6":
+                    return R_TrussCartonDB.R_CartonAllow6;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
             }
         }
 
@@ -452,46 +601,61 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶噞stationManger.StationDeviceCode}");
                 }
-
-                OtherDevice otherDevice = (OtherDevice)device;
-
-                if (otherDevice.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎
+                if (device.DeviceCode.Contains("Plate"))
                 {
-                    short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode);
-                    if (Command == 2)
+                    CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
+                    StackPlateTaskCommandCommand command = commonConveyorLine.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode);
+                    
+                    if (command != null&&command.State == 2 && command.InteractiveSignal == 2)
                     {
-                        content.OK("鍏佽鍙栨枡");
+                        return content.OK("鍏佽鍙栨枡");
                     }
                     else
                     {
                         return content.Error("绂佹鍙栨枡");
                     }
                 }
-                else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙�
+                else
                 {
-                    bool AllowTake = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowTake, stationManger.StationDeviceCode);
-                    if (AllowTake)
-                    {
-                        content.OK("鍏佽鍙栨枡");
-                    }
-                    else
-                    {
-                        return content.Error("绂佹鍙栨枡");
-                    }
-                }
-                else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
-                {
-                    bool AllowTake = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowTake, stationManger.StationDeviceCode);
-                    if (AllowTake)
-                    {
-                        content.OK("鍏佽鍙栨枡");
-                    }
-                    else
-                    {
-                        return content.Error("绂佹鍙栨枡");
-                    }
-                }
+                    OtherDevice otherDevice = (OtherDevice)device;
 
+                    if (otherDevice.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎
+                    {
+                        short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode);
+                        if (Command == 2)
+                        {
+                            content.OK("鍏佽鍙栨枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鍙栨枡");
+                        }
+                    }
+                    else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙�
+                    {
+                        bool AllowTake = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowTake, stationManger.StationDeviceCode);
+                        if (AllowTake)
+                        {
+                            content.OK("鍏佽鍙栨枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鍙栨枡");
+                        }
+                    }
+                    else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
+                    {
+                        bool AllowTake = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowTake, stationManger.StationDeviceCode);
+                        if (AllowTake)
+                        {
+                            content.OK("鍏佽鍙栨枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鍙栨枡");
+                        }
+                    }
+                }
                 return content;
             }
             catch (Exception ex)
@@ -500,7 +664,6 @@
             }
         }
 
-        //[HttpPost, HttpGet, Route("TakeFinish"), AllowAnonymous]
         /// <summary>
         /// 鍙栬揣瀹屾垚
         /// </summary>
@@ -521,19 +684,27 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶�");
                 }
-
-                OtherDevice otherDevice = (OtherDevice)device;
-                if (device.DeviceCode.Contains("CP"))
+                if (device.DeviceCode.Contains("Plate"))
                 {
-                    otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode);
+                    CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
+                    commonConveyorLine.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(2), device.DeviceCode);
+                    return WebResponseContent.Instance.OK();
                 }
-                else if (device.DeviceCode.Contains("Coveryor"))
+                else
                 {
-                    otherDevice.SetValue(CoveryorDB.C_TakeFinish, true, stationManger.StationDeviceCode);
-                }
-                else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
-                {
-                    otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode);
+                    OtherDevice otherDevice = (OtherDevice)device;
+                    if (device.DeviceCode.Contains("CP"))
+                    {
+                        otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode);
+                    }
+                    else if (device.DeviceCode.Contains("Coveryor"))
+                    {
+                        otherDevice.SetValue(CoveryorDB.C_TakeFinish, true, stationManger.StationDeviceCode);
+                    }
+                    else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶
+                    {
+                        otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode);
+                    }
                 }
 
                 return WebResponseContent.Instance.OK();
@@ -543,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