From a29bf360f42cc3c6942a0ef6604f0ac84ab54a7c Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期四, 19 三月 2026 17:19:36 +0800
Subject: [PATCH] 修复老厂排程在没生成任务就不更新缺料状态的问题,按照要求修改库位平面图

---
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs |  111 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 63 insertions(+), 48 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
index 40d503e..b56f0c3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
@@ -1,4 +1,4 @@
-锘縰sing HslCommunication.WebSocket;
+using HslCommunication.WebSocket;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
@@ -90,69 +90,84 @@
         /// <summary>
         /// 鏌ヨ鏉′欢璐т綅
         /// </summary>
-        /// <param name="row"></param>
+        /// <param name="roadwayNo"></param>
         /// <param name="warehouseId"></param>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("GetLocationStatus")]
-        public WebResponseContent GetLocationStatus(int row, int warehouseId = 0)
+        public WebResponseContent GetLocationStatus(string roadwayNo, int warehouseId = 0)
         {
-            List<int> layers;
-            if (warehouseId == 0)
+            // 瀹氫箟杩斿洖鏁版嵁缁撴瀯
+            var result = new
             {
-                layers = _repository.QueryData(x => x.Row == row).Select(x => x.Layer).Distinct().ToList();
-            }
-            else
+                row1 = new List<object>(), // 宸烽亾绗�1鎺掞紙涓滈潰锛�
+                row2 = new List<object>()  // 宸烽亾绗�2鎺掞紙瑗块潰锛�
+            };
+
+            // 鏌ヨ宸烽亾涓嬫墍鏈夎揣浣�
+            var locations = _repository.QueryData(x => x.RoadwayNo == roadwayNo);
+
+            // 鑾峰彇鎵�鏈夊眰锛屾寜浠庨珮鍒颁綆鎺掑簭
+            var layers = locations.Select(x => x.Layer).Distinct().OrderByDescending(x => x).ToList();
+
+            // 澶勭悊姣忎竴灞�
+            foreach (var layer in layers)
             {
-                layers = _repository.QueryData(x => x.Row == row && x.WarehouseId == warehouseId).Select(x => x.Layer).Distinct().ToList();
-            }
-            
-            List<object> listObj = new List<object>();
-            foreach (var item in layers)
-            {
-                object locationObj;
-                if (warehouseId == 0)
-                {
-                    locationObj = _repository.QueryData(x => x.Row == row && x.Layer == item)
-                        .OrderBy(x => x.Columns)
-                        .Select(x => new
-                        {
-                            layer = x.Layer.ToString().PadLeft(2, '0'),
-                            row = x.Row.ToString().PadLeft(2, '0'),
-                            column = x.Columns.ToString().PadLeft(2, '0'),
-                            locationCode = x.LocationCode,
-                            location_lock = x.LocationStatus
-                        }).ToList();
-                }
-                else
-                {
-                    locationObj = _repository.QueryData(x => x.Row == row && x.Layer == item && x.WarehouseId == warehouseId)
-                        .OrderBy(x => x.Columns)
-                        .Select(x => new
-                        {
-                            layer = x.Layer.ToString().PadLeft(2, '0'),
-                            row = x.Row.ToString().PadLeft(2, '0'),
-                            column = x.Columns.ToString().PadLeft(2, '0'),
-                            locationCode = x.LocationCode,
-                            location_lock = x.LocationStatus
-                        }).ToList();
-                }
-                
-                object obj = new { layer = item, locationObj };
-                listObj.Add(obj);
+                // 鑾峰彇褰撳墠灞傜殑璐т綅
+                var layerLocations = locations.Where(x => x.Layer == layer);
+
+                // 绗�1鎺掓暟鎹紙涓滈潰锛�
+                var row1Locations = layerLocations.Where(x => x.Row == 1)
+                    .OrderBy(x => x.Columns)
+                    .Select(x => new
+                    {
+                        layer = x.Layer.ToString().PadLeft(2, '0'),
+                        row = x.Row.ToString().PadLeft(2, '0'),
+                        column = x.Columns.ToString().PadLeft(2, '0'),
+                        locationCode = x.LocationCode,
+                        location_lock = x.LocationStatus
+                    }).ToList();
+
+                // 绗�2鎺掓暟鎹紙瑗块潰锛�
+                var row2Locations = layerLocations.Where(x => x.Row == 2)
+                    .OrderBy(x => x.Columns)
+                    .Select(x => new
+                    {
+                        layer = x.Layer.ToString().PadLeft(2, '0'),
+                        row = x.Row.ToString().PadLeft(2, '0'),
+                        column = x.Columns.ToString().PadLeft(2, '0'),
+                        locationCode = x.LocationCode,
+                        location_lock = x.LocationStatus
+                    }).ToList();
+
+                // 娣诲姞鍒扮粨鏋滀腑
+                result.row1.Add(new { layer, locationObj = row1Locations });
+                result.row2.Add(new { layer, locationObj = row2Locations });
             }
 
-            return WebResponseContent.Instance.OK("鎴愬姛", listObj);
+            return WebResponseContent.Instance.OK("鎴愬姛", result);
         }
 
         /// <summary>
-        /// 鏌ヨ鍏ㄩ儴璐т綅
+        /// 鏌ヨ鍏ㄩ儴宸烽亾
         /// </summary>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("GetRow")]
         public WebResponseContent GetRow()
         {
-            List<int> listRow = _repository.QueryData().Select(x => x.Row).Distinct().ToList();
-            return WebResponseContent.Instance.OK("鎴愬姛", listRow);
+            // 淇濇寔鍏煎鏃ф帴鍙o紝杩斿洖宸烽亾鍒楄〃
+            List<string> roadwayList = _repository.QueryData().Select(x => x.RoadwayNo).Distinct().ToList();
+            return WebResponseContent.Instance.OK("鎴愬姛", roadwayList);
+        }
+
+        /// <summary>
+        /// 鏌ヨ鍏ㄩ儴宸烽亾
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("GetRoadway")]
+        public WebResponseContent GetRoadway()
+        {
+            List<string> roadwayList = _repository.QueryData().Select(x => x.RoadwayNo).Distinct().ToList();
+            return WebResponseContent.Instance.OK("鎴愬姛", roadwayList);
         }
 
         /// <summary>

--
Gitblit v1.9.3