From cee2bc19f3e1b0cf528affb23e3819bf94672eea Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期五, 27 六月 2025 00:35:21 +0800
Subject: [PATCH] 优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs |   98 +++++++++++++++---------------------------------
 1 files changed, 31 insertions(+), 67 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
index 024a2c7..bd476cd 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
@@ -1205,7 +1205,7 @@
                         {
                             //鍙犵洏璐т綅璁$畻鍙犵洏璐т綅
                             // var dploc = db.Queryable<Location>().Where(a => a.S_NOTE.Trim() == "鍙犵洏" && a.N_LAYER == startloc.N_LAYER && a.S_WH_CODE.Trim() == startloc.S_WH_CODE && a.C_ENABLE == "Y").ToList();
-                            var dploc = db.Queryable<Location>().Where(a => a.S_NOTE1.Trim() == startloc.S_NOTE1 + "鍙犵洏" &&  a.S_WH_CODE.Trim() == startloc.S_WH_CODE).ToList();
+                            var dploc = db.Queryable<Location>().Where(a => a.S_NOTE1.Trim() == startloc.S_NOTE1 + "鍙犵洏" && a.S_WH_CODE.Trim() == startloc.S_WH_CODE).ToList();
                             if (dploc.Count > 0)
                             {
                                 // LogHelper.Info($"鑾峰彇鍙犵洏璐т綅:{JsonConvert.SerializeObject(dploc)}");
@@ -1321,15 +1321,14 @@
                             loc = StorageCompute(itemcode, areacode);
                             if (loc == null)
                             {
-                                loc = emptyRow(areacode);
-                                if (loc == null)
-                                {
-                                    result.code = "1";
-                                    result.msg = $"搴撳尯锛歿areacode}娌℃湁鍙敤璐т綅";
-                                    LogHelper.Info($" {result.msg}");
-                                    AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source);
-                                    // LogHelper.Info($"搴撳尯锛歿areacode}娌℃湁鍙敤璐т綅");
-                                }
+
+                                result.code = "1";
+                                result.msg = $"搴撳尯锛歿areacode}娌℃湁鍙敤璐т綅";
+                                LogHelper.Info($" {result.msg}");
+                                AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source);
+                                return result;
+                                // LogHelper.Info($"搴撳尯锛歿areacode}娌℃湁鍙敤璐т綅");
+
                             }
                             //else
                             //{
@@ -1354,7 +1353,7 @@
                     }
                     #endregion
 
-                    #region 鍒涘缓浠诲姟
+                    #region 鍒涘缓浠诲姟   
                     if (startloc != null && loc != null)
                     {
                         if (startloc.N_LOCK_STATE != 0 && loc.N_LOCK_STATE != 0)
@@ -1364,6 +1363,7 @@
                             AddErrorInfo("璐т綅鏈夐攣", result.msg);
                             return result;
                         }
+                        LogHelper.Info("鍒涘缓绌烘墭鍥炲簱浠诲姟,缁堢偣璐т綅涓虹┖锛� + JsonConvert.SerializeObject(loc));
                         //鍒涘缓wcs浠诲姟
                         var wcsTask = new WCSTask
                         {
@@ -2557,60 +2557,22 @@
         {
             //Location result = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.S_AREA_CODE.Trim() == areacode && a.N_LOCK_STATE == 0).First();
             var db = new SqlHelper<object>().GetInstance();
-            Location result = new Location();
-            var list = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.S_AREA_CODE.Trim() == areacode && a.N_LOCK_STATE == 0).ToList();
+            Location result = null;
+            // 867C567A-183C-413B-9891-15D8F6DE1620
+
+            // var aaa = db.Deleteable<Location>(a => a.S_ID == "867C567A-183C-413B-9891-15D8F6DE1620").ExecuteCommand();
+            // var aaa = db.Deleteable<Location>(a => a.S_ID.Trim() == "867C567A-183C-413B-9891-15D8F6DE1620").ExecuteCommand();
+            LogHelper.Info($"鏂规硶锛歋torageCompute");
+            var list = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.S_AREA_CODE == areacode && a.N_LOCK_STATE == 0 && a.N_ROW > 0 && a.N_COL > 0).ToList();
+            LogHelper.Info($"鍒涘缓绌烘墭鍥炲簱浠诲姟,缁堢偣璐т綅闆嗗悎锛氭牴鎹簱鍖虹紪鐮侊細{areacode}" + list.Count);
+            //list.RemoveAll(a => string.IsNullOrEmpty(a.S_CODE.Trim()) || a.S_CODE == null || string.IsNullOrWhiteSpace(a.S_CODE.Trim()));
+            list = list.FindAll(a => a.N_ROW > 0 && a.N_COL > 0);
+            LogHelper.Info("鍒涘缓绌烘墭鍥炲簱浠诲姟,缁堢偣璐т綅闆嗗悎杩囨护锛� + list.Count);
             if (list.Count > 0)
             {
-                result= FindEndcolByLocList(list);
+                result = FindEndcolByLocList(list);
             }
-            //鏌ヨ鎵�湁鏈夋墭鐩樼殑鎺掓病閿佺殑鎺� 
-            // var list = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.S_AREA_CODE.Trim() == areacode && a.N_LOCK_STATE == 0).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).ToList();
-            //if (list.Count > 0)
-            //{
-
-            //    for (int i = 0; i < list.Count; i++)
-            //    {
-
-            //        LogHelper.Info($"鏈夋墭鐩樻帓鍙穥list[i].N_ROW}锛岀墿鏂欑紪鐮亄itemcode},搴撳尯{areacode}");
-            //        //鏌ヨ璐т綅缁戝畾鎵樼洏
-            //        var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == list[i].S_CODE).First();
-            //        if (cntr != null)
-            //        {
-            //            //鏌ヨ鎵樼洏鐗╂枡淇℃伅
-            //            var iteminfo = ContainerHelper.GetCntrItemRel(cntr.S_CNTR_CODE).FirstOrDefault();
-
-            //            if (string.IsNullOrEmpty(itemcode))//绌烘墭鍏ュ簱
-            //            {
-            //                if (iteminfo == null)
-            //                {
-            //                    //鐗╂枡鐩稿悓鍏ヨ揣浣嶅悗涓�綅璐т綅
-            //                    result = db.Queryable<Location>().OrderBy(a => a.N_COL).Where(a => a.S_AREA_CODE.Trim() == areacode && a.N_ROW == list[i].N_ROW && a.N_COL > list[i].N_COL && a.N_LOCK_STATE == 0 && a.N_CURRENT_NUM == 0).First();
-            //                }
-            //            }
-            //            else//婊℃嫋鍏ュ簱
-            //            {
-            //                if (iteminfo != null)
-            //                {
-            //                    if (iteminfo.S_ITEM_CODE == itemcode)
-            //                    {
-            //                        //鐗╂枡鐩稿悓鍏ヨ揣浣嶅悗涓�綅璐т綅
-            //                        result = db.Queryable<Location>().OrderBy(a => a.N_COL).Where(a => a.S_AREA_CODE.Trim() == areacode && a.N_ROW == list[i].N_ROW && a.N_COL > list[i].N_COL && a.N_LOCK_STATE == 0 && a.N_CURRENT_NUM == 0).First();
-
-            //                    }
-            //                }
-            //            }
-            //            if (result != null)
-            //            {
-            //                return result;
-            //            }
-            //        }
-            //        else
-            //        {
-            //            LogHelper.Info($"鏍规嵁璐х墿缂栫爜{list[i].S_CODE}鏈壘鍒版墭鐩樿揣浣嶇粦瀹氬叧绯�);
-            //        }
-            //    }
-            //}
             return result;
         }
 
@@ -2829,7 +2791,7 @@
                 var rows = locations.Select(a => a.N_ROW).Distinct().ToList();
                 for (int i = 0; i < rows.Count; i++)
                 {
-                   
+
                     var rowList = locations.Where(r => r.N_ROW == rows[i]).ToList();
                     LogHelper.Info($"褰撳墠鎺�{rows[i]},鑾峰緱璐т綅{JsonConvert.SerializeObject(rowList)}");
                     if (rowList.Count(a => a.N_CURRENT_NUM == 0) > 0)
@@ -2838,7 +2800,7 @@
                         //褰撳墠鎺掓病鏈夐攣骞朵笖鏈夌┖浣嶇疆
 
                         // other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y").FirstOrDefault();
-                        other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0).FirstOrDefault();
+                        other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && !string.IsNullOrEmpty(a.S_CODE.Trim()) && !string.IsNullOrWhiteSpace(a.S_CODE.Trim())).FirstOrDefault();
                         //if (full == null)
                         //{
                         //    //娌℃湁婊′綅锛岄偅灏辨壘鏈�皬鐨勭┖浣�@@ -2854,13 +2816,15 @@
                         //    other = db.Queryable<Location>().OrderBy(a => a.N_LAYER).Where(a => (string.IsNullOrEmpty(a.C_ENABLE) || a.C_ENABLE.Trim() != "绂佺敤") && a.S_AREA_CODE == other.S_AREA_CODE && a.N_ROW == other.N_ROW && a.N_COL > other.N_COL).First();
                         //    //LogHelper.Info($"绂佺敤閫夋嫨鍚庝竴涓揣浣峽result}", "鎴愬搧");
                         //}
+
                         if (other != null)
                         {
-                            end = other;
-                            break;
-
+                            if (other.S_CODE != null && !string.IsNullOrEmpty(other.S_CODE))
+                            {
+                                end = other;
+                                break;
+                            }
                         }
-
                     }
                 }
                 return end;

--
Gitblit v1.9.1