From f59f3b24814387573b5bca9a9b6c832a3720ee7e Mon Sep 17 00:00:00 2001
From: zhangchengsong <zhangchengsong@hnkhzn.com>
Date: 星期三, 22 四月 2026 17:46:35 +0800
Subject: [PATCH] 最新

---
 项目代码/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  244 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 193 insertions(+), 51 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 60543c3..ccd6893 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -56,6 +56,7 @@
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_Model.Models.System;
 using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DTO;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_TaskInfoRepository;
@@ -123,14 +124,13 @@
                 {
                     task.TaskState = (int)TaskOutStatusEnum.OutFinish;
                     BaseDal.UpdateData(task);
-
                     string Result = WMSTaskStatusEnum.outsuccess.GetDescription();
                     if (task.Creater.Equals("WMS"))
                     {
                         //鍚屾缁欎笂娓稿弽棣堜换鍔″畬鎴�
                         Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
                         CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
-                        if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                        if (command.status != "success")return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
                     }
                     task.ModifyDate = DateTime.Now;
                     BaseDal.DeleteData(task);
@@ -160,18 +160,17 @@
                     task.TaskState = (int)TaskinventoryStatusEnum.inventoryFinish;
                     BaseDal.UpdateData(task);
                     string Result = WMSTaskStatusEnum.insuccess.GetDescription();
-                    
                     if (task.Creater.Equals("WMS"))
                     {
                         Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
                         CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
-                        if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                        if (command.status != "success")return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
                     }
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = "System";
                     BaseDal.DeleteData(task);
                     _task_HtyService.AddTaskHty(task);
-                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍏ュ簱瀹屾垚");
+                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鐩樼偣瀹屾垚");
                 }
                 else
                 {
@@ -472,12 +471,12 @@
         /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
         public List<Dt_Task> QueryStackerCraneTask(string deviceNo, string currentAddress = "")
         {
-            return BaseDal.QueryData(x => x.Roadway == deviceNo && (x.TaskState == (int)TaskInStatusEnum.InNew || x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
+            return BaseDal.QueryData(x => x.Roadway == deviceNo && (x.TaskState == (int)TaskInStatusEnum.InNew || x.TaskState == (int)TaskOutStatusEnum.OutNew || x.TaskState == (int)TaskinventoryStatusEnum.inventoryNew), TaskOrderBy);
         }
 
         public Dt_Task CutStackerCraneTask(string deviceNo)
         {
-            Dt_Task dt_Task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting  || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting));
+            Dt_Task dt_Task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting  || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting || x.TaskState == (int)TaskinventoryStatusEnum.SC_inventoryExecuting));
             return dt_Task;
         }
         /// <summary>
@@ -491,36 +490,21 @@
             try
             {
                 Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
-                if (task != null)
+                if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+                string Result = task.TaskType == 200 || task.TaskType == 300 ? WMSTaskStatusEnum.inerror.GetDescription(): WMSTaskStatusEnum.outerror.GetDescription();
+                if (task.Creater.Equals("WMS"))
                 {
-                    //涓婃姤鍏ュ簱浠诲姟寮傚父
-                    if (task.TaskType == (int)TaskTypeEnum.Inbound)
-                    {
-                        string Result = WMSTaskStatusEnum.inerror.GetDescription();
-                        if (task.Creater.Equals("WMS"))
-                        {
-                            Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
-                            CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
-                            if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屼换鍔″彇娑堝け璐ワ紝鏉$爜锛歿task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-                        }
-
-                        BaseDal.DeleteData(task);
-                        task.ModifyDate = DateTime.Now;
-                        task.Modifier = App.User?.UserName;
-                        task.Remark = "浜哄伐鎵嬪姩鍙栨秷";
-                        BaseDal.DeleteData(task);
-                        _task_HtyService.AddTaskHty(task);
-                        content.Status = true;
-                    }
-                    else
-                    {
-                        WebResponseContent.Instance.Error($"鍙栨秷澶辫触,鍙兘鍙栨秷鍏ュ簱浠诲姟");
-                    }
+                     Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                     CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                     if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屼换鍔″彇娑堝け璐ワ紝鏉$爜锛歿task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
                 }
-                else
-                {
-                    WebResponseContent.Instance.Error($"鍙栨秷澶辫触,璇ヤ换鍔°�恵taskNum}銆戜笉瀛樺湪");
-                }
+                BaseDal.DeleteData(task);
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = App.User?.UserName;
+                task.Remark = "浜哄伐鎵嬪姩鍙栨秷";
+                BaseDal.DeleteData(task);
+                _task_HtyService.AddTaskHty(task);
+                content.Status = true;
                 return content;
             }
             catch (Exception e)
@@ -550,7 +534,7 @@
                         CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
                         if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
                     }
-                        task.ModifyDate = DateTime.Now;
+                    task.ModifyDate = DateTime.Now;
                     task.Modifier = App.User?.UserName;
                     task.Remark = "浜哄伐鎵嬪姩瀹屾垚";
                     BaseDal.DeleteData(task);
@@ -566,7 +550,8 @@
                         CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
                         if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
                     }
-                        task.ModifyDate = DateTime.Now;
+                    
+                    task.ModifyDate = DateTime.Now;
                     task.Modifier = App.User?.UserName;
                     task.Remark = "浜哄伐鎵嬪姩瀹屾垚";
                     BaseDal.DeleteData(task);
@@ -574,20 +559,21 @@
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鎵嬪姩鍏ュ簱瀹屾垚");
                 }
                 else if (task.TaskType == (int)TaskTypeEnum.Inventorybound)
-                {;
+                {
                     string Result = WMSTaskStatusEnum.insuccess.GetDescription();
                     if (task.Creater.Equals("WMS"))
                     {
                         Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
                         CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
                         if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+
                     }
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = App.User?.UserName;
                     task.Remark = "浜哄伐鎵嬪姩瀹屾垚";
                     BaseDal.DeleteData(task);
                     _task_HtyService.AddTaskHty(task);
-                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鎵嬪姩鍏ュ簱瀹屾垚");
+                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鎵嬪姩鐩樼偣瀹屾垚");
                 }
                 else
                 {
@@ -615,9 +601,6 @@
             try
             {
                 IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName.Contains("鍫嗗灈鏈�"));
-
-
-
                 // 鍒ゆ柇璁惧鏄惁瀛樺湪
                 if (device == null)
                 {
@@ -627,8 +610,9 @@
                 }
 
                 // 鍒ゆ柇鍦板潃鏄惁灞炰簬褰撳墠璁惧搴�
-                if (transfer.SourceAddress.Contains(device.DeviceCode) && transfer.TargetAddress.Contains(device.DeviceCode))
+                if ((transfer.TaskType == 300 || transfer.SourceAddress.Contains(device.DeviceCode) ) && transfer.TargetAddress.Contains(device.DeviceCode))
                 {
+                      
                     // 鍏ュ簱
                     if (transfer.TaskType == 200)
                     {
@@ -637,6 +621,7 @@
                         {
                             content.Error($"鎵嬪姩鍒涘缓浠诲姟澶辫触,鍘熷洜:{device.DeviceCode}搴撲笉瀛樺湪杩欎釜搴撳彛锛歿transfer.SourceAddress}");
                             WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓澶辫触", "鍒涘缓澶辫触", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+
                         }
                         else
                         {
@@ -652,8 +637,8 @@
                             _unitOfWorkManage.BeginTran();
                             BaseDal.AddData(transfer);
                             _unitOfWorkManage.CommitTran();
-                            content.OK("鎵嬪姩浠诲姟鍒涘缓鎴愬姛锛�");
-                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                            content.OK("鎵嬪姩鍏ュ簱浠诲姟鍒涘缓鎴愬姛锛�");
+                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"锛屼换鍔$被鍨嬶細銆愬叆搴撱�戯紝浠诲姟鍙凤細銆恵transfer.TaskNum}銆戞墭鐩樼紪鍙凤細銆恵transfer.PalletCode}銆�,璧峰鍦板潃锛氥�恵transfer.SourceAddress}銆戯紝鐩爣鍦板潃锛氥�恵transfer.TargetAddress}銆�");
                         }
                         return content;
 
@@ -670,7 +655,7 @@
                         {
                             // 姝e父鍒涘缓浠诲姟
                             transfer.TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                            transfer.TaskState = 200;
+                            transfer.TaskState = 100;
                             transfer.CurrentAddress = transfer.SourceAddress;
                             transfer.NextAddress = transfer.TargetAddress;
                             transfer.Roadway = device.DeviceCode;
@@ -680,18 +665,35 @@
                             _unitOfWorkManage.BeginTran();
                             BaseDal.AddData(transfer);
                             _unitOfWorkManage.CommitTran();
-                            content.OK("鎵嬪姩浠诲姟鍒涘缓鎴愬姛锛�");
-                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                            content.OK("鎵嬪姩鍑哄簱浠诲姟鍒涘缓鎴愬姛锛�");
+                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"浠诲姟绫诲瀷锛氥�愬嚭搴撱��,浠诲姟鍙凤細銆恵transfer.TaskNum}銆戞墭鐩樼紪鍙凤細銆恵transfer.PalletCode}銆戯紝,璧峰鍦板潃锛氥�恵transfer.SourceAddress}銆戯紝鐩爣鍦板潃锛氥�恵transfer.TargetAddress}銆�");
                         }
                         return content;
+                    } 
+                    else if (transfer.TaskType == 300)
+                    {
+                            // 姝e父鍒涘缓浠诲姟
+                            transfer.TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                            transfer.TaskState = 300;
+                            transfer.CurrentAddress = transfer.SourceAddress;
+                            transfer.NextAddress = transfer.TargetAddress;
+                            transfer.Roadway = device.DeviceCode;
+                            transfer.Creater = "WCS";
+                            transfer.Grade = 1;
+                            transfer.CreateDate = DateTime.Now;
+                            _unitOfWorkManage.BeginTran();
+                            BaseDal.AddData(transfer);
+                            _unitOfWorkManage.CommitTran();
+                            content.OK("鎵嬪姩鐩樼偣浠诲姟鍒涘缓鎴愬姛锛�");
+                        WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"锛屼换鍔$被鍨嬶細銆愮洏鐐广�戯紝浠诲姟鍙凤細銆恵transfer.TaskNum}銆戯紝鎵樼洏缂栧彿锛氥�恵transfer.PalletCode}銆戯紝鐩爣鍦板潃锛氥�恵transfer.TargetAddress}銆�");
+
+                        return content;
                     }
-
-
                 }
                 else
                 {
                     content.Error($"鎵嬪姩鍒涘缓浠诲姟澶辫触,鍘熷洜:{device.DeviceCode}搴撳湴鍧�涓嶅尮閰�,璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
-                    WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓澶辫触", "鍒涘缓澶辫触", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                    WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓澶辫触", "鍒涘缓澶辫触",$"浠诲姟鍙凤細銆恵transfer.TaskNum}銆戯紝鎵樼洏缂栧彿锛氥�恵transfer.PalletCode}銆戯紝鐩爣鍦板潃锛氥�恵transfer.TargetAddress}銆�");
                 }
             }
             catch (Exception ex)
@@ -701,5 +703,145 @@
             }
             return content;
         }
+        /// <summary>
+        /// 鎵嬪姩鍒犻櫎浠诲姟
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+
+        public WebResponseContent CreateDelete(int taskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = App.User?.UserName;
+                task.Remark = "浜哄伐鎵嬪姩鍒犻櫎";
+                content.Status =  BaseDal.DeleteData(task);
+                _task_HtyService.AddTaskHty(task);
+                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鎵嬪姩鍒犻櫎浠诲姟");
+            }
+            catch(Exception e)
+            {
+                WebResponseContent.Instance.Error(e.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 缂栬緫
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public override WebResponseContent UpdateData(SaveModel saveModel)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string json = JsonConvert.SerializeObject(saveModel.MainData);
+                Dt_Task task = JsonConvert.DeserializeObject<Dt_Task>(json);
+                content.Status = BaseDal.UpdateData(task);
+            }catch(Exception e)
+            {
+                WebResponseContent.Instance.Error(e.Message);
+            }
+            return content;
+        }
+        ///
+
+        //agv杩涘嚭鐘舵�佸弽棣�
+        public WebResponseContent getManuaAGVStatus(AgvUpdateRequest agvUpdateRequest)
+        {
+            //鑾峰彇WMS璋冨彇鐨勫弬鏁�
+            WriteLog.Write_Log("鎵嬪姩agv杩涘嚭鐘舵�佸弽棣堟帴鍙�", "鎵嬪姩agv杩涘嚭鐘舵�佷俊鎭�", $"搴撳彛鍚嶇О锛氥�恵agvUpdateRequest.warehousenumber}銆戯紝鐢宠鐘舵�侊細銆恵agvUpdateRequest.agvstatus}銆�");
+
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string DeciceCodes = "1003";
+                if (agvUpdateRequest.warehousenumber.StartsWith("C")) DeciceCodes = "1004";
+
+                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeciceCodes);
+                if (device == null) return content.Error("WCS鏈兘鑾峰彇鍒板簱鍙e疄渚�");
+                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+
+                //鏄惁鍙繘鍑�
+                DeviceProDTO? HandShake = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "HandShake");
+                if (HandShake == null) return content.Error($"WCS鏈壘鍒板簱鍙o細{agvUpdateRequest.warehousenumber},瀵瑰簲鐨勫崗璁�");
+                DeviceProDTO? Request = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "Request");
+
+                if (agvUpdateRequest.agvstatus == 1)
+                {
+                    bool HandShakebool = conveyorLine.Communicator.Write<short>(HandShake.DeviceProAddress, 1);
+                    if (HandShakebool)
+                    {
+                        if (Request != null)
+                        {
+                            conveyorLine.Communicator.Write<short>(Request.DeviceProAddress, 1);
+                        }
+                        //鏄惁鍙繘鍑�    1鍏佽鍙�  2鍏佽鏀�
+                        DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "PermitHandShake");
+                        //鏄惁鏈夎揣
+                        DeviceProDTO? StationNumProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "StationNum");
+                        if (deviceProDTO == null || StationNumProDTO == null) return content.Error($"WCS鏈壘鍒板簱鍙o細{agvUpdateRequest.warehousenumber},瀵瑰簲鐨勫崗璁�");
+                        int statusValue = 0;
+                        int portStatus = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress);
+                        int StationStatus = conveyorLine.Communicator.Read<ushort>(StationNumProDTO.DeviceProAddress);
+
+                        //鏈夎揣锛屽彲杩涗俊鍙�
+                        statusValue = ((portStatus == 1 && StationStatus == 1) || (portStatus == 2 && StationStatus == 0)) ? 1 : (portStatus == 0) ? 0 : 0;
+                        if (agvUpdateRequest.warehousenumber == "G01" || agvUpdateRequest.warehousenumber == "G06" || agvUpdateRequest.warehousenumber == "G07")
+                        {
+                            if (statusValue == 1)
+                            {
+                                return content.OK("鐢宠杩涘叆鎴愬姛");
+
+                            }
+                            else
+                            {
+                                conveyorLine.Communicator.Write<short>(Request.DeviceProAddress, 0);
+                                return content.Error("璇诲彇plc涓嶅彲杩涘叆淇℃伅");
+                            }
+                        }
+                        else
+                        {
+                            return content.OK("鐢宠杩涘叆鎴愬姛");
+                        }
+                    }
+                    else
+                    {
+                        return content.Error("鍐欏叆plc杩涘叆淇″彿澶辫触");
+                    }
+                }
+                else if (agvUpdateRequest.agvstatus == 2)
+                {
+                    //鍐欏叆杈撻�佺嚎淇″彿
+                    bool portStatus = conveyorLine.Communicator.Write<short>(HandShake.DeviceProAddress, 0);
+                    if (portStatus)
+                    {
+                        if (Request != null)
+                        {
+                            conveyorLine.Communicator.Write<short>(Request.DeviceProAddress, 0);
+                        }
+                        return content.OK("鐢宠閫�鍑烘垚鍔�");
+                    }
+                    else
+                    {
+                        return content.Error("鍐欏叆plc娓呴櫎淇″彿澶辫触");
+                    }
+                }
+                else
+                {
+                    return content.Error($"agv瀵瑰簲鐨勭敵璇烽敊璇紝瀛楁锛歛gvstatus锛岀敵璇风殑鍊硷細{agvUpdateRequest.agvstatus}");
+                }
+
+            }
+            catch (Exception ex)
+            {
+                return content.Error($"WCS浠诲姟娣诲姞閿欒锛屽師鍥狅細{ex.Message}");
+            }
+        }
     }
 }

--
Gitblit v1.9.3