From cbf06cbb2e7988fdee53507dede034756ebfbf59 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期二, 14 一月 2025 15:47:40 +0800
Subject: [PATCH] 1
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 83 +++++++++++++++++++++++++----------------
1 files changed, 51 insertions(+), 32 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 ef8c85c..6f3a453 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"
@@ -26,7 +26,7 @@
public partial class LocationInfoService
{
- public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId)
+ public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, string beRelocationCode = "", int heightType = 0)
{
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId);
if (warehouse == null)
@@ -51,11 +51,11 @@
return warehouse.WarehouseCode switch
{
- "HA57" => AssignLocation_BC(roadwayNo, palletType, palletTypeInfo),
- "HA58" => AssignLocation_PP(roadwayNo, palletType, palletTypeInfo),
- "HA152" => AssignLocation_GM(roadwayNo, palletType, palletTypeInfo),
- "HA64" => AssignLocation_CSJ(roadwayNo, palletType, palletTypeInfo),
- "闃荤剨浠�" => AssignLocation_ZH(roadwayNo, palletType, palletTypeInfo),
+ "HA57" => AssignLocation_BC(roadwayNo, palletType, palletTypeInfo, beRelocationCode, heightType),
+ "HA58" => AssignLocation_PP(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
+ "HA152" => AssignLocation_GM(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
+ "HA64" => AssignLocation_CSJ(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
+ "闃荤剨浠�" => AssignLocation_ZH(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
"HA153" => AssignLocation(roadwayNo),
"HA71" => AssignLocation(roadwayNo),
"HA60" => AssignLocation(roadwayNo),
@@ -165,6 +165,10 @@
}
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);
@@ -270,7 +274,7 @@
List<Dt_PalletTypeInfo> palletTypeInfos = _basicRepository.PalletTypeInfoRepository.QueryData(x => x.WarehouseId == warehousId);
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehousId);
Dt_PalletTypeInfo? palletTypeInfo = palletTypeInfos.FirstOrDefault(x => x.PalletType == palletType && x.WarehouseId == warehousId);
- if (palletTypeInfo == null)
+ if (palletTypeInfo == null || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
{
if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
{
@@ -337,39 +341,48 @@
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)
+ List<int> palletTypes = palletTypeInfos.Select(x => x.PalletType).ToList();
+ palletTypes.Add(0);
+ if (palletTypes.Contains(nearLocations[i].LocationType))
{
- nearLocations[i].LocationType = palletType;
- }
+ if (nearLocations[i].LocationType != palletType)
+ {
+ nearLocations[i].LocationType = palletType;
+ }
- if (locationStatus == LocationStatusEnum.Lock)
- {
- if (nearLocations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+ if (locationStatus == LocationStatusEnum.Lock)
{
- nearLocations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt();
+ 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 (nearLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
+ else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock)
{
- nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt();
+ 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();
+ }
}
}
- 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);
}
@@ -430,9 +443,11 @@
{
List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location };
int maxDepth = locationInfos.Max(x => x.Depth);
+ 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);
+ row += 1;
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
@@ -441,7 +456,8 @@
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);
+ row -= 1;
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
@@ -461,9 +477,11 @@
List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location };
int maxDepth = locationInfos.Max(x => x.Depth);
+ 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);
+ row += 1;
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
@@ -472,7 +490,8 @@
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);
+ row -= 1;
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
if (locationInfo != null)
{
groupLocations.Add(locationInfo);
--
Gitblit v1.9.3