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