From a9b3ce04ed59794b648db00bc85001a4fb96c932 Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期二, 24 十二月 2024 15:29:03 +0800 Subject: [PATCH] 分拣接口、货位分配及移库任务完成 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 152 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 125 insertions(+), 27 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 146b0b7..3cd8b9c 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" @@ -45,27 +45,27 @@ }; } - public bool LittleDepthLocationIsEmpty(Dt_LocationInfo locationInfo, PalletTypeEnum palletType) - { - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == locationInfo.WarehouseId); - if (warehouse == null) - { - throw new Exception($"鏈壘鍒颁粨搴撲俊鎭�"); - } + //public bool LittleDepthLocationIsEmpty(Dt_LocationInfo locationInfo, PalletTypeEnum palletType) + //{ + // Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == locationInfo.WarehouseId); + // if (warehouse == null) + // { + // throw new Exception($"鏈壘鍒颁粨搴撲俊鎭�"); + // } - return warehouse.WarehouseName switch - { - "鏉挎潗浠�" => false, - "PP浠�" => false, - "骞茶啘浠�" => false, - "娴嬭瘯鏋朵粨" => LittleDepthLocationIsEmpty_CSJ(locationInfo, palletType), - "闃荤剨浠�" => false, - "娌瑰ⅷ浠�" => true, - "鎴愬搧浠�" => true, - "杈呮枡浠�" => true, - _ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�") - }; - } + // return warehouse.WarehouseName switch + // { + // "鏉挎潗浠�" => false, + // "PP浠�" => false, + // "骞茶啘浠�" => false, + // "娴嬭瘯鏋朵粨" => LittleDepthLocationIsEmpty_CSJ(locationInfo, palletType), + // "闃荤剨浠�" => false, + // "娌瑰ⅷ浠�" => true, + // "鎴愬搧浠�" => true, + // "杈呮枡浠�" => true, + // _ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�") + // }; + //} private readonly static object _locker = new object(); private static List<LocationCache> locationCaches = new List<LocationCache>(); @@ -132,8 +132,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); @@ -142,11 +174,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); } @@ -155,13 +220,46 @@ { 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> /// 鑾峰彇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶄俊鎭� /// </summary> -- Gitblit v1.9.3