From ffb5bb3a68ae74ed3a1765baf946336cead3bb0d Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期一, 23 六月 2025 09:00:37 +0800 Subject: [PATCH] 货位同侧移库,干膜货位大小托分配优化,WCS任务接收优化等 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs" index 2d3addd..788d1de 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs" @@ -58,14 +58,22 @@ throw new Exception($"鏈壘鍒拌揣浣嶄俊鎭�"); } int maxDepth = locationInfos.Max(x => x.Depth); - int mathCurrentRow = beRelocation.Row - Convert.ToInt32(Math.Ceiling(beRelocation.Row / maxDepth / 2.0)) * maxDepth * 2; - if (mathCurrentRow <= maxDepth) + //int mathCurrentRow = beRelocation.Row - Convert.ToInt32(Math.Ceiling(beRelocation.Row / maxDepth / 2.0)) * maxDepth * 2; + //if (mathCurrentRow <= maxDepth) + //{ + // locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 <= maxDepth).ToList(); + //} + //else + //{ + // locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 > maxDepth).ToList(); + //} + if (beRelocation.Row <= maxDepth) { - locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 <= maxDepth).ToList(); + locationInfos = locationInfos.Where(x => x.Row <= maxDepth).ToList(); } - else + else if (beRelocation.Row > maxDepth) { - locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 > maxDepth).ToList(); + locationInfos = locationInfos.Where(x => x.Row > maxDepth).ToList(); } } @@ -139,6 +147,14 @@ continue; } } + if (palletTypeInfo.IsOdd) + { + Dt_LocationInfo? locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == locationInfo.Row && x.Column == (locationInfo.Column-1) && x.Layer == locationInfo.Layer); + if (locationInfoExist!=null && locationInfoExist.LocationStatus!= LocationStatusEnum.Free.ObjToInt() && locationInfoExist.LocationStatus != LocationStatusEnum.FreeLock.ObjToInt()) + { + continue; + } + } locationCaches_ZH.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now }); return locationInfo; } @@ -203,6 +219,14 @@ continue; } } + if (palletTypeInfo.IsOdd) + { + Dt_LocationInfo? locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == locationInfo.Row && x.Column == (locationInfo.Column - 1) && x.Layer == locationInfo.Layer); + if (locationInfoExist != null && locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() && locationInfoExist.LocationStatus != LocationStatusEnum.FreeLock.ObjToInt()) + { + continue; + } + } locationCaches_ZH.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now }); return locationInfo; } -- Gitblit v1.9.3