From a8be8f9371b6fc03b66d212b2902d08f93b087dd Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 02 七月 2025 13:55:55 +0800
Subject: [PATCH] 新增任务查询方法并优化逻辑在 `ITaskService.cs` 中添加了新的 `QueryExecutingConveyorLineTask` 方法,支持根据托盘号和下一地址查询任务,同时调整了原有方法的参数以保留旧功能。在 `TaskService.cs` 中新增重载方法,允许根据下一地址和条形码查询任务。在 `CommonConveyorLine_GWJob.cs` 中更新了 `ConveyorLineOutFinish` 方法,简化了任务查询逻辑并删除了多余的注释代码。同时,增加了对 `taskNext` 的处理逻辑,确保在任务未找到时的相应处理,并更新在途数据的逻辑,提升数据一致性和准确性。

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine_After.cs |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine_After.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine_After.cs
index f35365d..e1ab120 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine_After.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine_After.cs
@@ -288,6 +288,14 @@
             return devicePro == null ? throw new Exception() : Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
         }
 
+        //public bool IsOccupied(string deviceChildCode)
+        //{
+        //    if (Communicator.IsConnected)
+        //    {
+                
+        //    }
+        //}
+
         /// <summary>
         ///
         /// </summary>
@@ -298,18 +306,19 @@
         {
             if (Communicator.IsConnected)
             {
-                List<DeviceProDTO> devicePros = _deviceProDTOs.Where(x => x.DeviceProParamType == ConveyorLineStatus.IsOccupied.ToString()).ToList();
+                List<DeviceProDTO> devicePros = _deviceProDTOs.Where(x => x.DeviceChildCode == deviceChildCode && x.DeviceProParamName == "InteractiveSignal").ToList();
                 if (devicePros.Count == 0)
                 {
                     //todo 鍗忚淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯�
                     throw new Exception();
                 }
+
                 for (int i = 0; i < devicePros.Count; i++)
                 {
                     object readStatus = Communicator.ReadAsObj(devicePros[i].DeviceProAddress, devicePros[i].DeviceDataType);
                     //todo 鍗忚鏄庣粏淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯�
                     DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamName) ?? throw new Exception();
-                    deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamType && x.ProtocalDetailValue.Equals(readStatus.ToString()));
+                    deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == "InteractiveSignal" && x.ProtocalDetailValue.Equals(readStatus.ToString()));
                     if (deviceProtocolDetail != null)
                     {
                         return true;

--
Gitblit v1.9.3