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_Communicator/Siemens/SiemensS7Communicator.cs |   57 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 30 insertions(+), 27 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
index 7f60bfc..13fd3cc 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
@@ -157,7 +157,7 @@
                 }
                 else
                 {
-                    //return true;
+                    return true;
                     object? obj = null;
                     for (int i = 0; i < 5; i++)
                     {
@@ -605,39 +605,42 @@
             {
                 OperateResult operateResult = plc.WriteCustomer(address, value);
                 stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, JsonConvert.SerializeObject(value)));
+                #region
                 if (operateResult.IsSuccess)
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
-                    {
-                        T readValue = ReadCustomer<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
-                        obj = readValue;
-                        PropertyInfo[] propertyInfos = typeof(T).GetProperties();
-                        for (int j = 0; j < propertyInfos.Length; j++)
-                        {
-                            object? writeValueItem = propertyInfos[j].GetValue(value);
-                            object? readValueItem = propertyInfos[j].GetValue(readValue);
-                            if (writeValueItem.Equals(readValueItem))
-                            {
-                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
-                            }
-                            else
-                            {
-                                break;
-                            }
-                            if (j == propertyInfos.Length - 1)
-                                return true;
-                        }
-                        plc.WriteCustomer(address, value);
-                    }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
-                    throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
+                    //object? obj = null;
+                    //for (int i = 0; i < 5; i++)
+                    //{
+                    //    T readValue = ReadCustomer<T>(address);
+                    //    stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
+                    //    obj = readValue;
+                    //    PropertyInfo[] propertyInfos = typeof(T).GetProperties();
+                    //    for (int j = 0; j < propertyInfos.Length; j++)
+                    //    {
+                    //        object? writeValueItem = propertyInfos[j].GetValue(value);
+                    //        object? readValueItem = propertyInfos[j].GetValue(readValue);
+                    //        if (writeValueItem.Equals(readValueItem))
+                    //        {
+                    //            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                    //        }
+                    //        else
+                    //        {
+                    //            break;
+                    //        }
+                    //        if (j == propertyInfos.Length - 1)
+                    //            return true;
+                    //    }
+                    //    plc.WriteCustomer(address, value);
+                    //}
+                    //stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
+                    //throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
+                    return true;
                 }
                 else
                 {
                     throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteFailedException, typeof(T).Name, address, JsonConvert.SerializeObject(value), operateResult.Message), CommunicationErrorType.WriteFailed);
                 }
+                #endregion
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3