From ce40df5daffae0d17b4e9fa7cb6d677afaa4d66f Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 17 十月 2025 11:20:30 +0800
Subject: [PATCH] 更新最新程序,ERP代码,MES代码等
---
项目代码/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 234 ++++++----------------------------------------------------
1 files changed, 25 insertions(+), 209 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
index beb22ff..0d0e2fe 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
@@ -29,7 +29,7 @@
/// <summary>
/// 鍒嗛厤璐т綅
/// </summary>
- public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, string beRelocationCode = "", int heightType = 0)
+ public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, Dt_StockInfo? stockInfo = null)
{
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId);
if (warehouse == null)
@@ -48,7 +48,7 @@
return warehouse.WarehouseCode switch
{
"LLDCP" or "LLDFL" => AssignLocation(roadwayNo),
- "LLDYL" => AssignLocationYL(roadwayNo, palletTypeInfo),
+ "LLDYL" => AssignLocationYL(roadwayNo, palletTypeInfo, stockInfo),
_ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�")
};
}
@@ -76,7 +76,7 @@
Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>()
{
- { nameof(Dt_LocationInfo.Column),OrderByType.Desc },
+ { nameof(Dt_LocationInfo.Columns),OrderByType.Desc },
{ nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
{ nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
{ nameof(Dt_LocationInfo.Row),OrderByType.Asc }
@@ -89,7 +89,7 @@
/// 鍘熸枡鍒嗛厤璐т綅
/// </summary>
/// <returns></returns>
- public Dt_LocationInfo? AssignLocationYL(string roadwayNo, Dt_PalletTypeInfo palletTypeInfo)
+ public Dt_LocationInfo? AssignLocationYL(string roadwayNo, Dt_PalletTypeInfo palletTypeInfo,Dt_StockInfo stockInfo)
{
lock (_AssignLocationYL)
{
@@ -106,9 +106,8 @@
Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>()
{
- { nameof(Dt_LocationInfo.Column),OrderByType.Desc },
+ { nameof(Dt_LocationInfo.Columns),OrderByType.Desc },
{ nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
- { nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
{ nameof(Dt_LocationInfo.Row),OrderByType.Asc }
};
if (roadwayNo.Contains("YLDual"))
@@ -124,12 +123,17 @@
Dt_LocationInfo locationInfo = new Dt_LocationInfo();
foreach (var item in locationInfosMedium)
{
+ if (item.Layer == 7 || item.Layer == 8)
+ {
+ locationInfo = item;
+ break;
+ }
//鑾峰彇鏇存敼搴撲綅
Dt_LocationInfo? nearLocation1;
Dt_LocationInfo? nearLocation2;
- nearLocation1 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.Row == item.Row && x.Layer == item.Layer && x.Depth == item.Depth && x.Column == item.Column - 1);
- nearLocation2 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.Row == item.Row && x.Layer == item.Layer && x.Depth == item.Depth && x.Column == item.Column + 1);
+ nearLocation1 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && x.Row == item.Row && x.Layer == item.Layer && x.Depth == item.Depth && x.Columns == item.Columns - 1);
+ nearLocation2 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && x.Row == item.Row && x.Layer == item.Layer && x.Depth == item.Depth && x.Columns == item.Columns + 1);
if (nearLocation1!=null && nearLocation2!=null)
{
locationInfo = item;
@@ -141,7 +145,12 @@
}
else
{
- return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
+ bool LayerLimit = false;
+ if (stockInfo.MaterielThickness > 1300)
+ {
+ LayerLimit = true;
+ }
+ return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode) && (LayerLimit ? x.Columns >= 56 : x.Columns <= 55), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
}
}
@@ -162,165 +171,11 @@
UpdateLocationStatus(location, palletType, locationStatus, warehousId);
}
- /// <summary>
- /// 淇敼璐т綅鐘舵�佸強绫诲瀷
- /// </summary>
- /// <param name="location">璐т綅瀵硅薄</param>
- /// <param name="palletType">鎵樼洏绫诲瀷</param>
- /// <param name="locationStatus">璐т綅鐘舵��</param>
- //public void UpdateLocationStatus2(Dt_LocationInfo location, int palletType, LocationStatusEnum locationStatus, int warehousId)
- //{
- // List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
-
- // List<Dt_LocationInfo> locations = GetGroupLocations(locationInfos, location);
- // if (locationInfos.Max(x => x.Depth) < 3)
- // {
- // for (int i = 0; i < locations.Count; i++)
- // {
- // 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);
- // if(location.RoadwayNo == "SC01_BC")
- // {
- // nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
- // }
- // if (nearLocation != null)
- // {
- // List<Dt_LocationInfo> nearLocations = GetGroupLocations(locationInfos, nearLocation);
- // for (int i = 0; i < nearLocations.Count; i++)
- // {
- // if (nearLocations[i].LocationType != palletType.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.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);
- // }
- // }
- // else
- // {
- // for (int i = 0; i < locations.Count; i++)
- // {
- // 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();
- // }
- // }
- // }
-
- // if (locations.Where(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt()).Count() == locations.Count && locationStatus == LocationStatusEnum.Free)
- // {
- // locations.ForEach(x =>
- // {
- // x.LocationType = 0;
- // });
- // }
-
- // Repository.UpdateData(locations);
- //}
public void UpdateLocationStatus(Dt_LocationInfo location, int palletType, LocationStatusEnum locationStatus, int warehouseId)
{
List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
- List<Dt_PalletTypeInfo> palletTypeInfos = _basicRepository.PalletTypeInfoRepository.QueryData(x => x.WarehouseId == warehouseId);
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId);
Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId);
@@ -372,14 +227,14 @@
}
}
- if (palletTypeInfos.FirstOrDefault(x => x.LocaitonCount == 2) != null)
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDYL.ToString() && palletTypeInfo.LocaitonCount == 2 && location.RoadwayNo.Contains("Dual"))
{
//鑾峰彇鏇存敼搴撲綅
Dt_LocationInfo? nearLocation1;
Dt_LocationInfo? nearLocation2;
- nearLocation1 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
- nearLocation2 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
+ nearLocation1 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Columns == location.Columns - 1);
+ nearLocation2 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Columns == location.Columns + 1);
if (nearLocation1 != null && nearLocation2 != null)
@@ -411,45 +266,6 @@
}
}
}
- else
- {
- for (int i = 0; i < locations.Count; i++)
- {
- 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);
}
@@ -467,7 +283,7 @@
for (int j = location.Depth + 1; j <= maxDepth; j++)
{
row += 1;
- Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Columns == location.Columns && x.Layer == location.Layer && x.Row == row);
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
@@ -477,7 +293,7 @@
for (int j = location.Depth - 1; j >= 1; j--)
{
row -= 1;
- Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Columns == location.Columns && x.Layer == location.Layer && x.Row == row);
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
@@ -500,7 +316,7 @@
int row = location.Row;
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 && (x.Row == row + 1 || x.Row == row - 1));
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Columns == location.Columns && x.Layer == location.Layer && (x.Row == row + 1 || x.Row == row - 1));
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
@@ -509,7 +325,7 @@
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 && (x.Row == row + 1 || x.Row == row - 1));
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Columns == location.Columns && x.Layer == location.Layer && (x.Row == row + 1 || x.Row == row - 1));
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
--
Gitblit v1.9.3