From b51a65433d6102f2f8f00226404d9ca3808404af Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期四, 02 一月 2025 22:23:17 +0800 Subject: [PATCH] 打印托盘号 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 145 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 137 insertions(+), 8 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" index bd6834c..4a0ddcd 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" @@ -110,8 +110,40 @@ { for (int i = 0; i < locations.Count; i++) { - locations[i].LocationStatus = locationStatus.ObjToInt(); - locations[i].LocationType = palletType.ObjToInt(); + if (locations[i].LocationType != palletType.ObjToInt()) + { + locations[i].LocationType = palletType.ObjToInt(); + } + + if (locations[i].LocationCode == location.LocationCode) + { + locations[i].LocationStatus = locationStatus.ObjToInt(); + } + else + { + if (locationStatus == LocationStatusEnum.Lock) + { + if (locations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt(); + } + else if (locations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt(); + } + } + else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock) + { + if (locations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.InStock.ObjToInt(); + } + else if (locations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt(); + } + } + } } Dt_LocationInfo? nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1); @@ -120,11 +152,44 @@ List<Dt_LocationInfo> nearLocations = GetGroupLocations(locationInfos, nearLocation); for (int i = 0; i < nearLocations.Count; i++) { - nearLocations[i].LocationType = palletType.ObjToInt(); - if (palletType == PalletTypeEnum.LargePallet) + if (nearLocations[i].LocationType != palletType.ObjToInt()) { - nearLocations[i].LocationStatus = locationStatus.ObjToInt(); + nearLocations[i].LocationType = palletType.ObjToInt(); } + + if (palletType.ObjToInt() >= PalletTypeEnum.LargePallet.ObjToInt()) + { + if (nearLocations[i].LocationCode == nearLocation.LocationCode) + { + nearLocations[i].LocationStatus = locationStatus.ObjToInt(); + } + else + { + if (locationStatus == LocationStatusEnum.Lock) + { + if (nearLocations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt()) + { + nearLocations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt(); + } + else if (nearLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt()) + { + nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt(); + } + } + else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock) + { + if (nearLocations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt()) + { + nearLocations[i].LocationStatus = LocationStatusEnum.InStock.ObjToInt(); + } + else if (nearLocations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt()) + { + nearLocations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt(); + } + } + } + } + } locations.AddRange(nearLocations); } @@ -133,12 +198,45 @@ { for (int i = 0; i < locations.Count; i++) { - locations[i].LocationStatus = locationStatus.ObjToInt(); - locations[i].LocationType = palletType.ObjToInt(); + if (locations[i].LocationCode == location.LocationCode) + { + locations[i].LocationStatus = locationStatus.ObjToInt(); + } + else + { + if (locationStatus == LocationStatusEnum.Lock) + { + if (locations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt(); + } + else if (locations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt(); + } + } + else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock) + { + if (locations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.InStock.ObjToInt(); + } + else if (locations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt()) + { + locations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt(); + } + } + } + if (locations[i].LocationType != palletType.ObjToInt()) + { + locations[i].LocationType = palletType.ObjToInt(); + } } } Repository.UpdateData(locations); } + + /// <summary> /// 鑾峰彇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶄俊鎭� @@ -146,7 +244,7 @@ /// <param name="locationInfos"></param> /// <param name="location"></param> /// <returns></returns> - private List<Dt_LocationInfo> GetGroupLocations(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo location) + public List<Dt_LocationInfo> GetGroupLocations(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo location) { List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location }; int maxDepth = locationInfos.Max(x => x.Depth); @@ -169,6 +267,37 @@ } return groupLocations; } + + /// <summary> + /// 鑾峰彇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶄俊鎭� + /// </summary> + /// <param name="location"></param> + /// <returns></returns> + public List<Dt_LocationInfo> GetGroupLocations(Dt_LocationInfo location) + { + List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo && x.WarehouseId == location.WarehouseId); + + List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location }; + int maxDepth = locationInfos.Max(x => x.Depth); + for (int j = location.Depth + 1; j <= maxDepth; j++) + { + Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer); + if (locationInfo != null) + { + groupLocations.Add(locationInfo); + } + } + + for (int j = location.Depth - 1; j >= 1; j--) + { + Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer); + if (locationInfo != null) + { + groupLocations.Add(locationInfo); + } + } + return groupLocations; + } } } -- Gitblit v1.9.3