From be0856c1bf533ed6001ff786908ae98e4b853eb5 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 09 一月 2025 10:09:02 +0800
Subject: [PATCH] 1
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 188 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 175 insertions(+), 13 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 4a0ddcd..3391097 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"
@@ -18,12 +18,14 @@
using WIDESEA_Model.Models;
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.TaskEnum;
namespace WIDESEA_BasicService
{
public partial class LocationInfoService
{
- public Dt_LocationInfo? AssignLocation(string roadwayNo, PalletTypeEnum palletType, int warehouseId)
+
+ public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId)
{
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId);
if (warehouse == null)
@@ -31,16 +33,22 @@
throw new Exception($"鏈壘鍒颁粨搴撲俊鎭�");
}
- return warehouse.WarehouseName switch
+ Dt_PalletTypeInfo palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouse.WarehouseId);
+ if (palletTypeInfo == null)
{
- "鏉挎潗浠�" => AssignLocation_BC(roadwayNo, palletType),
- "PP浠�" => AssignLocation_PP(roadwayNo, palletType),
- "骞茶啘浠�" => AssignLocation_GM(roadwayNo, palletType),
- "娴嬭瘯鏋朵粨" => AssignLocation_CSJ(roadwayNo, palletType),
- "闃荤剨浠�" => AssignLocation_ZH(roadwayNo, palletType),
- "娌瑰ⅷ浠�" => AssignLocation(roadwayNo),
- "鎴愬搧浠�" => AssignLocation(roadwayNo),
- "杈呮枡浠�" => AssignLocation(roadwayNo),
+ throw new Exception($"璇烽厤缃墭鐩樼被鍨嬩俊鎭�");
+ }
+
+ 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),
+ "HA153" => AssignLocation(roadwayNo),
+ "HA71" => AssignLocation(roadwayNo),
+ "HA60" => AssignLocation(roadwayNo),
_ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�")
};
}
@@ -85,7 +93,7 @@
/// <param name="locationCode">璐т綅缂栧彿</param>
/// <param name="palletType">鎵樼洏绫诲瀷</param>
/// <param name="locationStatus">璐т綅鐘舵��</param>
- public void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus, int warehousId)
+ public void UpdateLocationStatus(string locationCode, int palletType, LocationStatusEnum locationStatus, int warehousId)
{
Dt_LocationInfo location = Repository.QueryFirst(x => x.LocationCode == locationCode);
if (location == null)
@@ -101,7 +109,7 @@
/// <param name="location">璐т綅瀵硅薄</param>
/// <param name="palletType">鎵樼洏绫诲瀷</param>
/// <param name="locationStatus">璐т綅鐘舵��</param>
- public void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus, int warehousId)
+ public void UpdateLocationStatus2(Dt_LocationInfo location, int palletType, LocationStatusEnum locationStatus, int warehousId)
{
List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
@@ -176,7 +184,7 @@
nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt();
}
}
- else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock)
+ else if (locationStatus == LocationStatusEnum.InStock)
{
if (nearLocations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt())
{
@@ -233,10 +241,164 @@
}
}
}
+
+ 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 warehousId)
+ {
+ List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
+ List<Dt_PalletTypeInfo> palletTypeInfos = _basicRepository.PalletTypeInfoRepository.QueryData(x => x.WarehouseId == warehousId);
+
+ Dt_PalletTypeInfo? palletTypeInfo = palletTypeInfos.FirstOrDefault(x => x.PalletType == palletType && x.WarehouseId == warehousId);
+ if (palletTypeInfo == null)
+ {
+ throw new Exception($"璇烽厤缃墭鐩樼被鍨嬩俊鎭�");
+ }
+ 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)
+ {
+ locations[i].LocationType = palletType;
+ }
+
+ 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 (palletTypeInfos.FirstOrDefault(x => x.LocaitonCount == 2) != null)
+ {
+ Dt_LocationInfo? nearLocation;
+ if (palletTypeInfo.IsOdd)
+ {
+ nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
+ }
+ else
+ {
+ 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)
+ {
+ nearLocations[i].LocationType = palletType;
+ }
+
+ 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);
+ }
+ }
+
+
+
+ }
+ 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);
+ }
/// <summary>
/// 鑾峰彇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶄俊鎭�
--
Gitblit v1.9.3