From b466b3135cd7f3b08f570efda0ffb691daff5270 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 05 十二月 2025 18:15:16 +0800
Subject: [PATCH] 一期输送线代码及AGV请求等

---
 项目代码/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs |   95 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 76 insertions(+), 19 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index dcc11dc..6c5807b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using System.Text;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseController;
@@ -22,28 +23,21 @@
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
         private readonly IRouterExtension _routerExtension;
-        //private readonly WebSocketServer _webSocketServer;
         private readonly IStationMangerRepository _stationMangerRepository;
 
-        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor, IRouterExtension routerExtension/*, WebSocketServer webSocketServer*/, IStationMangerRepository stationMangerRepository) : base(service)
+        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor, IRouterExtension routerExtension, IStationMangerRepository stationMangerRepository) : base(service)
         {
             _httpContextAccessor = httpContextAccessor;
             _routerExtension = routerExtension;
             _stationMangerRepository=stationMangerRepository;
-            //_webSocketServer = webSocketServer;
         }
 
         [HttpPost, Route("ReceiveTask"), AllowAnonymous]
-        public WebResponseContent ReceiveWMSTask([FromBody] List<WMSTaskDTO> taskDTOs)
+        public WebResponseContent ReceiveWMSTask([FromBody] WMSTaskDTO taskDTO)
         {
-            return Service.ReceiveWMSTask(taskDTOs);
+            return Service.ReceiveWMSTask(taskDTO);
         }
 
-        [HttpPost, HttpGet, Route("RequestAssignLocation"), AllowAnonymous]
-        public string? RequestAssignLocation(int taskNum, string roadwayNo)
-        {
-            return Service.RequestAssignLocation(taskNum, roadwayNo);
-        }
 
         [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
         public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message)
@@ -62,26 +56,89 @@
         {
             return Service.RollbackTaskStatusToLast(taskNum);
         }
-
+        /// <summary>
+        /// 瀹瑰櫒娴佸姩鎺ュ彛
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("ContainerFlow"), AllowAnonymous]
+        public WebResponseContent ContainerFlow([FromBody] ContainerFlowDTO containerFlowDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x=>x.PickStationCode==containerFlowDTO.SlotCode) ?? throw new Exception($"{containerFlowDTO.SlotCode}鎷i�変綅缃笉瀛樺湪");
+                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode);
+                if (device == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶噞stationManger.StationDeviceCode}");
+                }
+                if (stationManger.StationDeviceCode== "CL1" || stationManger.StationDeviceCode == "CL2")
+                {
+                    OtherDevice commonConveyorLine = (OtherDevice)device;
+                    byte[] bytesPick = commonConveyorLine.Communicator.Read("12", 5);
+                    string PickBarCode = Encoding.UTF8.GetString(bytesPick).Replace("\0", "").Replace("\\0", "");
+                    if (containerFlowDTO.ContainerCode != PickBarCode) throw new Exception($"浼犲叆鏂欑鐮亄containerFlowDTO.ContainerCode}锛岃緭閫佹枡绠辩爜{PickBarCode}鏁版嵁閿欒");
+                    if (containerFlowDTO.Direction == "100")
+                    {
+                        WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode);
+                        if (!responseContent.Status) throw new Exception(responseContent.Message);
+                    }
+                    commonConveyorLine.Communicator.Write("22", (short)(containerFlowDTO.Direction == "100" ? 256 : 512));
+                }
+                else
+                {
+                    CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
+                    string PickBarCode = commonConveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_PickBarCode, stationManger.StationCode).Trim();
+                    if (containerFlowDTO.ContainerCode != PickBarCode) throw new Exception($"浼犲叆鏂欑鐮亄containerFlowDTO.ContainerCode}锛岃緭閫佹枡绠辩爜{PickBarCode}鏁版嵁閿欒");
+                    if (containerFlowDTO.Direction == "100")
+                    {
+                        WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode);
+                        if (!responseContent.Status) throw new Exception(responseContent.Message);
+                    }
+                    commonConveyorLine.SetValue(ConveyorLineDBName.W_PickToHode, (short)containerFlowDTO.Direction.ObjToInt(), stationManger.StationCode);
+                }
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鐢宠鍏ュ簱
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("RequestInTask"), AllowAnonymous]
+        public WebResponseContent RequestInTask(string stationCode, string barCode)
+        {
+            return Service.RequestInTask(stationCode, barCode);
+        }
         [HttpPost, HttpGet, Route("GetRouteEndPoint"), AllowAnonymous]
         public WebResponseContent GetRouteEndPoint(string startPoint, int routeType)
         {
             return WebResponseContent.Instance.OK(data: _routerExtension.GetEndPoint(startPoint, routeType));
-        }
-        [HttpPost, HttpGet, Route("AssignCPRoadwayNo"), AllowAnonymous]
-        public WebResponseContent AssignCPRoadwayNo()
-        {
-            return Service.AssignCPRoadwayNo();
         }
         /// <summary>
         /// WMS浠诲姟瀹屾垚鍚屾
         /// </summary>
         /// <param name="taskNum"></param>
         /// <returns></returns>
-        [HttpPost, HttpGet, Route("RecWMSTaskCompleted"), AllowAnonymous]
-        public WebResponseContent RecWMSTaskCompleted(int taskNum)
+        [HttpPost, HttpGet, Route("RecTaskCompleted"), AllowAnonymous]
+        public WebResponseContent RecTaskCompleted(int taskNum)
         {
-            return Service.RecWMSTaskCompleted(taskNum);
+            return Service.TaskCompleted(taskNum);
+        }
+
+        /// <summary>
+        /// WMS浠诲姟鍙栨秷鍚屾
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("CancelTask"), AllowAnonymous]
+        public WebResponseContent CancelTask(List<TaskCancel> taskCancels)
+        {
+            return WebResponseContent.Instance.Error();
         }
     }
 }

--
Gitblit v1.9.3