From e43adae114f0edc580a20e84605c34ee0671c59d Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 04 一月 2025 09:36:40 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/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