From c2aaf06dab8a627948ee2e5574fe4598f8d1638f Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <1247017146@qq.com>
Date: 星期日, 11 五月 2025 14:58:38 +0800
Subject: [PATCH] 1

---
 CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs |  202 +++++++++++++++++++++++++++----------------------
 1 files changed, 111 insertions(+), 91 deletions(-)

diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
index c70398c..940465d 100644
--- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
+++ b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -100,11 +100,11 @@
         private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command)
         {
             // 浣跨敤姝e垯琛ㄨ揪寮忓尮閰嶇被浼� -鏁板瓧 鐨勬ā寮忥紝骞舵浛鎹负绌哄瓧绗︿覆
-            task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", "");
-            if (Convert.ToInt32(task.NextAddress) > 1999)
-            {
-                task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString();
-            }
+            //task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", "");
+            //if (Convert.ToInt32(task.NextAddress) > 1999)
+            //{
+            //    task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString();
+            //}
             var comm = _mapper.Map<ConveyorLineTaskCommand>(task);
             comm.InteractiveSignal = command.InteractiveSignal;
             return comm;
@@ -200,7 +200,8 @@
             var content = CreateAndSendTask(taskDTO);
             if (content.Status)
             {
-                var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+                //var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+                var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode, command.Barcode);
                 if (task != null)
                 {
                     var next = task.NextAddress;
@@ -285,59 +286,101 @@
         /// </summary>
         private async Task RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_StationManager stationManager)
         {
-            string isTrue = string.Empty;
-
-            ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
-
             ResultTrayCellsStatus result = GetResultTrayCellsStatus(command, stationManager);
 
-            if (result.SerialNos.Count == 0)
+            if (childDeviceCode == "1435")
             {
-                var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
-                if (Traycontent.Status)
-                {
-                    ConsoleHelper.WriteSuccessLine("浜屽皝绌烘璇锋眰鍥炴祦");
-                    ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
-                }
-            }
+                ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
 
-            List<string> strings = stationManager.Roadway.Split(",").ToList();
-            foreach (string item in strings)
-            {
-                isTrue = RequestInboundPlatform(item, result.ProductionLine, false);
-                if (isTrue != null)
+                var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList();
+
+                if (serialNosError.Count > 0 || !result.Success || result.SerialNos.Count == 0)
                 {
-                    break;
+                    WMSTaskDTO taskDTO = new WMSTaskDTO
+                    {
+                        TaskNum = _taskRepository.GetTaskNo().Result,
+                        Grade = 1,
+                        PalletCode = command.Barcode,
+                        RoadWay = "CHSC4",
+                        SourceAddress = childDeviceCode,
+                        TargetAddress = "CHSC4",
+                        TaskState = (int)TaskInStatusEnum.InNew,
+                        Id = 2,
+                        TaskType = (int)TaskInboundTypeEnum.InNG,
+                        ProductionLine = result.ProductionLine,
+                    };
+                    var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                    if (Taskcontent.Status)
+                    {
+                        ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    }
+                    ConsoleHelper.WriteSuccessLine($"銆恵stationManager.stationRemark}銆戙�恵stationManager.stationChildCode}銆憑result.MOMMessage}");
+                    return;
                 }
-            }
-            if (isTrue != null && isTrue != string.Empty)
-            {
-                WMSTaskDTO taskDTO = new WMSTaskDTO
+                else
                 {
-                    TaskNum = _taskRepository.GetTaskNo().Result,
-                    Grade = 1,
-                    PalletCode = command.Barcode,
-                    RoadWay = childDeviceCode,
-                    SourceAddress = childDeviceCode,
-                    TargetAddress = isTrue,
-                    TaskState = (int)TaskOutStatusEnum.SC_OutFinish,
-                    Id = 2,
-                    TaskType = (int)TaskOutboundTypeEnum.OutTray,
-                    ProductionLine = result.ProductionLine,
-                };
-                var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
-                if (Taskcontent.Status)
-                {
-                    ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
+                    if (Taskcontent.Status)
+                    {
+                        ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    }
                 }
 
             }
             else
             {
-                var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
-                if (Taskcontent.Status)
+                string isTrue = string.Empty;
+
+                ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+
+                if (result.SerialNos.Count == 0)
                 {
-                    ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
+                    if (Traycontent.Status)
+                    {
+                        ConsoleHelper.WriteSuccessLine("浜屽皝绌烘璇锋眰鍥炴祦");
+                        ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    }
+                }
+
+                List<string> strings = stationManager.Roadway.Split(",").ToList();
+                foreach (string item in strings)
+                {
+                    isTrue = RequestInboundPlatform(item, result.ProductionLine, false);
+                    if (isTrue != null)
+                    {
+                        break;
+                    }
+                }
+                if (isTrue != null && isTrue != string.Empty)
+                {
+                    WMSTaskDTO taskDTO = new WMSTaskDTO
+                    {
+                        TaskNum = _taskRepository.GetTaskNo().Result,
+                        Grade = 1,
+                        PalletCode = command.Barcode,
+                        RoadWay = childDeviceCode,
+                        SourceAddress = childDeviceCode,
+                        TargetAddress = isTrue,
+                        TaskState = (int)TaskOutStatusEnum.SC_OutFinish,
+                        Id = 2,
+                        TaskType = (int)TaskOutboundTypeEnum.OutTray,
+                        ProductionLine = result.ProductionLine,
+                    };
+                    var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                    if (Taskcontent.Status)
+                    {
+                        ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    }
+
+                }
+                else
+                {
+                    var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
+                    if (Taskcontent.Status)
+                    {
+                        ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
+                    }
                 }
             }
         }
@@ -357,7 +400,7 @@
             try
             {
                 StaticVariable.isLineRun = false;
-                
+
                 if (StaticVariable.isStackerRun)
                 {
                     ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
@@ -384,6 +427,22 @@
                     LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, conveyorLineTaskCommand.TargetAddress.ToString());
                     return;
                 }
+                var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
+                var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryLocationFreeJZ).FirstOrDefault()?.ConfigValue;
+                if (wmsbase == null || address == null)
+                {
+                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                }
+                var wmsIpAddrss = wmsbase + address;
+                var x = await HttpHelper.PostAsync(wmsIpAddrss, new { RoadwayNo = "JZSC" }.ToJsonString());
+                var LocationFree = JsonConvert.DeserializeObject<WebResponseContent>(x);
+                if (!LocationFree.Status)
+                {
+                    ConsoleHelper.WriteErrorLine(LocationFree.Message);
+                    return;
+                }
+
                 if (resultTrayCellsStatus.SerialNos.Count == 0)
                 {
                     var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
@@ -399,14 +458,13 @@
                 }
                 else
                 {
-                    var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                    var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
-                    var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue;
-                    if (wmsbase == null || address == null)
+
+                    var QueryStockInfoForRealTrayJZ = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue;
+                    if (wmsbase == null || QueryStockInfoForRealTrayJZ == null)
                     {
                         throw new InvalidOperationException("WMS IP 鏈厤缃�");
                     }
-                    var wmsIpAddrss = wmsbase + address;
+                    wmsIpAddrss = wmsbase + QueryStockInfoForRealTrayJZ;
                     var result = await HttpHelper.PostAsync(wmsIpAddrss, new { ProductLine = resultTrayCellsStatus.ProductionLine, PalletCode = command.Barcode }.ToJsonString());
                     var StockInfocontent = JsonConvert.DeserializeObject<WebResponseContent>(result);
                     if (StockInfocontent.Status)
@@ -419,44 +477,6 @@
                             {
                                 ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
                             }
-                            #region
-                            //if (task != null && task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting && task.CurrentAddress == "1537")
-                            //{
-                            //    ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(stationManager.stationLocation);
-
-                            //    if (command1.InteractiveSignal != 2)
-                            //    {
-                            //        ConsoleHelper.WriteSuccessLine("鍖栨垚瀹炴墭璇锋眰鍏ラ潤缃�");
-                            //        if (StaticVariable.isStackerRun == true)
-                            //        {
-                            //            ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
-                            //        }
-                            //        return;
-                            //    }
-                            //    else
-                            //    {
-                            //        ConsoleHelper.WriteWarningLine("鍑哄簱浠诲姟鏈畬鎴�");
-                            //        return;
-                            //    }
-                            //}
-                            //else if (task != null && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
-                            //{
-                            //    ConsoleHelper.WriteWarningLine("宸插瓨鍦ㄩ潤缃嚭搴撲换鍔�");
-                            //    return;
-                            //}
-                            //else
-                            //{
-                            //    var Task = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
-                            //    if (Task.Status)
-                            //    {
-                            //        if (StaticVariable.isStackerRun == true)
-                            //        {
-                            //            ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode);
-                            //        }
-                            //    }
-                            //    return;
-                            //}
-                            #endregion
                         }
                         else
                         {
@@ -532,7 +552,7 @@
             finally
             {
                 StaticVariable.isLineRun = true;
-            }       
+            }
         }
 
         /// <summary>

--
Gitblit v1.9.3