From 5f53f4af369a1c7a8a09eb1f45c20a8581d107a9 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 19 三月 2026 22:20:07 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu

---
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs |  147 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 134 insertions(+), 13 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 22b2310..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;
@@ -29,16 +29,6 @@
         }
 
         /// <summary>
-        /// 鑾峰彇鏃MS绯荤粺杈呮枡浠撳簱瀛�
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost, Route("GetContainerInfo"), AllowAnonymous]
-        public WebResponseContent GetContainerInfo()
-        {
-            return Service.GetContainerInfo();
-        }
-
-        /// <summary>
         /// 鍒濆鍖栬揣浣�
         /// </summary>
         /// <param name="initializationLocationDTO"></param>
@@ -56,9 +46,9 @@
         /// <param name="palletType"></param>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("AssignLocation"), AllowAnonymous]
-        public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, int heightType)
+        public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId)
         {
-            return Service.AssignLocation(roadwayNo, palletType, warehouseId, heightType: heightType);
+            return Service.AssignLocation(roadwayNo, palletType, warehouseId);
         }
 
         /// <summary>
@@ -96,5 +86,136 @@
                 return WebResponseContent.Instance.Error(e.Message);
             }
         }
+
+        /// <summary>
+        /// 鏌ヨ鏉′欢璐т綅
+        /// </summary>
+        /// <param name="roadwayNo"></param>
+        /// <param name="warehouseId"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("GetLocationStatus")]
+        public WebResponseContent GetLocationStatus(string roadwayNo, int warehouseId = 0)
+        {
+            // 瀹氫箟杩斿洖鏁版嵁缁撴瀯
+            var result = new
+            {
+                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)
+            {
+                // 鑾峰彇褰撳墠灞傜殑璐т綅
+                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("鎴愬姛", result);
+        }
+
+        /// <summary>
+        /// 鏌ヨ鍏ㄩ儴宸烽亾
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("GetRow")]
+        public WebResponseContent GetRow()
+        {
+            // 淇濇寔鍏煎鏃ф帴鍙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>
+        /// 鏌ヨ璐т綅RFID
+        /// </summary>
+        /// <param name="requestData"></param>
+        /// <returns></returns>
+        [HttpPost, Route("GetRfid")]
+        public WebResponseContent GetRfid([FromBody] dynamic requestData)
+        {
+            try
+            {
+                if (requestData == null)
+                {
+                    return WebResponseContent.Instance.Error("璇锋眰鏁版嵁涓虹┖");
+                }
+
+                // 妫�鏌ocationCodes瀛楁鏄惁瀛樺湪涓斾笉涓簄ull锛堝吋瀹筶ocationCode锛�
+                if (requestData.locationCodes == null && requestData.locationCode == null)
+                {
+                    return WebResponseContent.Instance.Error("璐т綅缂栧彿鏁扮粍涓嶈兘涓虹┖");
+                }
+
+                // 杞崲涓簊tring[]锛屼紭鍏堜娇鐢╨ocationCodes
+                string[] locationCode = null;
+                var locationCodeField = requestData.locationCodes ?? requestData.locationCode;
+                if (locationCodeField is Newtonsoft.Json.Linq.JArray)
+                {
+                    locationCode = ((Newtonsoft.Json.Linq.JArray)locationCodeField).ToObject<string[]>();
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error("璐т綅缂栧彿蹇呴』鏄暟缁勬牸寮�");
+                }
+
+                // 妫�鏌arehouseId瀛楁鏄惁瀛樺湪
+                int warehouseId = 0;
+                if (requestData.warehouseId != null)
+                {
+                    warehouseId = Convert.ToInt32(requestData.warehouseId);
+                }
+
+                return Service.GetRfid(locationCode, warehouseId);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error($"鍙傛暟瑙f瀽澶辫触: {ex.Message}");
+            }
+        }
     }
 }

--
Gitblit v1.9.3