From 19f73f3d2370c821355d0cc0fa5b0f7cdcb898e8 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 23 六月 2025 08:48:32 +0800
Subject: [PATCH] 增强任务处理和更新版本信息在 `TaskController.cs` 中添加了对 `WIDESEAWCS_ITaskInfoRepository` 和 `WIDESEAWCS_ITaskInfoService` 的引用,以提升任务信息处理能力。在 `CommonConveyorLineJob.cs` 中引入 `platformNotusable` 列表,确保查询平台信息时的可用性检查。在 `RequestInbound.cs` 中添加对 并优化 `outJZTask` 的查询条件。修改 `CommonStackerCraneJob.cs` 中静置出库任务的判断逻辑,确保任务执行前的适当检查。

---
 CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |  119 +++++++++++++++++++++++------------------------------------
 1 files changed, 46 insertions(+), 73 deletions(-)

diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index 82cde70..73763b3 100644
--- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -257,67 +257,30 @@
 
                     // 鏌ヨ骞冲彴淇℃伅
                     Platform platform = _platFormRepository.QueryFirst(x => x.DeviceCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active");
-                    if (platform != null && !string.IsNullOrEmpty(platform.Location))
+                    var platformNotusable = new List<string> { "2028", "2024","2032","2036","2040" };
+                    if (platform != null && !string.IsNullOrEmpty(platform.Location) && !platformNotusable.Contains(platform.PlatCode))
                     {
-                        if (platform.PlatCode == "1299" || platform.PlatCode == "1295" || platform.PlatCode == "1291" || platform.PlatCode == "1287" || platform.PlatCode == "1283")
+                        var strings = platform.Location.Split(',').ToList();
+                        foreach (var ite in strings)
                         {
-                            Platform platformJZ = _platFormRepository.QueryFirst(x => x.PlatCode == "10086" && x.Status == "Active");
-                            if (platformJZ != null)
+                            // 璇诲彇浠诲姟鍛戒护
+                            ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(ite);
+                            if (command1.InteractiveSignal != 2)
                             {
-                                var strings = platform.Location.Split(',').ToList();
-                                foreach (var ite in strings)
+                                command.InteractiveSignal = writeInteractiveSignal;
+                                int count = strings.Count;
+                                // 鑾峰彇澶勭悊鏂规硶
+                                MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod);
+                                if (method != null)
                                 {
-                                    // 璇诲彇浠诲姟鍛戒护
-                                    ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(ite);
-                                    if (command1.InteractiveSignal != 2)
-                                    {
-                                        command.InteractiveSignal = writeInteractiveSignal;
-                                        int count = strings.Count;
-                                        // 鑾峰彇澶勭悊鏂规硶
-                                        MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod);
-                                        if (method != null)
-                                        {
-                                            command.InteractiveSignal = commandWrite.WriteInteractiveSignal;
-                                            // 璋冪敤澶勭悊鏂规硶
-                                            method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform });
-                                        }
-                                        
-                                    }
+                                    command.InteractiveSignal = commandWrite.WriteInteractiveSignal;
+                                    // 璋冪敤澶勭悊鏂规硶
+                                    method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform });
                                 }
+
                             }
-                            //else
-                            //{
-                            //    //ConsoleHelper.WriteErrorLine("闈欑疆绌烘墭涓嶅厑璁稿嚭鏂�");
-                            //}
                         }
-                        else
-                        {
-                            var strings = platform.Location.Split(',').ToList();
-                            foreach (var ite in strings)
-                            {
-                                // 璇诲彇浠诲姟鍛戒护
-                                ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(ite);
-                                if (command1.InteractiveSignal != 2)
-                                {
-                                    command.InteractiveSignal = writeInteractiveSignal;
-                                    int count = strings.Count;
-                                    // 鑾峰彇澶勭悊鏂规硶
-                                    MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod);
-                                    if (method != null)
-                                    {
-                                        command.InteractiveSignal = commandWrite.WriteInteractiveSignal;
-                                        // 璋冪敤澶勭悊鏂规硶
-                                        method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform });
-                                    }
-                                    
-                                }
-                            }
-                        } 
                     }
-                    //if (conveyorLine.DeviceCode == "1001")
-                    //{
-                    //    ConsoleHelper.WriteSuccessLine("ProcessDeviceAsync鏂规硶缁撴潫鏃堕棿锛�" + DateTime.Now.ToString("G") + $"鐐逛綅锛歿childDeviceCode}");
-                    //}
                 }
             }
             catch (Exception ex)
@@ -369,30 +332,31 @@
                         {
                             // 鑾峰彇浠诲姟鐨勪笅涓�鐩爣鍦板潃
                             var next = task.NextAddress;
-                        // 灏嗕换鍔℃槧灏勪负鍛戒护
-                        var taskCommand = MapTaskCommand(task, command);
-                        // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                        task.NextAddress = next;
-                        // 鍙戦�佸懡浠ゅ埌瀛愯澶�
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
+                            // 灏嗕换鍔℃槧灏勪负鍛戒护
+                            var taskCommand = MapTaskCommand(task, command);
+                            // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃
+                            task.NextAddress = next;
+                            // 鍙戦�佸懡浠ゅ埌瀛愯澶�
+                            conveyorLine.SendCommand(taskCommand, childDeviceCode);
 
-                        // 杈撳嚭璀﹀憡淇℃伅锛岃〃绀轰换鍔″凡鍒拌揪瀛愯澶囧苟璇锋眰鎵爜鍏ュ簱锛屼笅涓�鐩爣鍦板潃
-                        var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteWarningLine(logs);
+                            // 杈撳嚭璀﹀憡淇℃伅锛岃〃绀轰换鍔″凡鍒拌揪瀛愯澶囧苟璇锋眰鎵爜鍏ュ簱锛屼笅涓�鐩爣鍦板潃
+                            var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
+                            ConsoleHelper.WriteWarningLine(logs);
 
-                        await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, logs);
+                            await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
+                            WriteInfo(conveyorLine.DeviceName, logs);
 
-                        // 鍙戦�佷换鍔″畬鎴愰�氱煡
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        // 鏇存柊浠诲姟鐘舵�佷负涓嬩竴鐘舵��
-                        _taskService.UpdateTaskStatusToNext(task);
+                            // 鍙戦�佷换鍔″畬鎴愰�氱煡
+                            ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+                            // 鏇存柊浠诲姟鐘舵�佷负涓嬩竴鐘舵��
+                            _taskService.UpdateTaskStatusToNext(task);
                         }
                     }
                 }
                 else
                 {
-                    var taskInTray = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+                    //var taskInTray = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+                    var taskInTray = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode,command.Barcode);
                     if (taskInTray != null && taskInTray.TaskType == (int)TaskInboundTypeEnum.InTray)
                     {
                         RequestInNextAddress(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
@@ -493,7 +457,8 @@
             _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
             WriteInfo(conveyorLine.DeviceName, log);
 
-            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+            //Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
             if (task != null)
             {
                 if (command.Barcode == task.PalletCode)
@@ -501,6 +466,7 @@
                     Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
                     if (newTask != null)
                     {
+                        
                         //ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask);
                         //taskCommand.InteractiveSignal = command.InteractiveSignal;
                         var next = newTask.NextAddress;
@@ -516,6 +482,7 @@
                         conveyorLine.SendCommand(taskCommand, childDeviceCode);
 
                         ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+
                         _taskService.UpdateData(newTask);
                     }
                 }
@@ -541,7 +508,8 @@
                 _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
                 WriteInfo(conveyorLine.DeviceName, log);
 
-                var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+                //var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+                var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
                 if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
                 {
                     if (command.Barcode == task.PalletCode && childDeviceCode == task.NextAddress)
@@ -599,6 +567,7 @@
             {
                 // 鏌ヨ杈撻�佺嚎浠诲姟锛屾牴鎹緭閫佺嚎璁惧鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅
                 var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+                //var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode, command.Barcode);
 
                 // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮佸拰瀛愯澶囦唬鐮侊紝浠ュ強浠诲姟淇℃伅
                 var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,task{task.ToJsonString()}";
@@ -663,7 +632,8 @@
             WriteInfo(conveyorLine.DeviceName, log);
 
             // 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟锛屾牴鎹换鍔″彿鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅
-            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+            //Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
 
             // 濡傛灉浠诲姟瀛樺湪
             if (task != null)
@@ -677,6 +647,7 @@
                     // 濡傛灉鏇存柊鍚庣殑浠诲姟瀵硅薄涓嶄负绌�
                     if (newTask != null)
                     {
+                        //_taskService.UpdateData(newTask);
                         // 鑾峰彇涓嬩竴鐩爣鍦板潃
                         var next = newTask.NextAddress;
 
@@ -698,6 +669,7 @@
 
                         // 鏍囪杈撻�佺嚎鍙戦�佷换鍔″畬鎴�
                         ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+
                         _taskService.UpdateData(newTask);
                     }
                 }
@@ -722,7 +694,8 @@
                 WriteInfo(conveyorLine.DeviceName, logs);
 
                 // 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟
-                var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+                //var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+                var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
 
                 // 濡傛灉浠诲姟瀛樺湪
                 if (task != null)

--
Gitblit v1.9.3