From 8ae1a147aefadbb255edde088e7c12535c5f02d4 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 08 十月 2025 20:35:51 +0800
Subject: [PATCH] 完善输送线和堆垛机任务处理逻辑在CommonConveyorLine_NewCW.cs`中添加版本注释和设备属性定义,增强设备连接状态检查与命令发送逻辑。 修改 CommonConveyorLine_GWJob.cs`的任务查询逻辑,确保在特定条件下不下发新任务。在CommonConveyorLine_NewCWJob.cs中实现请求入库和出库的处理逻辑,确保任务状态更新。在 RequestInbound.cs中添加出库任务和新任务的处理逻辑,增强异常处理。 在CommonStackerCrane_NewCWJob.cs中实现堆垛机任务完成事件的处理,确保状态更新和前端通知。新增设备型号修改相关常量和 DTO 类,更新服务接口和实现逻辑,确保设备型号修改请求的正确处理。修改 Dt_TaskService.cs中的任务处理逻辑,确保出库任务的库存判断和状态更新。

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs |  138 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 116 insertions(+), 22 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
index 7b5b5b2..e273c4e 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
@@ -60,6 +60,73 @@
         }
 
 
+        //protected string ValidatePageOptions(PageDataOptions options)
+        //{
+        //    options = options ?? new PageDataOptions();
+        //    string where = "";
+        //    List<SearchParameters> searchParametersList = new List<SearchParameters>();
+        //    if (options.Filter != null && options.Filter.Count > 0)
+        //    {
+        //        searchParametersList.AddRange(options.Filter);
+        //    }
+        //    else if (!string.IsNullOrEmpty(options.Wheres))
+        //    {
+        //        try
+        //        {
+        //            searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+        //            options.Filter = searchParametersList;
+        //        }
+        //        catch { }
+        //    }
+        //    QueryRelativeList?.Invoke(searchParametersList);
+
+        //    for (int i = 0; i < searchParametersList.Count; i++)
+        //    {
+        //        if (string.IsNullOrEmpty(searchParametersList[i].Value))
+        //        {
+        //            continue;
+        //        }
+
+        //        PropertyInfo property = TProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
+
+        //        if (property == null) continue;
+
+        //        List<(bool, string, object)> results = property.ValidationValueForDbType(searchParametersList[i].Value.Split(',')).ToList();
+        //        if (results == null || results.Count() == 0)
+        //        {
+        //            continue;
+        //        }
+        //        for (int j = 0; j < results.Count(); j++)
+        //        {
+        //            if (j == 0)
+        //            {
+        //                where += "(";
+        //            }
+        //            LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
+        //            if (expressionType == LinqExpressionType.Equal)
+        //            {
+        //                where += $"{searchParametersList[i].Name} like '%{results[j].Item3}%'";
+        //            }
+        //            else
+        //            {
+        //                where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
+        //            }
+
+        //            if (j == results.Count() - 1)
+        //            {
+        //                where += ")";
+        //            }
+        //            else
+        //            {
+        //                where += " or ";
+        //            }
+        //        }
+        //        if (i < searchParametersList.Count - 1)
+        //            where += " and ";
+        //    }
+        //    return where;
+        //}
+
         protected string ValidatePageOptions(PageDataOptions options)
         {
             options = options ?? new PageDataOptions();
@@ -91,38 +158,65 @@
 
                 if (property == null) continue;
 
-                List<(bool, string, object)> results = property.ValidationValueForDbType(searchParametersList[i].Value.Split(',')).ToList();
-                if (results == null || results.Count() == 0)
+                (bool, string, object) result = property.ValidationVal(searchParametersList[i].Value);
+                if (!result.Item1)
                 {
                     continue;
                 }
-                for (int j = 0; j < results.Count(); j++)
-                {
-                    if (j == 0)
-                    {
-                        where += "(";
-                    }
-                    LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
-                    if (expressionType == LinqExpressionType.Equal)
-                    {
-                        where += $"{searchParametersList[i].Name} like '%{results[j].Item3}%'";
-                    }
-                    else
-                    {
-                        where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
-                    }
 
-                    if (j == results.Count() - 1)
+                LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
+                if (expressionType == LinqExpressionType.Equal)
+                {
+                    if (string.IsNullOrEmpty(where))
                     {
-                        where += ")";
+                        // 閽堝瀛楃涓茬被鍨嬬殑瀛楁浣跨敤妯$硦鏌ヨ
+                        //where += $"{searchParametersList[i].Name} like '%{searchParametersList[i].Value}%'";
+                        if (searchParametersList[i].Value.ToLower() == "true" || searchParametersList[i].Value.ToLower() == "false")
+                        {
+                            where += $" {searchParametersList[i].Name} = '{searchParametersList[i].Value.ToLower()}'";
+                        }
+                        else
+                        {
+                            where += $"[{searchParametersList[i].Name}] like '%{searchParametersList[i].Value}%'";
+                        }
                     }
                     else
                     {
-                        where += " or ";
+                        // 閽堝甯冨皵绫诲瀷瀛楁杩涜绮剧‘鏌ヨ
+                        if (searchParametersList[i].Value.ToLower() == "true" || searchParametersList[i].Value.ToLower() == "false")
+                        {
+                            where += $" and {searchParametersList[i].Name} = '{searchParametersList[i].Value.ToLower()}'";
+                        }
+                        else
+                        {
+                            where += $" and [{searchParametersList[i].Name}] like '%{searchParametersList[i].Value}%'";
+                        }
                     }
                 }
-                if (i < searchParametersList.Count - 1)
-                    where += " and ";
+                else
+                {
+                    if (searchParametersList[i].DisplayType.GetLinqCondition() == LinqExpressionType.ThanOrEqual)
+                    {
+                        if (string.IsNullOrEmpty(where))
+                            where += $"{searchParametersList[i].Name} >= '{searchParametersList[i].Value}'";
+                        else
+                            where += $" and {searchParametersList[i].Name} {searchParametersList[i].DisplayType.GetLinqCondition()} '{searchParametersList[i].Value}'";
+                    }
+                    else if (searchParametersList[i].DisplayType.GetLinqCondition() == LinqExpressionType.LessThanOrEqual)
+                    {
+                        if (string.IsNullOrEmpty(where))
+                            where += $"{searchParametersList[i].Name} <= '{searchParametersList[i].Value}'";
+                        else
+                            where += $" and {searchParametersList[i].Name} <= '{searchParametersList[i].Value}'";
+                    }
+                    else
+                    {
+                        if (string.IsNullOrEmpty(where))
+                            where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{searchParametersList[i].Value}'";
+                        else
+                            where += $" and {searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{searchParametersList[i].Value}'";
+                    }
+                }
             }
             return where;
         }

--
Gitblit v1.9.3