From f1b3289994738c1302132d09811d58c63e449b45 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期二, 19 十一月 2024 10:18:15 +0800
Subject: [PATCH] 合并

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs |  102 +++++++++++++++++++++++---------------------------
 1 files changed, 47 insertions(+), 55 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
index ba0e4d3..45729cc 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -12,8 +12,8 @@
 using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using HslCommunication;
-using OfficeOpenXml.ConditionalFormatting;
 using WIDESEAWCS_DTO.WMS;
+using WIDESEAWCS_Common;
 
 namespace WIDESEAWCS_Tasks
 {
@@ -24,29 +24,22 @@
         /// </summary>
         private void HandleTaskOut(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_Task taskOut)
         {
-            // 濡傛灉娌℃湁浠诲姟锛岀洿鎺ヨ繑鍥�
             if (taskOut == null) return;
 
-            // 鏄犲皠浠诲姟鍛戒护
             var taskCommand = MapTaskCommand(taskOut, command);
 
-            // 鏍规嵁涓嶅悓鐨勪换鍔$被鍨嬪拰鐘舵�佹墽琛屼笉鍚岀殑閫昏緫
             bool isOutTray = taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray;
             bool isOutboundAndOutFinish = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.SC_OutFinish;
             bool isOutboundAndLineOutExecuting = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting;
 
             if (isOutTray || isOutboundAndOutFinish || !isOutboundAndLineOutExecuting)
             {
-                // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
                 conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                // 鏍囪鍙戦�佸畬鎴�
                 ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                // 鏇存柊浠诲姟鐘舵��
                 _taskService.UpdateTaskStatusToNext(taskOut);
             }
             else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
             {
-                // 瀹屾垚WMS浠诲姟
                 CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue);
             }
         }
@@ -56,20 +49,13 @@
         /// </summary>
         private void HandleNewTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
         {
-            // 鐗瑰畾鏉′欢涓嬪垱寤哄苟鍙戦�佺┖鎵樼洏鍏ュ簱浠诲姟
             if ((conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016") || (conveyorLine.DeviceCode == "1005" && childDeviceCode == "1048"))
             {
-                // 璇锋眰WMS绌烘墭鐩樹换鍔�
                 CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
             }
             else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088") || (conveyorLine.DeviceCode == "1004" && childDeviceCode == "1339"))
             {
-                // 璇锋眰WMS鍏ュ簱浠诲姟
                 RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
-            }
-            else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1073") || (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1002"))
-            {
-                //TODO 鍙戦�佺洿鎺ュ幓NG鍙d换鍔�
             }
         }
 
@@ -78,7 +64,6 @@
         /// </summary>
         private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command)
         {
-            // 浣跨敤mapper鏄犲皠浠诲姟鍛戒护
             var comm = _mapper.Map<ConveyorLineTaskCommand>(task);
             comm.InteractiveSignal = command.InteractiveSignal;
             return comm;
@@ -89,25 +74,30 @@
         /// </summary>
         private void CompleteWmsTask(Dt_Task taskOut, ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue)
         {
-            // 濡傛灉娌℃湁鏉$爜淇℃伅锛屽垯璁剧疆鐩爣鍦板潃涓篘G鍦板潃
             if (command.Barcode == "NoRead")
             {
                 var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == taskOut.TargetAddress).Capacity;
                 taskOut.TargetAddress = NGAddress.ToString();
             }
 
-            // TODO璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛
             var keys = new Dictionary<string, object>()
-                {
-                    {"taskNum", taskOut.TaskNum}
-                };
-            var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result;
+            {
+                {"taskNum", taskOut.TaskNum}
+            };
+            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+            var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
+            if (wmsBase == null || completeTask == null)
+            {
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
+            }
+            var wmsIpAddress = wmsBase + completeTask;
+
+            var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
             WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
             if (content.Status)
             {
-                // 鏍囪鍙戦�佸畬鎴�
                 ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                // 鏇存柊浠诲姟鐘舵��
                 _taskService.UpdateTaskStatusToNext(taskOut);
             }
         }
@@ -119,23 +109,23 @@
         {
             if (command.Barcode != "NoRead")
             {
-                // 鍒涘缓绌烘墭鐩樹换鍔TO
-                WMSTaskDTO taskDTO = CreateEmptyTrayTaskDto(command.Barcode, childDeviceCode);
-                // 鍒涘缓骞跺彂閫佷换鍔�
-                WebResponseContent content = CreateAndSendTask(taskDTO);
+                var taskDTO = CreateEmptyTrayTaskDto(command.Barcode, childDeviceCode);
+
+                if (_taskRepository.QueryFirst(x => x.PalletCode == taskDTO.PalletCode) != null)
+                {
+                    WriteInfo(conveyorLine.DeviceName, "褰撳墠鎵樼洏瀛樺湪浠诲姟");
+                    return;
+                }
+
+                var content = CreateAndSendTask(taskDTO);
                 if (content.Status)
                 {
-                    // 鏌ヨ浠诲姟
-                    Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+                    var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
                     if (task != null)
                     {
-                        // 鏄犲皠浠诲姟鍛戒护
-                        ConveyorLineTaskCommand taskCommand = MapTaskCommand(task, command);
-                        // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
+                        var taskCommand = MapTaskCommand(task, command);
                         conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                        // 鏍囪鍙戦�佸畬鎴�
                         ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        // 鏇存柊浠诲姟鐘舵��
                         _taskService.UpdateTaskStatusToNext(task);
                     }
                 }
@@ -147,49 +137,51 @@
         /// </summary>
         private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode)
         {
-            #region 鍚慦MS璇锋眰绌烘墭鐩樹换鍔�
-            WMSTaskDTO wMSTaskDTO = new WMSTaskDTO();
-            RequestTaskDto request = new RequestTaskDto()
+            var request = new RequestTaskDto()
             {
                 Position = childDeviceCode,
                 PalletCode = barcode,
             };
-            var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTrayInTaskAsync", request.ToJsonString()).Result;
+
+            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+            var requestTrayInTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTrayInTask)?.ConfigValue;
+            if (wmsBase == null || requestTrayInTask == null)
+            {
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
+            }
+            var wmsIpAddrss = wmsBase + requestTrayInTask;
+            var result = HttpHelper.PostAsync(wmsIpAddrss, request.ToJsonString()).Result;
             if (result == null)
-                return wMSTaskDTO;
+                return new WMSTaskDTO();
 
             WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-            // 妫�鏌ョ姸鎬佸苟杩斿洖
             if (!content.Status)
-                return wMSTaskDTO;
+                return new WMSTaskDTO();
 
             return JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-
-            #endregion 鍚慦MS璇锋眰绌烘墭鐩樹换鍔�
         }
 
         /// <summary>
         /// 璇锋眰WMS浠诲姟
         /// </summary>
-        private void RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
+        private async void RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
         {
-            // 璇锋眰WMS浠诲姟
-            if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
+            var content = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
+            if (content.Status)
             {
-                // 鏌ヨ浠诲姟
-                Dt_Task task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
+                var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
                 if (task != null)
                 {
-                    // 鏄犲皠浠诲姟鍛戒护
-                    ConveyorLineTaskCommand taskCommand = MapTaskCommand(task, command);
-                    // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
+                    var taskCommand = MapTaskCommand(task, command);
                     conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                    // 鏍囪鍙戦�佸畬鎴�
                     ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                    // 鏇存柊浠诲姟鐘舵��
                     _taskService.UpdateTaskStatusToNext(task);
                 }
             }
+            else
+                WriteInfo(conveyorLine.DeviceName, content.Message);
         }
     }
-}
\ No newline at end of file
+}
+           
\ No newline at end of file

--
Gitblit v1.9.3