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 | 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