From 4bc0e18b94a2bf17c1b7277910d63ef82fbe616a Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 10 一月 2025 09:39:51 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs |  118 ++++++++++++++++++++--------------------------------------
 1 files changed, 41 insertions(+), 77 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
similarity index 69%
copy from "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs"
copy to "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
index 000b58c..eacf3b7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
@@ -17,18 +17,43 @@
 {
     [Route("api/[controller]")]
     [ApiController]
-    public class AGVController : ControllerBase
+    public class CTU_AGVController : ControllerBase
     {
         private readonly IStationMangerRepository _stationMangerRepository;
         private readonly ITaskService _taskService;
         private readonly ITaskRepository _taskRepository;
 
-        public AGVController(IStationMangerRepository stationMangerRepository, ITaskService taskService, ITaskRepository taskRepository)
+        public CTU_AGVController(IStationMangerRepository stationMangerRepository, ITaskService taskService, ITaskRepository taskRepository)
         {
             _stationMangerRepository = stationMangerRepository;
             _taskService = taskService;
             _taskRepository = taskRepository;
         }
+        [HttpPost, HttpGet, Route("AGVFinish"), AllowAnonymous]
+        public WebResponseContent AGVFinish(string barcode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var task = _taskRepository.QueryFirst(x => x.PalletCode == barcode);
+                if (task == null) throw new Exception($"鏈壘鍒颁换鍔�,鎵樼洏鍙枫�恵barcode}銆�");
+                AgvUpdateDTO updateDTO = new AgvUpdateDTO()
+                {
+                    TaskCode = task.AgvTaskNum,
+                    Method = "end"
+                };
+                var agvResponseContent = CtuCallback(updateDTO);
+                if (agvResponseContent.Code == "1") throw new Exception(agvResponseContent.Message);
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        #region 瀹夊叏淇″彿鐢宠
         /// <summary>
         /// 瀹夊叏淇″彿鐢宠 AGV-WCS
         /// </summary>
@@ -41,23 +66,15 @@
             agvResponseContent.ReqCode = secureApplyModel.ReqCode;
             try
             {
-                var task = _taskRepository.QueryFirst(x => secureApplyModel.TaskCode== x.AgvTaskNum);
+                var task = _taskRepository.QueryFirst(x => secureApplyModel.TaskCode == x.AgvTaskNum);
                 if (task == null) throw new Exception("鏈壘鍒颁换鍔�");
                 if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                 {
-                    var content = TakeRequest(task.CurrentAddress);
-                    if (!content.Status)
-                    {
-                        throw new Exception(content.Message);
-                    }
+                    var content = PutRequest(task.NextAddress, task.PalletType);
                 }
                 else
                 {
-                    var content = PutRequest(task.NextAddress, task.PalletType);
-                    if (!content.Status)
-                    {
-                        throw new Exception(content.Message);
-                    }
+                    var content = TakeRequest(task.CurrentAddress);
                 }
                 task.TaskState = TaskStatusEnum.AGV_WaitToExecute.ObjToInt();
                 var up = _taskRepository.UpdateData(task);
@@ -72,13 +89,15 @@
             return agvResponseContent;
             //return _taskService.AgvSecureApply(secureApplyModel);
         }
+        #endregion
+
         /// <summary>
-        /// AGV浠诲姟鏇存柊/瀹屾垚
+        /// CtuAGV浠诲姟鏇存柊/瀹屾垚
         /// </summary>
         /// <param name="agvUpdateModel"></param>
         /// <returns></returns>
-        [HttpPost, HttpGet, Route("AgvCallback"), AllowAnonymous]
-        public AgvResponseContent AgvUpdateTask([FromBody] AgvUpdateDTO agvUpdateModel)
+        [HttpPost, HttpGet, Route("CtuCallback"), AllowAnonymous]
+        public AgvResponseContent CtuCallback([FromBody] AgvUpdateDTO agvUpdateModel)
         {
             AgvResponseContent agvResponseContent = new AgvResponseContent();
             try
@@ -87,67 +106,11 @@
                 agvResponseContent.ReqCode = agvUpdateModel.ReqCode;
                 var task = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum);
                 if (task == null) throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟鍙枫�恵agvUpdateModel.TaskCode}銆�");
-                switch (agvUpdateModel.Method)
+
+                if (agvUpdateModel.Method == "end")
                 {
-                    case "start":
-                        break;
-                    case "outbin"://鍑哄簱鏍规嵁杩欎釜淇″彿鍒ゆ柇鍙栬揣瀹屾垚
-                        if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
-                        {
-                            var content = TakeFinish(task.CurrentAddress);
-                            if (!content.Status) throw new Exception(content.Message);
-                            task.TaskState = TaskStatusEnum.AGV_Finish.ObjToInt();
-                            var up = _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚);
-                            _taskService.TaskCompleted(task.TaskNum);
-                            agvResponseContent.Code = up ? "0" : "1";
-                            agvResponseContent.Message = up ? "鎴愬姛" : "澶辫触";
-                            return agvResponseContent;
-                        }
-                        break;
-                    case "getSafetySignal"://瀹夊叏淇″彿鐢宠
-                        {
-                            if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
-                            {
-                                var content = TakeRequest(task.CurrentAddress);
-                                if (!content.Status) throw new Exception(content.Message);
-                            }
-                            else
-                            {
-                                var content = PutRequest(task.NextAddress, task.PalletType);
-                                if (!content.Status) throw new Exception(content.Message);
-                            }
-                            task.TaskState = TaskStatusEnum.AGV_WaitToExecute.ObjToInt();
-                            var up = _taskRepository.UpdateData(task);
-                            agvResponseContent.Code = up ? "0" : "1";
-                            agvResponseContent.Message = up ? "鎴愬姛" : "澶辫触";
-                            return agvResponseContent;
-                        }
-                    case "end"://鍏ュ簱鏍规嵁杩欎釜淇″彿鍒ゆ柇鏀捐揣瀹屾垚
-                        if (task.TaskType != TaskTypeEnum.Outbound.ObjToInt())
-                        {
-                            var content = PutFinish(task.NextAddress);
-                            if (!content.Status) throw new Exception(content.Message);
-                            Dt_StationManger dt_Station=_stationMangerRepository.QueryFirst(x=>x.AGVStationCode== task.NextAddress);
-                            if (dt_Station==null)
-                            {
-                                throw new Exception($"{task.NextAddress}AGV绔欏彴鏈畾涔�");
-                            }
-                            task.CurrentAddress = dt_Station.StationCode;
-                            task.NextAddress = "";
-                            task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
-                            task.DeviceCode = "SC01_CSJ";
-                            var up = _taskRepository.UpdateData(task);
-                            agvResponseContent.Code = up ? "0" : "1";
-                            agvResponseContent.Message = up ? "鎴愬姛" : "澶辫触";
-                            return agvResponseContent;
-                        }
-                        break;
-                    case "cancel":
-                        task.TaskState = TaskStatusEnum.Cancel.ObjToInt();
-                        _taskRepository.UpdateData(task);
-                        break;
-                    default:
-                        throw new Exception($"鏈畾涔夋柟娉曞悕銆恵agvUpdateModel.Method}銆�");
+                    if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt()) PutFinish(task.NextAddress);
+                    _taskService.TaskCompleted(task.TaskNum);
                 }
                 agvResponseContent.Code = "0";
                 agvResponseContent.Message = "鎴愬姛";
@@ -158,7 +121,6 @@
                 agvResponseContent.Message = ex.Message;
             }
             return agvResponseContent;
-            //return _taskService.AgvUpdateTask(agvUpdateModel);
         }
 
         /// <summary>
@@ -188,6 +150,7 @@
                 bool canPut = otherDevice.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanPut, stationManger.StationCode);
                 if (canPut)
                 {
+                    otherDevice.SetValue(GroundStationDBName.W_PutRequest, true, stationManger.StationCode);
                     return WebResponseContent.Instance.OK();
                 }
                 else
@@ -271,6 +234,7 @@
                 bool canPut = otherDevice.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanTake, stationManger.StationCode);
                 if (canPut)
                 {
+                    otherDevice.SetValue(GroundStationDBName.W_TakeRequest, true, stationManger.StationCode);
                     return WebResponseContent.Instance.OK();
                 }
                 else

--
Gitblit v1.9.3