From 6614be8c7eb806d6db88ae953998016d58e49165 Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期一, 02 三月 2026 09:46:51 +0800
Subject: [PATCH] 优化任务取消
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs | 81 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 80 insertions(+), 1 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
index ecc8fb6..cc91e60 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
@@ -163,7 +163,7 @@
public string AccessingTunnel(int WarehouseId, int LocationType)
{
List<Dt_LocationInfo> locationData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId);
- var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo)
+ var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.LocationStatus== (int)LocationStatusEnum.Free && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo)
.Select(g => new
{
RoadwayNo = g.Key,
@@ -333,6 +333,7 @@
.Select(x => new
{
x.RoadwayNo,
+ x.LocationCode,
x.WarehouseId,
x.Row,
x.Column,
@@ -363,6 +364,7 @@
depths = columnGroup.Select(d => new
{
row = d.Row,
+ LocationCode = d.LocationCode,
depth = d.Depth,
locationType = d.LocationType,
locationStatus = d.LocationStatus,
@@ -373,5 +375,82 @@
return WebResponseContent.Instance.OK("鎴愬姛", result);
}
+
+ public WebResponseContent GetWarehouseCapacity()
+ {
+ // 鏌ヨ鎵�鏈変粨搴撶殑璐т綅鏁版嵁
+ var allLocations = BaseDal.QueryData()
+ .Select(x => new
+ {
+ x.WarehouseId,
+ x.LocationStatus
+ })
+ .ToList();
+
+ // 濡傛灉娌℃湁鏁版嵁锛岃繑鍥炵┖鍒楄〃
+ if (allLocations == null || !allLocations.Any())
+ {
+ return WebResponseContent.Instance.OK("鏈壘鍒颁换浣曡揣浣嶆暟鎹�", new List<object>());
+ }
+
+ // 璁$畻姣忎釜浠撳簱鐨勫閲忎娇鐢ㄦ儏鍐�
+ var result = allLocations
+ .GroupBy(x => x.WarehouseId)
+ .Select(g => new
+ {
+ WarehouseId = g.Key,
+ FreeLocations = g.Count(x => x.LocationStatus == 0),
+ RemainingCapacityPercentage = (int)Math.Round((double)g.Count(x => x.LocationStatus == 0) / g.Count() * 100)
+ })
+ .ToList();
+
+ return WebResponseContent.Instance.OK("鎴愬姛", result);
+ }
+
+ /// <summary>
+ /// 涓�閿惎鐢ㄥ贩閬撴墍鏈夎揣浣�
+ /// </summary>
+ /// <param name="warehouseId">浠撳簱ID</param>
+ /// <param name="roadwayNo">宸烽亾缂栧彿</param>
+ /// <returns></returns>
+ public WebResponseContent EnableAllLocationsInRoadway(string roadwayNo)
+ {
+ if (string.IsNullOrEmpty(roadwayNo))
+ return WebResponseContent.Instance.Error("宸烽亾缂栧彿涓嶈兘涓虹┖");
+
+ var locations = Repository.QueryData(x =>
+ x.RoadwayNo == roadwayNo &&
+ x.EnableStatus != EnableStatusEnum.Normal.ObjToInt());
+
+ if (locations == null || locations.Count == 0)
+ return WebResponseContent.Instance.OK("璇ュ贩閬撴病鏈夐渶瑕佸惎鐢ㄧ殑璐т綅");
+
+ locations.ForEach(x => x.EnableStatus = EnableStatusEnum.Normal.ObjToInt());
+ Repository.UpdateData(locations);
+
+ return WebResponseContent.Instance.OK($"鎴愬姛鍚敤宸烽亾[{roadwayNo}]鐨剓locations.Count}涓揣浣�");
+ }
+
+ /// <summary>
+ /// 涓�閿鐢ㄥ贩閬撴墍鏈夎揣浣�
+ /// </summary>
+ /// <param name="warehouseId">浠撳簱ID</param>
+ /// <param name="roadwayNo">宸烽亾缂栧彿</param>
+ /// <returns></returns>
+ public WebResponseContent DisableAllLocationsInRoadway(string roadwayNo)
+ {
+ if (string.IsNullOrEmpty(roadwayNo))
+ return WebResponseContent.Instance.Error("宸烽亾缂栧彿涓嶈兘涓虹┖");
+ var locations = Repository.QueryData(x =>
+ x.RoadwayNo == roadwayNo &&
+ x.EnableStatus != EnableStatusEnum.Disable.ObjToInt());
+ if (locations == null || locations.Count == 0)
+ return WebResponseContent.Instance.OK("璇ュ贩閬撴病鏈夐渶瑕佺鐢ㄧ殑璐т綅");
+ // 妫�鏌ヨ揣浣嶆槸鍚︽湁搴撳瓨
+ var locationIds = locations.Select(x => x.Id).ToList();
+ locations.ForEach(x => x.EnableStatus = EnableStatusEnum.Disable.ObjToInt());
+ Repository.UpdateData(locations);
+ return WebResponseContent.Instance.OK($"鎴愬姛绂佺敤宸烽亾[{roadwayNo}]鐨剓locations.Count}涓揣浣�");
+ }
}
}
--
Gitblit v1.9.3