From 0c6f09c80809eeaf4576a6bb506776ffbd9d34a9 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期三, 25 六月 2025 17:29:24 +0800
Subject: [PATCH] 库存优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs |   66 +++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 27 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 dfba0f1..024a2c7 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
@@ -1195,34 +1195,45 @@
             {
                 lock (_lockEmpty)
                 {
-                    #region 鍒ゆ柇鎵樼洏缁戝畾璐т綅鏄惁鍜屼笅鍙戠粦瀹氳捣鐐圭浉鍚�-                    //var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First();
-                    //if (CntrLoc != null)
-                    //{
-                    //    if (CntrLoc.S_LOC_CODE != Start)
-                    //    {
-                    //        LogHelper.Info($"ItemBack锛氬垱寤轰换鍔″け璐ワ紝鎵樼洏:{model.Rfid}缁戝畾浣嶇疆涓嶆槸璧风偣锛歿Start}");
-                    //        result.code = "1";
-                    //        result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}缁戝畾浣嶇疆涓嶆槸璧风偣锛歿Start}";
-                    //        AddErrorInfo("鎵樼洏缁戝畾浣嶇疆涓嶅悓", result.msg);
-                    //        return result;
-                    //    }
-                    //}
-                    //else
-                    //{
-                    //    LogHelper.Info($"ItemBack锛氬垱寤轰换鍔″け璐ワ紝鎵樼洏:{model.Rfid}鏈壘鍒扮粦瀹氳揣浣�);
-                    //    result.code = "1";
-                    //    result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏈壘鍒扮粦瀹氳揣浣�;
-                    //    AddErrorInfo("鏌ユ壘鎵樼洏璐т綅澶辫触", result.msg);
-                    //    return result;
-                    //}
-                    #endregion
+
 
                     #region 鏍规嵁璐т綅妤煎眰鍒ゆ柇锛�妤煎幓寰�彔鐩樹綅 鍏朵粬鐨勫洖搴�                     var startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == Start).First();
                     if (startloc != null)
                     {
-                        if (startloc.N_LAYER == 3)
+                        if (!string.IsNullOrEmpty(startloc.S_NOTE1))
+                        {
+                            //鍙犵洏璐т綅璁$畻鍙犵洏璐т綅
+                            // 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();
+                            if (dploc.Count > 0)
+                            {
+                                // LogHelper.Info($"鑾峰彇鍙犵洏璐т綅:{JsonConvert.SerializeObject(dploc)}");
+                                loc = dploc.FindAll(a => a.N_LOCK_STATE == 0 && a.N_CURRENT_NUM < 6).OrderByDescending(a => a.N_CURRENT_NUM).FirstOrDefault();
+                                if (loc == null)
+                                {
+                                    LogHelper.Info($"{startloc.S_NOTE1}鍙犵洏浣嶏紝閮藉凡缁忔湁閿佹垨鑰呭凡缁忓彔婊★紝璇锋鏌ヨ揣浣嶇姸鎬�);
+                                    result.code = "1";
+                                    result.msg = $"{startloc.S_NOTE1}鍙犵洏璐т綅涓嶅彲鐢紝缁堢偣搴撳尯娌℃湁鍙敤璐т綅锛岃妫�煡閿佺姸鎬佸拰鏁伴噺";
+                                    AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source);
+                                    return result;
+                                }
+                                else
+                                {
+                                    endlayer = loc.N_CURRENT_NUM + 1;
+                                }
+                            }
+                            else
+                            {
+                                // LogHelper.Info($"鏍规嵁璐т綅妤煎眰锛歿startloc.N_LAYER}锛屼粨搴撶紪鐮侊細{startloc.S_WH_CODE}锛岃揣浣嶅娉細鍙犵洏锛屾湭鎵惧埌鍙犵洏璐т綅");
+                                result.code = "1";
+                                result.msg = $"{startloc.S_NOTE1}鍙犵洏璐т綅涓嶅彲鐢紝鏈壘鍒板彲鍙犵洏璐т綅";
+                                LogHelper.Info($"鏍规嵁璐т綅澶囨敞锛歿startloc.S_NOTE1}鍙犵洏锛岃揣浣嶄粨搴�{startloc.S_WH_CODE}锛屾壘涓嶅埌鍙犵洏璐т綅");
+                                AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source);
+                                return result;
+                            }
+                        }
+                        else if (startloc.N_LAYER == 3)
                         {
                             //鍙犵洏璐т綅璁$畻鍙犵洏璐т綅
                             // 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();
@@ -2550,8 +2561,7 @@
             var list = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.S_AREA_CODE.Trim() == areacode && a.N_LOCK_STATE == 0).ToList();
             if (list.Count > 0)
             {
-                FindEndcolByLocListLock(list);
-
+                result= FindEndcolByLocList(list);
             }
             //鏌ヨ鎵�湁鏈夋墭鐩樼殑鎺掓病閿佺殑鎺� 
@@ -2819,12 +2829,14 @@
                 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)
                     {
                         Location other = null;
                         //褰撳墠鎺掓病鏈夐攣骞朵笖鏈夌┖浣嶇疆
-                     
+
                         // 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();
                         //if (full == null)
@@ -2892,7 +2904,7 @@
                         {
                             other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_COL > full.N_COL).FirstOrDefault();
                         }
-                    
+
                         if (other != null)
                         {
                             end = other;

--
Gitblit v1.9.1